Last generated June 29, 2022

AzureMachine

AzureMachine is the Schema for the azuremachines API.

Full name:
azuremachines.infrastructure.cluster.x-k8s.io
Group:
infrastructure.cluster.x-k8s.io
Singular name:
azuremachine
Plural name:
azuremachines
Scope:
Namespaced
Versions:
v1alpha3v1alpha4v1beta1

Version v1alpha3

Example CR

apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
kind: AzureMachine
metadata:
  labels:
    azure-operator.giantswarm.io/version: 5.3.1
    cluster.x-k8s.io/cluster-name: mmh5x
    cluster.x-k8s.io/control-plane: "true"
    giantswarm.io/cluster: mmh5x
    giantswarm.io/organization: giantswarm
    release.giantswarm.io/version: 14.1.0
  name: mmh5x-master-0
  namespace: org-giantswarm
spec:
  availabilityZone: {}
  failureDomain: "3"
  identity: None
  image:
    marketplace:
      offer: flatcar-container-linux-free
      publisher: kinvolk
      sku: stable
      thirdPartyImage: false
      version: 2345.3.1
  location: westeurope
  osDisk:
    cachingType: ReadWrite
    diskSizeGB: 50
    managedDisk:
      storageAccountType: Premium_LRS
    osType: Linux
  sshPublicKey: ""
  vmSize: Standard_D4s_v3

Properties

.apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

.kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

.metadata

object

.spec

object

AzureMachineSpec defines the desired state of AzureMachine.

.spec.acceleratedNetworking

boolean

AcceleratedNetworking enables or disables Azure accelerated networking. If omitted, it will be set based on whether the requested VMSize supports accelerated networking. If AcceleratedNetworking is set to true with a VMSize that does not support it, Azure will return an error.

.spec.additionalTags

object

AdditionalTags is an optional set of tags to add to an instance, in addition to the ones added by default by the Azure provider. If both the AzureCluster and the AzureMachine specify the same tag name with different values, the AzureMachine’s value takes precedence.

.spec.allocatePublicIP

boolean

AllocatePublicIP allows the ability to create dynamic public ips for machines where this value is true.

.spec.availabilityZone

object

DEPRECATED: use FailureDomain instead

.spec.availabilityZone.enabled

boolean

.spec.availabilityZone.id

string

.spec.dataDisks

array

DataDisk specifies the parameters that are used to add one or more data disks to the machine

.spec.dataDisks[*]

object

DataDisk specifies the parameters that are used to add one or more data disks to the machine.

.spec.dataDisks[*].cachingType

string

.spec.dataDisks[*].diskSizeGB

integer Required

DiskSizeGB is the size in GB to assign to the data disk.

.spec.dataDisks[*].lun

integer

Lun Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. The value must be between 0 and 63.

.spec.dataDisks[*].managedDisk

object

ManagedDisk defines the managed disk options for a VM.

.spec.dataDisks[*].managedDisk.diskEncryptionSet

object

DiskEncryptionSetParameters defines disk encryption options.

.spec.dataDisks[*].managedDisk.diskEncryptionSet.id

string

ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription

.spec.dataDisks[*].managedDisk.storageAccountType

string Required

.spec.dataDisks[*].nameSuffix

string Required

NameSuffix is the suffix to be appended to the machine name to generate the disk name. Each disk name will be in format _.

.spec.enableIPForwarding

boolean

EnableIPForwarding enables IP Forwarding in Azure which is required for some CNI’s to send traffic from a pods on one machine to another. This is required for IpV6 with Calico in combination with User Defined Routes (set by the Azure Cloud Controller manager). Default is false for disabled.

.spec.failureDomain

string

FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. This relates to an Azure Availability Zone

.spec.identity

string

Identity is the type of identity used for the virtual machine. The type ‘SystemAssigned’ is an implicitly created identity. The generated identity will be assigned a Subscription contributor role. The type ‘UserAssigned’ is a standalone Azure resource provided by the user and assigned to the VM

.spec.image

object

Image is used to provide details of an image to use during VM creation. If image details are omitted the image will default the Azure Marketplace “capi” offer, which is based on Ubuntu.

