arm

package
v1.3.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 30, 2019 License: MPL-2.0, MIT Imports: 54 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultSasBlobContainer = "system/Microsoft.Compute"
	DefaultSecretName       = "packerKeyVaultSecret"
)
View Source
const (
	DefaultImageVersion                      = "latest"
	DefaultUserName                          = "packer"
	DefaultPrivateVirtualNetworkWithPublicIp = false
	DefaultVMSize                            = "Standard_A1"
)
View Source
const (
	BuilderId = "Azure.ResourceManagement.VMImage"
)
View Source
const DefaultCloudEnvironmentName = "Public"
View Source
const (
	EnvPackerLogAzureMaxLen = "PACKER_LOG_AZURE_MAXLEN"
)
View Source
const (
	KeySize = 2048
)

Variables

View Source
var (
	EndpointCommunicationText = map[EndpointType]string{
		PublicEndpoint:                 "PublicEndpoint",
		PrivateEndpoint:                "PrivateEndpoint",
		PublicEndpointInPrivateNetwork: "PublicEndpointInPrivateNetwork",
	}
)
View Source
var TemplateFuncs = template.FuncMap{
	"clean_image_name": templateCleanImageName,
}

Functions

func GetKeyVaultDeployment added in v0.11.0

func GetKeyVaultDeployment(config *Config) (*resources.Deployment, error)

func GetVirtualMachineDeployment added in v0.11.0

func GetVirtualMachineDeployment(config *Config) (*resources.Deployment, error)

func NewCertOAuthTokenProvider added in v1.3.4

func NewCertOAuthTokenProvider(env azure.Environment, clientID, clientCertPath, tenantID string) (oAuthTokenProvider, error)

func NewDeviceFlowOAuthTokenProvider added in v1.3.4

func NewDeviceFlowOAuthTokenProvider(env azure.Environment, say func(string), tenantID string) oAuthTokenProvider

func NewJWTOAuthTokenProvider added in v1.3.4

func NewJWTOAuthTokenProvider(env azure.Environment, clientID, clientJWT, tenantID string) oAuthTokenProvider

func NewMSIOAuthTokenProvider added in v1.3.4

func NewMSIOAuthTokenProvider(env azure.Environment) oAuthTokenProvider

func NewSecretOAuthTokenProvider added in v1.3.4

func NewSecretOAuthTokenProvider(env azure.Environment, clientID, clientSecret, tenantID string) oAuthTokenProvider

Types

type AdditionalDiskArtifact added in v1.2.2

type AdditionalDiskArtifact struct {
	AdditionalDiskUri            string
	AdditionalDiskUriReadOnlySas string
}

type Artifact added in v0.10.1

type Artifact struct {
	// OS type: Linux, Windows
	OSType string

	// VHD
	StorageAccountLocation string
	OSDiskUri              string
	TemplateUri            string
	OSDiskUriReadOnlySas   string
	TemplateUriReadOnlySas string

	// Managed Image
	ManagedImageResourceGroupName      string
	ManagedImageName                   string
	ManagedImageLocation               string
	ManagedImageId                     string
	ManagedImageOSDiskSnapshotName     string
	ManagedImageDataDiskSnapshotPrefix string

	// Additional Disks
	AdditionalDisks *[]AdditionalDiskArtifact
}

func NewArtifact added in v0.10.1

func NewArtifact(template *CaptureTemplate, getSasUrl func(name string) string, osType string) (*Artifact, error)

func NewManagedImageArtifact added in v1.0.3

func NewManagedImageArtifact(osType, resourceGroup, name, location, id, osDiskSnapshotName, dataDiskSnapshotPrefix string) (*Artifact, error)

func (*Artifact) BuilderId added in v0.10.1

func (*Artifact) BuilderId() string

func (*Artifact) Destroy added in v0.10.1

func (*Artifact) Destroy() error

func (*Artifact) Files added in v0.10.1

func (*Artifact) Files() []string

func (*Artifact) Id added in v0.10.1

func (a *Artifact) Id() string

