Last generated June 29, 2022
AzureMachinePool
AzureMachinePool is the Schema for the azuremachinepools API.
Version v1alpha3
Example CR
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
kind: AzureMachinePool
metadata:
labels:
azure-operator.giantswarm.io/version: 5.3.1
cluster.x-k8s.io/cluster-name: mmh5x
giantswarm.io/cluster: mmh5x
giantswarm.io/machine-pool: w86vu
giantswarm.io/organization: giantswarm
release.giantswarm.io/version: 14.1.0
name: w86vu
namespace: org-giantswarm
spec:
identity: None
location: westeurope
providerID: azure:///subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/resourceGroups/mmh5x/providers/Microsoft.Compute/virtualMachineScaleSets/nodepool-w86vu
providerIDList:
- azure:///subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/resourceGroups/mmh5x/providers/Microsoft.Compute/virtualMachineScaleSets/nodepool-w86vu/virtualMachines/0
- azure:///subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/resourceGroups/mmh5x/providers/Microsoft.Compute/virtualMachineScaleSets/nodepool-w86vu/virtualMachines/1
- azure:///subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/resourceGroups/mmh5x/providers/Microsoft.Compute/virtualMachineScaleSets/nodepool-w86vu/virtualMachines/2
template:
dataDisks:
- diskSizeGB: 100
lun: 21
nameSuffix: docker
- diskSizeGB: 100
lun: 22
nameSuffix: kubelet
osDisk:
diskSizeGB: 0
managedDisk:
storageAccountType: Premium_LRS
osType: ""
sshPublicKey: ""
vmSize: Standard_D4s_v3
Properties
.apiVersion
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
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
.spec
AzureMachinePoolSpec defines the desired state of AzureMachinePool.
.spec.additionalTags
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.identity
Identity is the type of identity used for the Virtual Machine Scale Set. 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.location
Location is the Azure region location e.g. westus2
.spec.providerID
ProviderID is the identification ID of the Virtual Machine Scale Set
.spec.providerIDList
ProviderIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool’s machine instances.
.spec.providerIDList[*]
.spec.roleAssignmentName
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.template
Template contains the details used to build a replica virtual machine within the Machine Pool.
.spec.template.acceleratedNetworking
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.template.dataDisks
DataDisks specifies the list of data disks to be created for a Virtual Machine
.spec.template.dataDisks[*]
DataDisk specifies the parameters that are used to add one or more data disks to the machine.
.spec.template.dataDisks[*].cachingType
.spec.template.dataDisks[*].diskSizeGB
DiskSizeGB is the size in GB to assign to the data disk.
.spec.template.dataDisks[*].lun
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.template.dataDisks[*].managedDisk
ManagedDisk defines the managed disk options for a VM.
.spec.template.dataDisks[*].managedDisk.diskEncryptionSet
DiskEncryptionSetParameters defines disk encryption options.
.spec.template.dataDisks[*].managedDisk.diskEncryptionSet.id
ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription
.spec.template.dataDisks[*].managedDisk.storageAccountType
.spec.template.dataDisks[*].nameSuffix
NameSuffix is the suffix to be appended to the machine name to generate the disk name. Each disk name will be in format
.spec.template.image
Image is used to provide details of an image to use during Virtual Machine creation. If image details are omitted the image will default the Azure Marketplace “capi” offer, which is based on Ubuntu.
.spec.template.image.id
ID specifies an image to use by ID
.spec.template.image.marketplace
Marketplace specifies an image to use from the Azure Marketplace
.spec.template.image.marketplace.offer
Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer
.spec.template.image.marketplace.publisher
Publisher is the name of the organization that created the image
.spec.template.image.marketplace.sku
SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter
.spec.template.image.marketplace.thirdPartyImage
ThirdPartyImage indicates the image is published by a third party publisher and a Plan will be generated for it.
.spec.template.image.marketplace.version
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.template.image.sharedGallery
SharedGallery specifies an image to use from an Azure Shared Image Gallery
.spec.template.image.sharedGallery.gallery
Gallery specifies the name of the shared image gallery that contains the image
.spec.template.image.sharedGallery.name
Name is the name of the image
.spec.template.image.sharedGallery.resourceGroup
ResourceGroup specifies the resource group containing the shared image gallery
.spec.template.image.sharedGallery.subscriptionID
SubscriptionID is the identifier of the subscription that contains the shared image gallery
.spec.template.image.sharedGallery.version
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.template.osDisk
OSDisk contains the operating system disk information for a Virtual Machine
.spec.template.osDisk.cachingType
.spec.template.osDisk.diffDiskSettings
DiffDiskSettings describe ephemeral disk settings for the os disk.
.spec.template.osDisk.diffDiskSettings.option
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.template.osDisk.diskSizeGB
.spec.template.osDisk.managedDisk
ManagedDisk defines the managed disk options for a VM.
.spec.template.osDisk.managedDisk.diskEncryptionSet
DiskEncryptionSetParameters defines disk encryption options.
.spec.template.osDisk.managedDisk.diskEncryptionSet.id
ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription
.spec.template.osDisk.managedDisk.storageAccountType
.spec.template.osDisk.osType
.spec.template.securityProfile
SecurityProfile specifies the Security profile settings for a virtual machine.
.spec.template.securityProfile.encryptionAtHost
This field indicates whether Host Encryption should be enabled or disabled for a virtual machine or virtual machine scale set. Default is disabled.
.spec.template.spotVMOptions
SpotVMOptions allows the ability to specify the Machine should use a Spot VM
.spec.template.spotVMOptions.maxPrice
MaxPrice defines the maximum price the user is willing to pay for Spot VM instances
.spec.template.sshPublicKey
SSHPublicKey is the SSH public key string base64 encoded to add to a Virtual Machine
.spec.template.terminateNotificationTimeout
TerminateNotificationTimeout enables or disables VMSS scheduled events termination notification with specified timeout allowed values are between 5 and 15 (mins)
.spec.template.vmSize
VMSize is the size of the Virtual Machine to build. See https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#virtualmachinesizetypes
.spec.userAssignedIdentities
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 AzureMachinePool. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli
.spec.userAssignedIdentities[*]
UserAssignedIdentity defines the user-assigned identities provided by the user to be assigned to Azure resources.
.spec.userAssignedIdentities[*].providerID
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}’
.status
AzureMachinePoolStatus defines the observed state of AzureMachinePool.
.status.conditions
Conditions defines current service state of the AzureMachinePool.
.status.conditions[*]
Condition defines an observation of a Cluster API resource operational state.
.status.conditions[*].lastTransitionTime
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
A human readable message indicating details about the transition. This field may be empty.
.status.conditions[*].reason
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
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
Status of the condition, one of True, False, Unknown.
.status.conditions[*].type
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
FailureMessage will be set in the event that there is a terminal problem reconciling the MachinePool 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 MachinePool’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 MachinePools can be added as events to the MachinePool object and/or logged in the controller’s output.
.status.failureReason
FailureReason will be set in the event that there is a terminal problem reconciling the MachinePool 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 MachinePool’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 MachinePools can be added as events to the MachinePool object and/or logged in the controller’s output.
.status.instances
Instances is the VM instance status for each VM in the VMSS
.status.instances[*]
AzureMachinePoolInstanceStatus provides status information for each instance in the VMSS.
.status.instances[*].instanceID
InstanceID is the identification of the Machine Instance within the VMSS
.status.instances[*].instanceName
InstanceName is the name of the Machine Instance within the VMSS
.status.instances[*].latestModelApplied
LatestModelApplied indicates the instance is running the most up-to-date VMSS model. A VMSS model describes the image version the VM is running. If the instance is not running the latest model, it means the instance may not be running the version of Kubernetes the Machine Pool has specified and needs to be updated.
.status.instances[*].providerID
ProviderID is the provider identification of the VMSS Instance
.status.instances[*].provisioningState
ProvisioningState is the provisioning state of the Azure virtual machine instance.
.status.instances[*].version
Version defines the Kubernetes version for the VM Instance
.status.longRunningOperationState
LongRunningOperationState saves the state for an Azure long running operations so it can be continued on the next reconciliation loop.
.status.longRunningOperationState.futureData
FutureData is the base64 url encoded json Azure AutoRest Future.
.status.longRunningOperationState.name
Name is the name of the Azure resource.
.status.longRunningOperationState.resourceGroup
ResourceGroup is the Azure resource group for the resource.
.status.longRunningOperationState.type
Type describes the type of future, update, create, delete, etc.
.status.provisioningState
ProvisioningState is the provisioning state of the Azure virtual machine.
.status.ready
Ready is true when the provider resource is ready.
.status.replicas
Replicas is the most recently observed number of replicas.
.status.version
Version is the Kubernetes version for the current VMSS model
Version v1alpha4
Properties
.apiVersion
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
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
.spec
AzureMachinePoolSpec defines the desired state of AzureMachinePool.
.spec.additionalTags
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.identity
Identity is the type of identity used for the Virtual Machine Scale Set. 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.location
Location is the Azure region location e.g. westus2
.spec.nodeDrainTimeout
NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from kubectl drain --timeout
.spec.providerID
ProviderID is the identification ID of the Virtual Machine Scale Set
.spec.providerIDList
ProviderIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool’s machine instances.
.spec.providerIDList[*]
.spec.roleAssignmentName
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.strategy
The deployment strategy to use to replace existing AzureMachinePoolMachines with new ones.
.spec.strategy.rollingUpdate
Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate.
.spec.strategy.rollingUpdate.deletePolicy
DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are “Random, “Newest”, “Oldest” When no value is supplied, the default is Oldest
.spec.strategy.rollingUpdate.maxSurge
The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines.
.spec.strategy.rollingUpdate.maxUnavailable
The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines.
.spec.strategy.type
Type of deployment. Currently the only supported strategy is RollingUpdate
.spec.template
Template contains the details used to build a replica virtual machine within the Machine Pool
.spec.template.acceleratedNetworking
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.template.dataDisks
DataDisks specifies the list of data disks to be created for a Virtual Machine
.spec.template.dataDisks[*]
DataDisk specifies the parameters that are used to add one or more data disks to the machine.
.spec.template.dataDisks[*].cachingType
CachingType specifies the caching requirements.
.spec.template.dataDisks[*].diskSizeGB
DiskSizeGB is the size in GB to assign to the data disk.
.spec.template.dataDisks[*].lun
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.template.dataDisks[*].managedDisk
ManagedDisk specifies the Managed Disk parameters for the data disk.
.spec.template.dataDisks[*].managedDisk.diskEncryptionSet
DiskEncryptionSetParameters defines disk encryption options.
.spec.template.dataDisks[*].managedDisk.diskEncryptionSet.id
ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription
.spec.template.dataDisks[*].managedDisk.storageAccountType
.spec.template.dataDisks[*].nameSuffix
NameSuffix is the suffix to be appended to the machine name to generate the disk name. Each disk name will be in format
.spec.template.image
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.template.image.id
ID specifies an image to use by ID
.spec.template.image.marketplace
Marketplace specifies an image to use from the Azure Marketplace
.spec.template.image.marketplace.offer
Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer
.spec.template.image.marketplace.publisher
Publisher is the name of the organization that created the image
.spec.template.image.marketplace.sku
SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter
.spec.template.image.marketplace.thirdPartyImage
ThirdPartyImage indicates the image is published by a third party publisher and a Plan will be generated for it.
.spec.template.image.marketplace.version
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.template.image.sharedGallery
SharedGallery specifies an image to use from an Azure Shared Image Gallery
.spec.template.image.sharedGallery.gallery
Gallery specifies the name of the shared image gallery that contains the image
.spec.template.image.sharedGallery.name
Name is the name of the image
.spec.template.image.sharedGallery.offer
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.template.image.sharedGallery.publisher
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.template.image.sharedGallery.resourceGroup
ResourceGroup specifies the resource group containing the shared image gallery
.spec.template.image.sharedGallery.sku
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.template.image.sharedGallery.subscriptionID
SubscriptionID is the identifier of the subscription that contains the shared image gallery
.spec.template.image.sharedGallery.version
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.template.osDisk
OSDisk contains the operating system disk information for a Virtual Machine
.spec.template.osDisk.cachingType
CachingType specifies the caching requirements.
.spec.template.osDisk.diffDiskSettings
DiffDiskSettings describe ephemeral disk settings for the os disk.
.spec.template.osDisk.diffDiskSettings.option
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.template.osDisk.diskSizeGB
DiskSizeGB is the size in GB to assign to the OS disk. Will have a default of 30GB if not provided
.spec.template.osDisk.managedDisk
ManagedDisk specifies the Managed Disk parameters for the OS disk.
.spec.template.osDisk.managedDisk.diskEncryptionSet
DiskEncryptionSetParameters defines disk encryption options.
.spec.template.osDisk.managedDisk.diskEncryptionSet.id
ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription
.spec.template.osDisk.managedDisk.storageAccountType
.spec.template.osDisk.osType
.spec.template.securityProfile
SecurityProfile specifies the Security profile settings for a virtual machine.
.spec.template.securityProfile.encryptionAtHost
This field indicates whether Host Encryption should be enabled or disabled for a virtual machine or virtual machine scale set. Default is disabled.
.spec.template.spotVMOptions
SpotVMOptions allows the ability to specify the Machine should use a Spot VM
.spec.template.spotVMOptions.maxPrice
MaxPrice defines the maximum price the user is willing to pay for Spot VM instances
.spec.template.sshPublicKey
SSHPublicKey is the SSH public key string base64 encoded to add to a Virtual Machine
.spec.template.subnetName
SubnetName selects the Subnet where the VMSS will be placed
.spec.template.terminateNotificationTimeout
TerminateNotificationTimeout enables or disables VMSS scheduled events termination notification with specified timeout allowed values are between 5 and 15 (mins)
.spec.template.vmSize
VMSize is the size of the Virtual Machine to build. See https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#virtualmachinesizetypes
.spec.userAssignedIdentities
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 AzureMachinePool. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli
.spec.userAssignedIdentities[*]
UserAssignedIdentity defines the user-assigned identities provided by the user to be assigned to Azure resources.
.spec.userAssignedIdentities[*].providerID
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}’
.status
AzureMachinePoolStatus defines the observed state of AzureMachinePool.
.status.conditions
Conditions defines current service state of the AzureMachinePool.
.status.conditions[*]
Condition defines an observation of a Cluster API resource operational state.
.status.conditions[*].lastTransitionTime
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
A human readable message indicating details about the transition. This field may be empty.
.status.conditions[*].reason
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
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
Status of the condition, one of True, False, Unknown.
.status.conditions[*].type
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
FailureMessage will be set in the event that there is a terminal problem reconciling the MachinePool 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 MachinePool’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 MachinePools can be added as events to the MachinePool object and/or logged in the controller’s output.
.status.failureReason
FailureReason will be set in the event that there is a terminal problem reconciling the MachinePool 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 MachinePool’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 MachinePools can be added as events to the MachinePool object and/or logged in the controller’s output.
.status.image
Image is the current image used in the AzureMachinePool. When the spec image is nil, this image is populated with the details of the defaulted Azure Marketplace “capi” offer.
.status.image.id
ID specifies an image to use by ID
.status.image.marketplace
Marketplace specifies an image to use from the Azure Marketplace
.status.image.marketplace.offer
Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer
.status.image.marketplace.publisher
Publisher is the name of the organization that created the image
.status.image.marketplace.sku
SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter
.status.image.marketplace.thirdPartyImage
ThirdPartyImage indicates the image is published by a third party publisher and a Plan will be generated for it.
.status.image.marketplace.version
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.
.status.image.sharedGallery
SharedGallery specifies an image to use from an Azure Shared Image Gallery
.status.image.sharedGallery.gallery
Gallery specifies the name of the shared image gallery that contains the image
.status.image.sharedGallery.name
Name is the name of the image
.status.image.sharedGallery.offer
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.
.status.image.sharedGallery.publisher
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.
.status.image.sharedGallery.resourceGroup
ResourceGroup specifies the resource group containing the shared image gallery
.status.image.sharedGallery.sku
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.
.status.image.sharedGallery.subscriptionID
SubscriptionID is the identifier of the subscription that contains the shared image gallery
.status.image.sharedGallery.version
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.
.status.instances
Instances is the VM instance status for each VM in the VMSS
.status.instances[*]
AzureMachinePoolInstanceStatus provides status information for each instance in the VMSS.
.status.instances[*].instanceID
InstanceID is the identification of the Machine Instance within the VMSS
.status.instances[*].instanceName
InstanceName is the name of the Machine Instance within the VMSS
.status.instances[*].latestModelApplied
LatestModelApplied indicates the instance is running the most up-to-date VMSS model. A VMSS model describes the image version the VM is running. If the instance is not running the latest model, it means the instance may not be running the version of Kubernetes the Machine Pool has specified and needs to be updated.
.status.instances[*].providerID
ProviderID is the provider identification of the VMSS Instance
.status.instances[*].provisioningState
ProvisioningState is the provisioning state of the Azure virtual machine instance.
.status.instances[*].version
Version defines the Kubernetes version for the VM Instance
.status.longRunningOperationStates
LongRunningOperationStates saves the state for Azure long-running operations so they can be continued on the next reconciliation loop.
.status.longRunningOperationStates[*]
Future contains the data needed for an Azure long-running operation to continue across reconcile loops.
.status.longRunningOperationStates[*].data
Data is the base64 url encoded json Azure AutoRest Future.
.status.longRunningOperationStates[*].name
Name is the name of the Azure resource. Together with the service name, this forms the unique identifier for the future.
.status.longRunningOperationStates[*].resourceGroup
ResourceGroup is the Azure resource group for the resource.
.status.longRunningOperationStates[*].serviceName
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
Type describes the type of future, such as update, create, delete, etc.
.status.provisioningState
ProvisioningState is the provisioning state of the Azure virtual machine.
.status.ready
Ready is true when the provider resource is ready.
.status.replicas
Replicas is the most recently observed number of replicas.
.status.version
Version is the Kubernetes version for the current VMSS model
Version v1beta1
Properties
.apiVersion
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
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
.spec
AzureMachinePoolSpec defines the desired state of AzureMachinePool.
.spec.additionalTags
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.identity
Identity is the type of identity used for the Virtual Machine Scale Set. 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.location
Location is the Azure region location e.g. westus2
.spec.nodeDrainTimeout
NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from kubectl drain --timeout
.spec.providerID
ProviderID is the identification ID of the Virtual Machine Scale Set
.spec.providerIDList
ProviderIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool’s machine instances.
.spec.providerIDList[*]
.spec.roleAssignmentName
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.strategy
The deployment strategy to use to replace existing AzureMachinePoolMachines with new ones.
.spec.strategy.rollingUpdate
Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate.
.spec.strategy.rollingUpdate.deletePolicy
DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are “Random, “Newest”, “Oldest” When no value is supplied, the default is Oldest
.spec.strategy.rollingUpdate.maxSurge
The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines.
.spec.strategy.rollingUpdate.maxUnavailable
The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines.
.spec.strategy.type
Type of deployment. Currently the only supported strategy is RollingUpdate
.spec.template
Template contains the details used to build a replica virtual machine within the Machine Pool
.spec.template.acceleratedNetworking
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.template.dataDisks
DataDisks specifies the list of data disks to be created for a Virtual Machine
.spec.template.dataDisks[*]
DataDisk specifies the parameters that are used to add one or more data disks to the machine.
.spec.template.dataDisks[*].cachingType
CachingType specifies the caching requirements.
.spec.template.dataDisks[*].diskSizeGB
DiskSizeGB is the size in GB to assign to the data disk.
.spec.template.dataDisks[*].lun
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.template.dataDisks[*].managedDisk
ManagedDisk specifies the Managed Disk parameters for the data disk.
.spec.template.dataDisks[*].managedDisk.diskEncryptionSet
DiskEncryptionSetParameters defines disk encryption options.
.spec.template.dataDisks[*].managedDisk.diskEncryptionSet.id
ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription
.spec.template.dataDisks[*].managedDisk.storageAccountType
.spec.template.dataDisks[*].nameSuffix
NameSuffix is the suffix to be appended to the machine name to generate the disk name. Each disk name will be in format
.spec.template.image
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.template.image.id
ID specifies an image to use by ID
.spec.template.image.marketplace
Marketplace specifies an image to use from the Azure Marketplace
.spec.template.image.marketplace.offer
Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer
.spec.template.image.marketplace.publisher
Publisher is the name of the organization that created the image
.spec.template.image.marketplace.sku
SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter
.spec.template.image.marketplace.thirdPartyImage
ThirdPartyImage indicates the image is published by a third party publisher and a Plan will be generated for it.
.spec.template.image.marketplace.version
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.template.image.sharedGallery
SharedGallery specifies an image to use from an Azure Shared Image Gallery
.spec.template.image.sharedGallery.gallery
Gallery specifies the name of the shared image gallery that contains the image
.spec.template.image.sharedGallery.name
Name is the name of the image
.spec.template.image.sharedGallery.offer
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.template.image.sharedGallery.publisher
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.template.image.sharedGallery.resourceGroup
ResourceGroup specifies the resource group containing the shared image gallery
.spec.template.image.sharedGallery.sku
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.template.image.sharedGallery.subscriptionID
SubscriptionID is the identifier of the subscription that contains the shared image gallery
.spec.template.image.sharedGallery.version
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.template.osDisk
OSDisk contains the operating system disk information for a Virtual Machine
.spec.template.osDisk.cachingType
CachingType specifies the caching requirements.
.spec.template.osDisk.diffDiskSettings
DiffDiskSettings describe ephemeral disk settings for the os disk.
.spec.template.osDisk.diffDiskSettings.option
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.template.osDisk.diskSizeGB
DiskSizeGB is the size in GB to assign to the OS disk. Will have a default of 30GB if not provided
.spec.template.osDisk.managedDisk
ManagedDisk specifies the Managed Disk parameters for the OS disk.
.spec.template.osDisk.managedDisk.diskEncryptionSet
DiskEncryptionSetParameters defines disk encryption options.
.spec.template.osDisk.managedDisk.diskEncryptionSet.id
ID defines resourceID for diskEncryptionSet resource. It must be in the same subscription
.spec.template.osDisk.managedDisk.storageAccountType
.spec.template.osDisk.osType
.spec.template.securityProfile
SecurityProfile specifies the Security profile settings for a virtual machine.
.spec.template.securityProfile.encryptionAtHost
This field indicates whether Host Encryption should be enabled or disabled for a virtual machine or virtual machine scale set. Default is disabled.
.spec.template.spotVMOptions
SpotVMOptions allows the ability to specify the Machine should use a Spot VM
.spec.template.spotVMOptions.maxPrice
MaxPrice defines the maximum price the user is willing to pay for Spot VM instances
.spec.template.sshPublicKey
SSHPublicKey is the SSH public key string base64 encoded to add to a Virtual Machine
.spec.template.subnetName
SubnetName selects the Subnet where the VMSS will be placed
.spec.template.terminateNotificationTimeout
TerminateNotificationTimeout enables or disables VMSS scheduled events termination notification with specified timeout allowed values are between 5 and 15 (mins)
.spec.template.vmSize
VMSize is the size of the Virtual Machine to build. See https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#virtualmachinesizetypes
.spec.userAssignedIdentities
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 AzureMachinePool. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli
.spec.userAssignedIdentities[*]
UserAssignedIdentity defines the user-assigned identities provided by the user to be assigned to Azure resources.
.spec.userAssignedIdentities[*].providerID
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}’
.status
AzureMachinePoolStatus defines the observed state of AzureMachinePool.
.status.conditions
Conditions defines current service state of the AzureMachinePool.
.status.conditions[*]
Condition defines an observation of a Cluster API resource operational state.
.status.conditions[*].lastTransitionTime
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
A human readable message indicating details about the transition. This field may be empty.
.status.conditions[*].reason
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
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
Status of the condition, one of True, False, Unknown.
.status.conditions[*].type
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
FailureMessage will be set in the event that there is a terminal problem reconciling the MachinePool 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 MachinePool’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 MachinePools can be added as events to the MachinePool object and/or logged in the controller’s output.
.status.failureReason
FailureReason will be set in the event that there is a terminal problem reconciling the MachinePool 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 MachinePool’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 MachinePools can be added as events to the MachinePool object and/or logged in the controller’s output.
.status.image
Image is the current image used in the AzureMachinePool. When the spec image is nil, this image is populated with the details of the defaulted Azure Marketplace “capi” offer.
.status.image.id
ID specifies an image to use by ID
.status.image.marketplace
Marketplace specifies an image to use from the Azure Marketplace
.status.image.marketplace.offer
Offer specifies the name of a group of related images created by the publisher. For example, UbuntuServer, WindowsServer
.status.image.marketplace.publisher
Publisher is the name of the organization that created the image
.status.image.marketplace.sku
SKU specifies an instance of an offer, such as a major release of a distribution. For example, 18.04-LTS, 2019-Datacenter
.status.image.marketplace.thirdPartyImage
ThirdPartyImage indicates the image is published by a third party publisher and a Plan will be generated for it.
.status.image.marketplace.version
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.
.status.image.sharedGallery
SharedGallery specifies an image to use from an Azure Shared Image Gallery
.status.image.sharedGallery.gallery
Gallery specifies the name of the shared image gallery that contains the image
.status.image.sharedGallery.name
Name is the name of the image
.status.image.sharedGallery.offer
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.
.status.image.sharedGallery.publisher
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.
.status.image.sharedGallery.resourceGroup
ResourceGroup specifies the resource group containing the shared image gallery
.status.image.sharedGallery.sku
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.
.status.image.sharedGallery.subscriptionID
SubscriptionID is the identifier of the subscription that contains the shared image gallery
.status.image.sharedGallery.version
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.
.status.instances
Instances is the VM instance status for each VM in the VMSS
.status.instances[*]
AzureMachinePoolInstanceStatus provides status information for each instance in the VMSS.
.status.instances[*].instanceID
InstanceID is the identification of the Machine Instance within the VMSS
.status.instances[*].instanceName
InstanceName is the name of the Machine Instance within the VMSS
.status.instances[*].latestModelApplied
LatestModelApplied indicates the instance is running the most up-to-date VMSS model. A VMSS model describes the image version the VM is running. If the instance is not running the latest model, it means the instance may not be running the version of Kubernetes the Machine Pool has specified and needs to be updated.
.status.instances[*].providerID
ProviderID is the provider identification of the VMSS Instance
.status.instances[*].provisioningState
ProvisioningState is the provisioning state of the Azure virtual machine instance.
.status.instances[*].version
Version defines the Kubernetes version for the VM Instance
.status.longRunningOperationStates
LongRunningOperationStates saves the state for Azure long-running operations so they can be continued on the next reconciliation loop.
.status.longRunningOperationStates[*]
Future contains the data needed for an Azure long-running operation to continue across reconcile loops.
.status.longRunningOperationStates[*].data
Data is the base64 url encoded json Azure AutoRest Future.
.status.longRunningOperationStates[*].name
Name is the name of the Azure resource. Together with the service name, this forms the unique identifier for the future.
.status.longRunningOperationStates[*].resourceGroup
ResourceGroup is the Azure resource group for the resource.
.status.longRunningOperationStates[*].serviceName
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
Type describes the type of future, such as update, create, delete, etc.
.status.provisioningState
ProvisioningState is the provisioning state of the Azure virtual machine.
.status.ready
Ready is true when the provider resource is ready.
.status.replicas
Replicas is the most recently observed number of replicas.
.status.version
Version is the Kubernetes version for the current VMSS model
This documentation page shows information based on apiextensions v5.0.0.
Need help with the Management API?
We listen in your Slack support channel. And of course, we welcome your pull requests to improve these docs!