.spec.image.id

string

ID specifies an image to use by ID

.spec.image.marketplace

object

Marketplace specifies an image to use from the Azure Marketplace

.spec.image.marketplace.offer

string Required

Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer

.spec.image.marketplace.publisher

string Required

Publisher is the name of the organization that created the image

.spec.image.marketplace.sku

string Required

SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter

.spec.image.marketplace.thirdPartyImage

boolean

ThirdPartyImage indicates the image is published by a third party publisher and a Plan will be generated for it.

.spec.image.marketplace.version

string Required

Version specifies the version of an image sku. The allowed formats are Major.Minor.Build or ‘latest’. Major, Minor, and Build are decimal numbers. Specify ‘latest’ to use the latest version of an image available at deploy time. Even if you use ‘latest’, the VM image will not automatically update after deploy time even if a new version becomes available.

.spec.image.sharedGallery

object

SharedGallery specifies an image to use from an Azure Shared Image Gallery

.spec.image.sharedGallery.gallery

string Required

Gallery specifies the name of the shared image gallery that contains the image

.spec.image.sharedGallery.name

string Required

Name is the name of the image

.spec.image.sharedGallery.resourceGroup

string Required

ResourceGroup specifies the resource group containing the shared image gallery

.spec.image.sharedGallery.subscriptionID

string Required

SubscriptionID is the identifier of the subscription that contains the shared image gallery

.spec.image.sharedGallery.version

string Required

Version specifies the version of the marketplace image. The allowed formats are Major.Minor.Build or ‘latest’. Major, Minor, and Build are decimal numbers. Specify ‘latest’ to use the latest version of an image available at deploy time. Even if you use ‘latest’, the VM image will not automatically update after deploy time even if a new version becomes available.

.spec.location

string Required

DEPRECATED: to support old clients, will be removed in v1alpha4/v1beta1

.spec.osDisk

object Required

OSDisk specifies the parameters for the operating system disk of the machine

.spec.osDisk.cachingType

string

.spec.osDisk.diffDiskSettings

object

DiffDiskSettings describe ephemeral disk settings for the os disk.

.spec.osDisk.diffDiskSettings.option

string Required

Option enables ephemeral OS when set to “Local” See https://docs.microsoft.com/en-us/azure/virtual-machines/ephemeral-os-disks for full details

.spec.osDisk.diskSizeGB

integer Required

.spec.osDisk.managedDisk

object Required

ManagedDisk defines the managed disk options for a VM.

.spec.osDisk.managedDisk.diskEncryptionSet

object

DiskEncryptionSetParameters defines disk encryption options.

.spec.osDisk.managedDisk.diskEncryptionSet.id

string

ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription

.spec.osDisk.managedDisk.storageAccountType

string Required

.spec.osDisk.osType

string Required

.spec.providerID

string

ProviderID is the unique identifier as specified by the cloud provider.

.spec.roleAssignmentName

string

RoleAssignmentName is the name of the role assignment to create for a system assigned identity. It can be any valid GUID. If not specified, a random GUID will be generated.

.spec.securityProfile

object

SecurityProfile specifies the Security profile settings for a virtual machine.

.spec.securityProfile.encryptionAtHost

boolean

This field indicates whether Host Encryption should be enabled or disabled for a virtual machine or virtual machine scale set. Default is disabled.

.spec.spotVMOptions

object

SpotVMOptions allows the ability to specify the Machine should use a Spot VM.

.spec.spotVMOptions.maxPrice

MaxPrice defines the maximum price the user is willing to pay for Spot VM instances

.spec.sshPublicKey

string Required

.spec.userAssignedIdentities

array

UserAssignedIdentities is a list of standalone Azure identities provided by the user The lifecycle of a user-assigned identity is managed separately from the lifecycle of the AzureMachine. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli

.spec.userAssignedIdentities[*]

object

UserAssignedIdentity defines the user-assigned identities provided by the user to be assigned to Azure resources.

.spec.userAssignedIdentities[*].providerID

string Required

ProviderID is the identification ID of the user-assigned Identity, the format of an identity is: ‘azure:///subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}’