func (*Artifact) State added in v0.10.1

func (a *Artifact) State(name string) interface{}

func (*Artifact) String added in v0.10.1

func (a *Artifact) String() string

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

func (*Builder) Cancel

func (b *Builder) Cancel()

func (*Builder) Prepare

func (b *Builder) Prepare(raws ...interface{}) ([]string, error)

func (*Builder) Run

func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packer.Artifact, error)

type CaptureBootDiagnostics added in v0.10.1

type CaptureBootDiagnostics struct {
	Enabled bool `json:"enabled"`
}

type CaptureDiagnosticProfile added in v0.10.1

type CaptureDiagnosticProfile struct {
	BootDiagnostics CaptureBootDiagnostics `json:"bootDiagnostics"`
}

type CaptureDisk added in v0.10.1

type CaptureDisk struct {
	OSType       string     `json:"osType"`
	Name         string     `json:"name"`
	Image        CaptureUri `json:"image"`
	Vhd          CaptureUri `json:"vhd"`
	CreateOption string     `json:"createOption"`
	Caching      string     `json:"caching"`
}

type CaptureHardwareProfile added in v0.10.1

type CaptureHardwareProfile struct {
	VMSize string `json:"vmSize"`
}

type CaptureNetworkInterface added in v0.10.1

type CaptureNetworkInterface struct {
	Id string `json:"id"`
}

type CaptureNetworkProfile added in v0.10.1

type CaptureNetworkProfile struct {
	NetworkInterfaces []CaptureNetworkInterface `json:"networkInterfaces"`
}

type CaptureOSProfile added in v0.10.1

type CaptureOSProfile struct {
	ComputerName  string `json:"computerName"`
	AdminUsername string `json:"adminUsername"`
	AdminPassword string `json:"adminPassword"`
}

type CaptureOperation added in v0.10.1

type CaptureOperation struct {
	OperationId string                      `json:"operationId"`
	Status      string                      `json:"status"`
	Properties  *CaptureOperationProperties `json:"properties"`
}

type CaptureOperationProperties added in v0.10.1

type CaptureOperationProperties struct {
	Output *CaptureTemplate `json:"output"`
}

type CaptureProperties added in v0.10.1

type CaptureProperties struct {
	HardwareProfile    CaptureHardwareProfile   `json:"hardwareProfile"`
	StorageProfile     CaptureStorageProfile    `json:"storageProfile"`
	OSProfile          CaptureOSProfile         `json:"osProfile"`
	NetworkProfile     CaptureNetworkProfile    `json:"networkProfile"`
	DiagnosticsProfile CaptureDiagnosticProfile `json:"diagnosticsProfile"`
	ProvisioningState  int                      `json:"provisioningState"`
}

type CaptureResources added in v0.10.1

type CaptureResources struct {
	ApiVersion string            `json:"apiVersion"`
	Name       string            `json:"name"`
	Type       string            `json:"type"`
	Location   string            `json:"location"`
	Properties CaptureProperties `json:"properties"`
}

type CaptureStorageProfile added in v0.10.1

type CaptureStorageProfile struct {
	OSDisk    CaptureDisk   `json:"osDisk"`
	DataDisks []CaptureDisk `json:"dataDisks"`
}

type CaptureTemplate added in v0.10.1

type CaptureTemplate struct {
	Schema         string                              `json:"$schema"`
	ContentVersion string                              `json:"contentVersion"`
	Parameters     map[string]CaptureTemplateParameter `json:"parameters"`
	Resources      []CaptureResources                  `json:"resources"`
}

type CaptureTemplateParameter added in v0.10.1

type CaptureTemplateParameter struct {
	Type         string `json:"type"`
	DefaultValue string `json:"defaultValue,omitempty"`
}

type CaptureUri added in v0.10.1

type CaptureUri struct {
	Uri string `json:"uri"`
}

type ClientConfig added in v1.3.4