.spec.vmSize

string Required

.status

object

AzureMachineStatus defines the observed state of AzureMachine.

.status.addresses

array

Addresses contains the Azure instance associated addresses.

.status.addresses[*]

object

NodeAddress contains information for the node’s address.

.status.addresses[*].address

string Required

The node address.

.status.addresses[*].type

string Required

Node address type, one of Hostname, ExternalIP or InternalIP.

.status.conditions

array

Conditions defines current service state of the AzureMachine.

.status.conditions[*]

object

Condition defines an observation of a Cluster API resource operational state.

.status.conditions[*].lastTransitionTime

string

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

.status.conditions[*].message

string

A human readable message indicating details about the transition. This field may be empty.

.status.conditions[*].reason

string

The reason for the condition’s last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

.status.conditions[*].severity

string

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

.status.conditions[*].status

string Required

Status of the condition, one of True, False, Unknown.

.status.conditions[*].type

string Required

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

.status.failureMessage

string

ErrorMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine’s spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller’s output.

.status.failureReason

string

ErrorReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine’s spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller’s output.

.status.ready

boolean

Ready is true when the provider resource is ready.

.status.vmState

string

VMState is the provisioning state of the Azure virtual machine.

Version v1alpha4

Properties

.apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

.kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

.metadata

object

.spec

object

AzureMachineSpec defines the desired state of AzureMachine.

.spec.acceleratedNetworking

boolean

AcceleratedNetworking enables or disables Azure accelerated networking. If omitted, it will be set based on whether the requested VMSize supports accelerated networking. If AcceleratedNetworking is set to true with a VMSize that does not support it, Azure will return an error.

.spec.additionalTags

object

AdditionalTags is an optional set of tags to add to an instance, in addition to the ones added by default by the Azure provider. If both the AzureCluster and the AzureMachine specify the same tag name with different values, the AzureMachine’s value takes precedence.

.spec.allocatePublicIP

boolean

AllocatePublicIP allows the ability to create dynamic public ips for machines where this value is true.

.spec.dataDisks

array

DataDisk specifies the parameters that are used to add one or more data disks to the machine

.spec.dataDisks[*]

object

DataDisk specifies the parameters that are used to add one or more data disks to the machine.

.spec.dataDisks[*].cachingType

string

CachingType specifies the caching requirements.

.spec.dataDisks[*].diskSizeGB

integer Required

DiskSizeGB is the size in GB to assign to the data disk.

.spec.dataDisks[*].lun

integer

Lun Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. The value must be between 0 and 63.

.spec.dataDisks[*].managedDisk

object

ManagedDisk specifies the Managed Disk parameters for the data disk.

.spec.dataDisks[*].managedDisk.diskEncryptionSet

object

DiskEncryptionSetParameters defines disk encryption options.

.spec.dataDisks[*].managedDisk.diskEncryptionSet.id

string

ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription

.spec.dataDisks[*].managedDisk.storageAccountType

string

.spec.dataDisks[*].nameSuffix

string Required

NameSuffix is the suffix to be appended to the machine name to generate the disk name. Each disk name will be in format _.

.spec.enableIPForwarding

boolean

EnableIPForwarding enables IP Forwarding in Azure which is required for some CNI’s to send traffic from a pods on one machine to another. This is required for IpV6 with Calico in combination with User Defined Routes (set by the Azure Cloud Controller manager). Default is false for disabled.

.spec.failureDomain

string

FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. This relates to an Azure Availability Zone

.spec.identity

string

Identity is the type of identity used for the virtual machine. The type ‘SystemAssigned’ is an implicitly created identity. The generated identity will be assigned a Subscription contributor role. The type ‘UserAssigned’ is a standalone Azure resource provided by the user and assigned to the VM

.spec.image

object

Image is used to provide details of an image to use during VM creation. If image details are omitted the image will default the Azure Marketplace “capi” offer, which is based on Ubuntu.

.spec.image.id

string

ID specifies an image to use by ID

.spec.image.marketplace

object

Marketplace specifies an image to use from the Azure Marketplace

.spec.image.marketplace.offer

string Required

Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer

.spec.image.marketplace.publisher

string Required

Publisher is the name of the organization that created the image

.spec.image.marketplace.sku

string Required

SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter

.spec.image.marketplace.thirdPartyImage

boolean

ThirdPartyImage indicates the image is published by a third party publisher and a Plan will be generated for it.

.spec.image.marketplace.version

string Required

Version specifies the version of an image sku. The allowed formats are Major.Minor.Build or ‘latest’. Major, Minor, and Build are decimal numbers. Specify ‘latest’ to use the latest version of an image available at deploy time. Even if you use ‘latest’, the VM image will not automatically update after deploy time even if a new version becomes available.

.spec.image.sharedGallery

object

SharedGallery specifies an image to use from an Azure Shared Image Gallery

.spec.image.sharedGallery.gallery

string Required

Gallery specifies the name of the shared image gallery that contains the image

.spec.image.sharedGallery.name

string Required

Name is the name of the image

.spec.image.sharedGallery.offer

string

Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer This value will be used to add a Plan in the API request when creating the VM/VMSS resource. This is needed when the source image from which this SIG image was built requires the Plan to be used.

.spec.image.sharedGallery.publisher

string

Publisher is the name of the organization that created the image. This value will be used to add a Plan in the API request when creating the VM/VMSS resource. This is needed when the source image from which this SIG image was built requires the Plan to be used.

.spec.image.sharedGallery.resourceGroup

string Required

ResourceGroup specifies the resource group containing the shared image gallery

.spec.image.sharedGallery.sku

string

SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter This value will be used to add a Plan in the API request when creating the VM/VMSS resource. This is needed when the source image from which this SIG image was built requires the Plan to be used.

.spec.image.sharedGallery.subscriptionID

string Required

SubscriptionID is the identifier of the subscription that contains the shared image gallery

.spec.image.sharedGallery.version

string Required

Version specifies the version of the marketplace image. The allowed formats are Major.Minor.Build or ‘latest’. Major, Minor, and Build are decimal numbers. Specify ‘latest’ to use the latest version of an image available at deploy time. Even if you use ‘latest’, the VM image will not automatically update after deploy time even if a new version becomes available.

.spec.osDisk

object Required

OSDisk specifies the parameters for the operating system disk of the machine

.spec.osDisk.cachingType

string

CachingType specifies the caching requirements.

.spec.osDisk.diffDiskSettings

object

DiffDiskSettings describe ephemeral disk settings for the os disk.

.spec.osDisk.diffDiskSettings.option

string Required

Option enables ephemeral OS when set to “Local” See https://docs.microsoft.com/en-us/azure/virtual-machines/ephemeral-os-disks for full details

.spec.osDisk.diskSizeGB

integer

DiskSizeGB is the size in GB to assign to the OS disk. Will have a default of 30GB if not provided

.spec.osDisk.managedDisk

object

ManagedDisk specifies the Managed Disk parameters for the OS disk.

.spec.osDisk.managedDisk.diskEncryptionSet

object

DiskEncryptionSetParameters defines disk encryption options.

.spec.osDisk.managedDisk.diskEncryptionSet.id

string

ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription

.spec.osDisk.managedDisk.storageAccountType

string

.spec.osDisk.osType

string Required

.spec.providerID

string

ProviderID is the unique identifier as specified by the cloud provider.

.spec.roleAssignmentName

string

RoleAssignmentName is the name of the role assignment to create for a system assigned identity. It can be any valid GUID. If not specified, a random GUID will be generated.

.spec.securityProfile

object

SecurityProfile specifies the Security profile settings for a virtual machine.

.spec.securityProfile.encryptionAtHost

boolean

This field indicates whether Host Encryption should be enabled or disabled for a virtual machine or virtual machine scale set. Default is disabled.

.spec.spotVMOptions

object

SpotVMOptions allows the ability to specify the Machine should use a Spot VM

.spec.spotVMOptions.maxPrice

MaxPrice defines the maximum price the user is willing to pay for Spot VM instances

.spec.sshPublicKey

string Required

.spec.subnetName

string

SubnetName selects the Subnet where the VM will be placed