type ClientConfig struct {
	CloudEnvironmentName string `mapstructure:"cloud_environment_name"`

	// Client ID
	ClientID string `mapstructure:"client_id"`
	// Client secret/password
	ClientSecret string `mapstructure:"client_secret"`
	// Certificate path for client auth
	ClientCertPath string `mapstructure:"client_cert_path"`
	// JWT bearer token for client auth (RFC 7523, Sec. 2.2)
	ClientJWT      string `mapstructure:"client_jwt"`
	ObjectID       string `mapstructure:"object_id"`
	TenantID       string `mapstructure:"tenant_id"`
	SubscriptionID string `mapstructure:"subscription_id"`
	// contains filtered or unexported fields
}

ClientConfig allows for various ways to authenticate Azure clients

type Config

type Config struct {
	common.PackerConfig `mapstructure:",squash"`

	// Authentication via OAUTH
	ClientConfig `mapstructure:",squash"`

	// Capture
	CaptureNamePrefix    string `mapstructure:"capture_name_prefix"`
	CaptureContainerName string `mapstructure:"capture_container_name"`

	// Shared Gallery
	SharedGallery SharedImageGallery `mapstructure:"shared_image_gallery"`

	// Compute
	ImagePublisher string `mapstructure:"image_publisher"`
	ImageOffer     string `mapstructure:"image_offer"`
	ImageSku       string `mapstructure:"image_sku"`
	ImageVersion   string `mapstructure:"image_version"`
	ImageUrl       string `mapstructure:"image_url"`

	CustomManagedImageResourceGroupName string `mapstructure:"custom_managed_image_resource_group_name"`
	CustomManagedImageName              string `mapstructure:"custom_managed_image_name"`

	Location string `mapstructure:"location"`
	VMSize   string `mapstructure:"vm_size"`

	ManagedImageResourceGroupName  string `mapstructure:"managed_image_resource_group_name"`
	ManagedImageName               string `mapstructure:"managed_image_name"`
	ManagedImageStorageAccountType string `mapstructure:"managed_image_storage_account_type"`

	ManagedImageOSDiskSnapshotName     string `mapstructure:"managed_image_os_disk_snapshot_name"`
	ManagedImageDataDiskSnapshotPrefix string `mapstructure:"managed_image_data_disk_snapshot_prefix"`

	// Deployment
	AzureTags              map[string]*string `mapstructure:"azure_tags"`
	ResourceGroupName      string             `mapstructure:"resource_group_name"`
	StorageAccount         string             `mapstructure:"storage_account"`
	TempComputeName        string             `mapstructure:"temp_compute_name"`
	TempResourceGroupName  string             `mapstructure:"temp_resource_group_name"`
	BuildResourceGroupName string             `mapstructure:"build_resource_group_name"`

	PrivateVirtualNetworkWithPublicIp bool   `mapstructure:"private_virtual_network_with_public_ip"`
	VirtualNetworkName                string `mapstructure:"virtual_network_name"`
	VirtualNetworkSubnetName          string `mapstructure:"virtual_network_subnet_name"`
	VirtualNetworkResourceGroupName   string `mapstructure:"virtual_network_resource_group_name"`
	CustomDataFile                    string `mapstructure:"custom_data_file"`

	PlanInfo PlanInformation `mapstructure:"plan_info"`

	// OS
	OSType       string `mapstructure:"os_type"`
	OSDiskSizeGB int32  `mapstructure:"os_disk_size_gb"`

	// Additional Disks
	AdditionalDiskSize []int32 `mapstructure:"disk_additional_size"`
	DiskCachingType    string  `mapstructure:"disk_caching_type"`

	// Runtime Values
	UserName string
	Password string

	Comm communicator.Config `mapstructure:",squash"`

	//Cleanup
	AsyncResourceGroupDelete bool `mapstructure:"async_resourcegroup_delete"`
	// contains filtered or unexported fields
}

type EndpointType added in v0.11.0

type EndpointType int
const (
	PublicEndpoint EndpointType = iota
	PrivateEndpoint
	PublicEndpointInPrivateNetwork
)

type OpenSshKeyPair