.spec.userAssignedIdentities

array

UserAssignedIdentities is a list of standalone Azure identities provided by the user The lifecycle of a user-assigned identity is managed separately from the lifecycle of the AzureMachine. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli

.spec.userAssignedIdentities[*]

object

UserAssignedIdentity defines the user-assigned identities provided by the user to be assigned to Azure resources.

.spec.userAssignedIdentities[*].providerID

string Required

ProviderID is the identification ID of the user-assigned Identity, the format of an identity is: ‘azure:///subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}’

.spec.vmSize

string Required

.status

object

AzureMachineStatus defines the observed state of AzureMachine.

.status.addresses

array

Addresses contains the Azure instance associated addresses.

.status.addresses[*]

object

NodeAddress contains information for the node’s address.

.status.addresses[*].address

string Required

The node address.

.status.addresses[*].type

string Required

Node address type, one of Hostname, ExternalIP or InternalIP.

.status.conditions

array

Conditions defines current service state of the AzureMachine.

.status.conditions[*]

object

Condition defines an observation of a Cluster API resource operational state.

.status.conditions[*].lastTransitionTime

string

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

.status.conditions[*].message

string

A human readable message indicating details about the transition. This field may be empty.

.status.conditions[*].reason

string

The reason for the condition’s last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

.status.conditions[*].severity

string

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

.status.conditions[*].status

string Required

Status of the condition, one of True, False, Unknown.

.status.conditions[*].type

string Required

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

.status.failureMessage

string

ErrorMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine’s spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller’s output.

.status.failureReason

string

ErrorReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine’s spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller’s output.

.status.longRunningOperationStates

array

LongRunningOperationStates saves the states for Azure long-running operations so they can be continued on the next reconciliation loop.

.status.longRunningOperationStates[*]

object

Future contains the data needed for an Azure long-running operation to continue across reconcile loops.

.status.longRunningOperationStates[*].data

string

Data is the base64 url encoded json Azure AutoRest Future.

.status.longRunningOperationStates[*].name

string Required

Name is the name of the Azure resource. Together with the service name, this forms the unique identifier for the future.

.status.longRunningOperationStates[*].resourceGroup

string

ResourceGroup is the Azure resource group for the resource.

.status.longRunningOperationStates[*].serviceName

string Required

ServiceName is the name of the Azure service. Together with the name of the resource, this forms the unique identifier for the future.

.status.longRunningOperationStates[*].type

string Required

Type describes the type of future, such as update, create, delete, etc.

.status.ready

boolean

Ready is true when the provider resource is ready.

.status.vmState

string

VMState is the provisioning state of the Azure virtual machine.

Version v1beta1

Properties

.apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

.kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

.metadata

object

.spec

object

AzureMachineSpec defines the desired state of AzureMachine.

.spec.acceleratedNetworking

boolean

AcceleratedNetworking enables or disables Azure accelerated networking. If omitted, it will be set based on whether the requested VMSize supports accelerated networking. If AcceleratedNetworking is set to true with a VMSize that does not support it, Azure will return an error.

.spec.additionalTags

object

AdditionalTags is an optional set of tags to add to an instance, in addition to the ones added by default by the Azure provider. If both the AzureCluster and the AzureMachine specify the same tag name with different values, the AzureMachine’s value takes precedence.

.spec.allocatePublicIP

boolean

AllocatePublicIP allows the ability to create dynamic public ips for machines where this value is true.

.spec.dataDisks

array

DataDisk specifies the parameters that are used to add one or more data disks to the machine

.spec.dataDisks[*]

object

DataDisk specifies the parameters that are used to add one or more data disks to the machine.

.spec.dataDisks[*].cachingType

string

CachingType specifies the caching requirements.

.spec.dataDisks[*].diskSizeGB

integer Required

DiskSizeGB is the size in GB to assign to the data disk.

.spec.dataDisks[*].lun

integer

Lun Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. The value must be between 0 and 63.

.spec.dataDisks[*].managedDisk

object

ManagedDisk specifies the Managed Disk parameters for the data disk.

.spec.dataDisks[*].managedDisk.diskEncryptionSet

object

DiskEncryptionSetParameters defines disk encryption options.

.spec.dataDisks[*].managedDisk.diskEncryptionSet.id

string

ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription

.spec.dataDisks[*].managedDisk.storageAccountType

string

.spec.dataDisks[*].nameSuffix

string Required

NameSuffix is the suffix to be appended to the machine name to generate the disk name. Each disk name will be in format _.

.spec.enableIPForwarding

boolean

EnableIPForwarding enables IP Forwarding in Azure which is required for some CNI’s to send traffic from a pods on one machine to another. This is required for IpV6 with Calico in combination with User Defined Routes (set by the Azure Cloud Controller manager). Default is false for disabled.

.spec.failureDomain

string

FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. This relates to an Azure Availability Zone

.spec.identity

string

Identity is the type of identity used for the virtual machine. The type ‘SystemAssigned’ is an implicitly created identity. The generated identity will be assigned a Subscription contributor role. The type ‘UserAssigned’ is a standalone Azure resource provided by the user and assigned to the VM

.spec.image

object

Image is used to provide details of an image to use during VM creation. If image details are omitted the image will default the Azure Marketplace “capi” offer, which is based on Ubuntu.

.spec.image.id

string

ID specifies an image to use by ID

.spec.image.marketplace

object

Marketplace specifies an image to use from the Azure Marketplace

.spec.image.marketplace.offer

string Required

Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer

.spec.image.marketplace.publisher

string Required

Publisher is the name of the organization that created the image

.spec.image.marketplace.sku

string Required

SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter

.spec.image.marketplace.thirdPartyImage

boolean

ThirdPartyImage indicates the image is published by a third party publisher and a Plan will be generated for it.

.spec.image.marketplace.version

string Required

Version specifies the version of an image sku. The allowed formats are Major.Minor.Build or ‘latest’. Major, Minor, and Build are decimal numbers. Specify ‘latest’ to use the latest version of an image available at deploy time. Even if you use ‘latest’, the VM image will not automatically update after deploy time even if a new version becomes available.

.spec.image.sharedGallery

object

SharedGallery specifies an image to use from an Azure Shared Image Gallery

.spec.image.sharedGallery.gallery

string Required

Gallery specifies the name of the shared image gallery that contains the image

.spec.image.sharedGallery.name

string Required

Name is the name of the image

.spec.image.sharedGallery.offer

string

Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer This value will be used to add a Plan in the API request when creating the VM/VMSS resource. This is needed when the source image from which this SIG image was built requires the Plan to be used.

.spec.image.sharedGallery.publisher

string

Publisher is the name of the organization that created the image. This value will be used to add a Plan in the API request when creating the VM/VMSS resource. This is needed when the source image from which this SIG image was built requires the Plan to be used.

.spec.image.sharedGallery.resourceGroup

string Required

ResourceGroup specifies the resource group containing the shared image gallery

.spec.image.sharedGallery.sku

string

SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter This value will be used to add a Plan in the API request when creating the VM/VMSS resource. This is needed when the source image from which this SIG image was built requires the Plan to be used.

.spec.image.sharedGallery.subscriptionID

string Required

SubscriptionID is the identifier of the subscription that contains the shared image gallery

.spec.image.sharedGallery.version

string Required

Version specifies the version of the marketplace image. The allowed formats are Major.Minor.Build or ‘latest’. Major, Minor, and Build are decimal numbers. Specify ‘latest’ to use the latest version of an image available at deploy time. Even if you use ‘latest’, the VM image will not automatically update after deploy time even if a new version becomes available.

.spec.osDisk

object Required

OSDisk specifies the parameters for the operating system disk of the machine

.spec.osDisk.cachingType

string

CachingType specifies the caching requirements.

.spec.osDisk.diffDiskSettings

object

DiffDiskSettings describe ephemeral disk settings for the os disk.

.spec.osDisk.diffDiskSettings.option

string Required

Option enables ephemeral OS when set to “Local” See https://docs.microsoft.com/en-us/azure/virtual-machines/ephemeral-os-disks for full details

.spec.osDisk.diskSizeGB

integer