type OpenSshKeyPair struct {
	// contains filtered or unexported fields
}

func NewOpenSshKeyPair

func NewOpenSshKeyPair() (*OpenSshKeyPair, error)

func NewOpenSshKeyPairWithSize

func NewOpenSshKeyPairWithSize(keySize int) (*OpenSshKeyPair, error)

func (*OpenSshKeyPair) AuthorizedKey

func (s *OpenSshKeyPair) AuthorizedKey() string

func (*OpenSshKeyPair) PrivateKey

func (s *OpenSshKeyPair) PrivateKey() []byte

type PlanInformation added in v1.2.2

type PlanInformation struct {
	PlanName          string `mapstructure:"plan_name"`
	PlanProduct       string `mapstructure:"plan_product"`
	PlanPublisher     string `mapstructure:"plan_publisher"`
	PlanPromotionCode string `mapstructure:"plan_promotion_code"`
}

type SharedImageGallery added in v1.3.2

type SharedImageGallery struct {
	Subscription  string `mapstructure:"subscription"`
	ResourceGroup string `mapstructure:"resource_group"`
	GalleryName   string `mapstructure:"gallery_name"`
	ImageName     string `mapstructure:"image_name"`
	ImageVersion  string `mapstructure:"image_version"`
}

type StepCaptureImage

type StepCaptureImage struct {
	// contains filtered or unexported fields
}

func NewStepCaptureImage

func NewStepCaptureImage(client *AzureClient, ui packer.Ui) *StepCaptureImage

func (*StepCaptureImage) Cleanup

func (*StepCaptureImage) Run

type StepCreateResourceGroup

type StepCreateResourceGroup struct {
	// contains filtered or unexported fields
}

func NewStepCreateResourceGroup

func NewStepCreateResourceGroup(client *AzureClient, ui packer.Ui) *StepCreateResourceGroup

func (*StepCreateResourceGroup) Cleanup

func (s *StepCreateResourceGroup) Cleanup(state multistep.StateBag)

func (*StepCreateResourceGroup) Run

type StepDeleteAdditionalDisk added in v1.2.2

type StepDeleteAdditionalDisk struct {
	// contains filtered or unexported fields
}

func NewStepDeleteAdditionalDisks added in v1.2.2

func NewStepDeleteAdditionalDisks(client *AzureClient, ui packer.Ui) *StepDeleteAdditionalDisk

func (*StepDeleteAdditionalDisk) Cleanup added in v1.2.2

func (*StepDeleteAdditionalDisk) Run added in v1.2.2

type StepDeleteOSDisk

type StepDeleteOSDisk struct {
	// contains filtered or unexported fields
}

func NewStepDeleteOSDisk

func NewStepDeleteOSDisk(client *AzureClient, ui packer.Ui) *StepDeleteOSDisk

func (*StepDeleteOSDisk) Cleanup

func (*StepDeleteOSDisk) Run

type StepDeleteResourceGroup

type StepDeleteResourceGroup struct {
	// contains filtered or unexported fields
}

func NewStepDeleteResourceGroup

func NewStepDeleteResourceGroup(client *AzureClient, ui packer.Ui) *StepDeleteResourceGroup

func (*StepDeleteResourceGroup) Cleanup

func (*StepDeleteResourceGroup) Run

type StepDeployTemplate

type StepDeployTemplate struct {
	// contains filtered or unexported fields
}

func NewStepDeployTemplate

func NewStepDeployTemplate(client *AzureClient, ui packer.Ui, config *Config, deploymentName string, factory templateFactoryFunc) *StepDeployTemplate

func (*StepDeployTemplate) Cleanup

func (s *StepDeployTemplate) Cleanup(state multistep.StateBag)

func (*StepDeployTemplate) Run

type StepGetCertificate added in v0.10.1

type StepGetCertificate struct {
	// contains filtered or unexported fields
}

func NewStepGetCertificate added in v0.10.1

func NewStepGetCertificate(client *AzureClient, ui packer.Ui) *StepGetCertificate