DiskSizeGB is the size in GB to assign to the OS disk. Will have a default of 30GB if not provided

.spec.osDisk.managedDisk

object

ManagedDisk specifies the Managed Disk parameters for the OS disk.

.spec.osDisk.managedDisk.diskEncryptionSet

object

DiskEncryptionSetParameters defines disk encryption options.

.spec.osDisk.managedDisk.diskEncryptionSet.id

string

ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription

.spec.osDisk.managedDisk.storageAccountType

string

.spec.osDisk.osType

string Required

.spec.providerID

string

ProviderID is the unique identifier as specified by the cloud provider.

.spec.roleAssignmentName

string

RoleAssignmentName is the name of the role assignment to create for a system assigned identity. It can be any valid GUID. If not specified, a random GUID will be generated.

.spec.securityProfile

object

SecurityProfile specifies the Security profile settings for a virtual machine.

.spec.securityProfile.encryptionAtHost

boolean

This field indicates whether Host Encryption should be enabled or disabled for a virtual machine or virtual machine scale set. Default is disabled.

.spec.spotVMOptions

object

SpotVMOptions allows the ability to specify the Machine should use a Spot VM

.spec.spotVMOptions.maxPrice

MaxPrice defines the maximum price the user is willing to pay for Spot VM instances

.spec.sshPublicKey

string Required

.spec.subnetName

string

SubnetName selects the Subnet where the VM will be placed

.spec.userAssignedIdentities

array

UserAssignedIdentities is a list of standalone Azure identities provided by the user The lifecycle of a user-assigned identity is managed separately from the lifecycle of the AzureMachine. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli

.spec.userAssignedIdentities[*]

object

UserAssignedIdentity defines the user-assigned identities provided by the user to be assigned to Azure resources.

.spec.userAssignedIdentities[*].providerID

string Required

ProviderID is the identification ID of the user-assigned Identity, the format of an identity is: ‘azure:///subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}’

.spec.vmSize

string Required

.status

object

AzureMachineStatus defines the observed state of AzureMachine.

.status.addresses

array

Addresses contains the Azure instance associated addresses.

.status.addresses[*]

object

NodeAddress contains information for the node’s address.

.status.addresses[*].address

string Required

The node address.

.status.addresses[*].type

string Required

Node address type, one of Hostname, ExternalIP or InternalIP.

.status.conditions

array

Conditions defines current service state of the AzureMachine.

.status.conditions[*]

object

Condition defines an observation of a Cluster API resource operational state.

.status.conditions[*].lastTransitionTime

string Required

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

.status.conditions[*].message

string

A human readable message indicating details about the transition. This field may be empty.

.status.conditions[*].reason

string

The reason for the condition’s last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

.status.conditions[*].severity

string

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

.status.conditions[*].status

string Required

Status of the condition, one of True, False, Unknown.

.status.conditions[*].type

string Required

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

.status.failureMessage

string

ErrorMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine’s spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller’s output.

.status.failureReason

string

ErrorReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine’s spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller’s output.

.status.longRunningOperationStates

array

LongRunningOperationStates saves the states for Azure long-running operations so they can be continued on the next reconciliation loop.

.status.longRunningOperationStates[*]

object

Future contains the data needed for an Azure long-running operation to continue across reconcile loops.

.status.longRunningOperationStates[*].data

string Required

Data is the base64 url encoded json Azure AutoRest Future.

.status.longRunningOperationStates[*].name

string Required

Name is the name of the Azure resource. Together with the service name, this forms the unique identifier for the future.

.status.longRunningOperationStates[*].resourceGroup

string

ResourceGroup is the Azure resource group for the resource.

.status.longRunningOperationStates[*].serviceName

string Required

ServiceName is the name of the Azure service. Together with the name of the resource, this forms the unique identifier for the future.

.status.longRunningOperationStates[*].type

string Required

Type describes the type of future, such as update, create, delete, etc.

.status.ready

boolean

Ready is true when the provider resource is ready.

.status.vmState

string

VMState is the provisioning state of the Azure virtual machine.


This documentation page shows information based on apiextensions v5.0.0.