func (*StepGetCertificate) Cleanup added in v0.10.1

func (*StepGetCertificate) Run added in v0.10.1

type StepGetDataDisk added in v1.2.2

type StepGetDataDisk struct {
	// contains filtered or unexported fields
}

func NewStepGetAdditionalDisks added in v1.2.2

func NewStepGetAdditionalDisks(client *AzureClient, ui packer.Ui) *StepGetDataDisk

func (*StepGetDataDisk) Cleanup added in v1.2.2

func (*StepGetDataDisk) Run added in v1.2.2

type StepGetIPAddress

type StepGetIPAddress struct {
	// contains filtered or unexported fields
}

func NewStepGetIPAddress

func NewStepGetIPAddress(client *AzureClient, ui packer.Ui, endpoint EndpointType) *StepGetIPAddress

func (*StepGetIPAddress) Cleanup

func (*StepGetIPAddress) Run

type StepGetOSDisk

type StepGetOSDisk struct {
	// contains filtered or unexported fields
}

func NewStepGetOSDisk

func NewStepGetOSDisk(client *AzureClient, ui packer.Ui) *StepGetOSDisk

func (*StepGetOSDisk) Cleanup

func (*StepGetOSDisk) Cleanup(multistep.StateBag)

func (*StepGetOSDisk) Run

type StepPowerOffCompute

type StepPowerOffCompute struct {
	// contains filtered or unexported fields
}

func NewStepPowerOffCompute

func NewStepPowerOffCompute(client *AzureClient, ui packer.Ui) *StepPowerOffCompute

func (*StepPowerOffCompute) Cleanup

func (*StepPowerOffCompute) Run

type StepSaveWinRMPassword added in v1.2.3

type StepSaveWinRMPassword struct {
	Password  string
	BuildName string
}

func (*StepSaveWinRMPassword) Cleanup added in v1.2.3

func (*StepSaveWinRMPassword) Run added in v1.2.3

type StepSetCertificate added in v0.10.1

type StepSetCertificate struct {
	// contains filtered or unexported fields
}

func NewStepSetCertificate added in v0.10.1

func NewStepSetCertificate(config *Config, ui packer.Ui) *StepSetCertificate

func (*StepSetCertificate) Cleanup added in v0.10.1

func (*StepSetCertificate) Run added in v0.10.1

type StepSnapshotDataDisks added in v1.3.3

type StepSnapshotDataDisks struct {
	// contains filtered or unexported fields
}

func NewStepSnapshotDataDisks added in v1.3.3

func NewStepSnapshotDataDisks(client *AzureClient, ui packer.Ui, config *Config) *StepSnapshotDataDisks

func (*StepSnapshotDataDisks) Cleanup added in v1.3.3

func (*StepSnapshotDataDisks) Run added in v1.3.3

type StepSnapshotOSDisk added in v1.3.3

type StepSnapshotOSDisk struct {
	// contains filtered or unexported fields
}

func NewStepSnapshotOSDisk added in v1.3.3

func NewStepSnapshotOSDisk(client *AzureClient, ui packer.Ui, config *Config) *StepSnapshotOSDisk

func (*StepSnapshotOSDisk) Cleanup added in v1.3.3

func (*StepSnapshotOSDisk) Run added in v1.3.3

type StepValidateTemplate

type StepValidateTemplate struct {
	// contains filtered or unexported fields
}

func NewStepValidateTemplate

func NewStepValidateTemplate(client *AzureClient, ui packer.Ui, config *Config, factory templateFactoryFunc) *StepValidateTemplate

func (*StepValidateTemplate) Cleanup

func (*StepValidateTemplate) Run

type TempName

type TempName struct {
	AdminPassword       string
	CertificatePassword string
	ComputeName         string
	DeploymentName      string
	KeyVaultName        string
	ResourceGroupName   string
	OSDiskName          string
	NicName             string
	SubnetName          string
	PublicIPAddressName string
	VirtualNetworkName  string
}

func NewTempName

func NewTempName() *TempName

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL