sigs.k8s.io/cluster-api-provider-azure@v1.17.0/config/crd/bases/infrastructure.cluster.x-k8s.io_azuremachines.yaml (about)

     1  ---
     2  apiVersion: apiextensions.k8s.io/v1
     3  kind: CustomResourceDefinition
     4  metadata:
     5    annotations:
     6      controller-gen.kubebuilder.io/version: v0.15.0
     7    name: azuremachines.infrastructure.cluster.x-k8s.io
     8  spec:
     9    group: infrastructure.cluster.x-k8s.io
    10    names:
    11      categories:
    12      - cluster-api
    13      kind: AzureMachine
    14      listKind: AzureMachineList
    15      plural: azuremachines
    16      singular: azuremachine
    17    scope: Namespaced
    18    versions:
    19    - additionalPrinterColumns:
    20      - description: Cluster to which this AzureMachine belongs
    21        jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
    22        name: Cluster
    23        priority: 1
    24        type: string
    25      - jsonPath: .status.conditions[?(@.type=='Ready')].status
    26        name: Ready
    27        type: string
    28      - jsonPath: .status.conditions[?(@.type=='Ready')].severity
    29        name: Severity
    30        type: string
    31      - jsonPath: .status.conditions[?(@.type=='Ready')].reason
    32        name: Reason
    33        type: string
    34      - jsonPath: .status.conditions[?(@.type=='Ready')].message
    35        name: Message
    36        priority: 1
    37        type: string
    38      - description: Azure VM provisioning state
    39        jsonPath: .status.vmState
    40        name: State
    41        type: string
    42      - description: Machine object to which this AzureMachine belongs
    43        jsonPath: .metadata.ownerReferences[?(@.kind=="Machine")].name
    44        name: Machine
    45        priority: 1
    46        type: string
    47      - description: Azure VM ID
    48        jsonPath: .spec.providerID
    49        name: VM ID
    50        priority: 1
    51        type: string
    52      - description: Azure VM Size
    53        jsonPath: .spec.vmSize
    54        name: VM Size
    55        priority: 1
    56        type: string
    57      - description: Time duration since creation of this AzureMachine
    58        jsonPath: .metadata.creationTimestamp
    59        name: Age
    60        type: date
    61      name: v1beta1
    62      schema:
    63        openAPIV3Schema:
    64          description: AzureMachine is the Schema for the azuremachines API.
    65          properties:
    66            apiVersion:
    67              description: |-
    68                APIVersion defines the versioned schema of this representation of an object.
    69                Servers should convert recognized schemas to the latest internal value, and
    70                may reject unrecognized values.
    71                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    72              type: string
    73            kind:
    74              description: |-
    75                Kind is a string value representing the REST resource this object represents.
    76                Servers may infer this from the endpoint the client submits requests to.
    77                Cannot be updated.
    78                In CamelCase.
    79                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    80              type: string
    81            metadata:
    82              type: object
    83            spec:
    84              description: AzureMachineSpec defines the desired state of AzureMachine.
    85              properties:
    86                acceleratedNetworking:
    87                  description: 'Deprecated: AcceleratedNetworking should be set in the
    88                    networkInterfaces field.'
    89                  type: boolean
    90                additionalCapabilities:
    91                  description: AdditionalCapabilities specifies additional capabilities
    92                    enabled or disabled on the virtual machine.
    93                  properties:
    94                    ultraSSDEnabled:
    95                      description: |-
    96                        UltraSSDEnabled enables or disables Azure UltraSSD capability for the virtual machine.
    97                        Defaults to true if Ultra SSD data disks are specified,
    98                        otherwise it doesn't set the capability on the VM.
    99                      type: boolean
   100                  type: object
   101                additionalTags:
   102                  additionalProperties:
   103                    type: string
   104                  description: |-
   105                    AdditionalTags is an optional set of tags to add to an instance, in addition to the ones added by default by the
   106                    Azure provider. If both the AzureCluster and the AzureMachine specify the same tag name with different values, the
   107                    AzureMachine's value takes precedence.
   108                  type: object
   109                allocatePublicIP:
   110                  description: AllocatePublicIP allows the ability to create dynamic
   111                    public ips for machines where this value is true.
   112                  type: boolean
   113                capacityReservationGroupID:
   114                  description: |-
   115                    CapacityReservationGroupID specifies the capacity reservation group resource id that should be
   116                    used for allocating the virtual machine.
   117                    The field size should be greater than 0 and the field input must start with '/'.
   118                    The input for capacityReservationGroupID must be similar to '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}'.
   119                    The keys which are used should be among 'subscriptions', 'providers' and 'resourcegroups' followed by valid ID or names respectively.
   120                    It is optional but may not be changed once set.
   121                  type: string
   122                dataDisks:
   123                  description: DataDisk specifies the parameters that are used to add
   124                    one or more data disks to the machine
   125                  items:
   126                    description: DataDisk specifies the parameters that are used to
   127                      add one or more data disks to the machine.
   128                    properties:
   129                      cachingType:
   130                        description: CachingType specifies the caching requirements.
   131                        enum:
   132                        - None
   133                        - ReadOnly
   134                        - ReadWrite
   135                        type: string
   136                      diskSizeGB:
   137                        description: DiskSizeGB is the size in GB to assign to the data
   138                          disk.
   139                        format: int32
   140                        type: integer
   141                      lun:
   142                        description: |-
   143                          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.
   144                          The value must be between 0 and 63.
   145                        format: int32
   146                        type: integer
   147                      managedDisk:
   148                        description: ManagedDisk specifies the Managed Disk parameters
   149                          for the data disk.
   150                        properties:
   151                          diskEncryptionSet:
   152                            description: DiskEncryptionSet specifies the customer-managed
   153                              disk encryption set resource id for the managed disk.
   154                            properties:
   155                              id:
   156                                description: ID defines resourceID for diskEncryptionSet
   157                                  resource. It must be in the same subscription
   158                                type: string
   159                            type: object
   160                          securityProfile:
   161                            description: SecurityProfile specifies the security profile
   162                              for the managed disk.
   163                            properties:
   164                              diskEncryptionSet:
   165                                description: |-
   166                                  DiskEncryptionSet specifies the customer-managed disk encryption set resource id for the
   167                                  managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and
   168                                  VMGuest blob.
   169                                properties:
   170                                  id:
   171                                    description: ID defines resourceID for diskEncryptionSet
   172                                      resource. It must be in the same subscription
   173                                    type: string
   174                                type: object
   175                              securityEncryptionType:
   176                                description: |-
   177                                  SecurityEncryptionType specifies the encryption type of the managed disk.
   178                                  It is set to DiskWithVMGuestState to encrypt the managed disk along with the VMGuestState
   179                                  blob, and to VMGuestStateOnly to encrypt the VMGuestState blob only.
   180                                  When set to VMGuestStateOnly, VirtualizedTrustedPlatformModule should be set to Enabled.
   181                                  When set to DiskWithVMGuestState, EncryptionAtHost should be disabled, SecureBoot and
   182                                  VirtualizedTrustedPlatformModule should be set to Enabled.
   183                                  It can be set only for Confidential VMs.
   184                                enum:
   185                                - VMGuestStateOnly
   186                                - DiskWithVMGuestState
   187                                type: string
   188                            type: object
   189                          storageAccountType:
   190                            type: string
   191                        type: object
   192                      nameSuffix:
   193                        description: |-
   194                          NameSuffix is the suffix to be appended to the machine name to generate the disk name.
   195                          Each disk name will be in format <machineName>_<nameSuffix>.
   196                        type: string
   197                    required:
   198                    - diskSizeGB
   199                    - nameSuffix
   200                    type: object
   201                  type: array
   202                diagnostics:
   203                  description: |-
   204                    Diagnostics specifies the diagnostics settings for a virtual machine.
   205                    If not specified then Boot diagnostics (Managed) will be enabled.
   206                  properties:
   207                    boot:
   208                      description: |-
   209                        Boot configures the boot diagnostics settings for the virtual machine.
   210                        This allows to configure capturing serial output from the virtual machine on boot.
   211                        This is useful for debugging software based launch issues.
   212                        If not specified then Boot diagnostics (Managed) will be enabled.
   213                      properties:
   214                        storageAccountType:
   215                          description: |-
   216                            StorageAccountType determines if the storage account for storing the diagnostics data
   217                            should be disabled (Disabled), provisioned by Azure (Managed) or by the user (UserManaged).
   218                          enum:
   219                          - Managed
   220                          - UserManaged
   221                          - Disabled
   222                          type: string
   223                        userManaged:
   224                          description: UserManaged provides a reference to the user-managed
   225                            storage account.
   226                          properties:
   227                            storageAccountURI:
   228                              description: |-
   229                                StorageAccountURI is the URI of the user-managed storage account.
   230                                The URI typically will be `https://<mystorageaccountname>.blob.core.windows.net/`
   231                                but may differ if you are using Azure DNS zone endpoints.
   232                                You can find the correct endpoint by looking for the Blob Primary Endpoint in the
   233                                endpoints tab in the Azure console or with the CLI by issuing
   234                                `az storage account list --query='[].{name: name, "resource group": resourceGroup, "blob endpoint": primaryEndpoints.blob}'`.
   235                              maxLength: 1024
   236                              pattern: ^https://
   237                              type: string
   238                          required:
   239                          - storageAccountURI
   240                          type: object
   241                      required:
   242                      - storageAccountType
   243                      type: object
   244                  type: object
   245                disableExtensionOperations:
   246                  description: |-
   247                    DisableExtensionOperations specifies whether extension operations should be disabled on the virtual machine.
   248                    Use this setting only if VMExtensions are not supported by your image, as it disables CAPZ bootstrapping extension used for detecting Kubernetes bootstrap failure.
   249                    This may only be set to True when no extensions are configured on the virtual machine.
   250                  type: boolean
   251                dnsServers:
   252                  description: DNSServers adds a list of DNS Server IP addresses to
   253                    the VM NICs.
   254                  items:
   255                    type: string
   256                  type: array
   257                enableIPForwarding:
   258                  description: |-
   259                    EnableIPForwarding enables IP Forwarding in Azure which is required for some CNI's to send traffic from a pods on one machine
   260                    to another. This is required for IpV6 with Calico in combination with User Defined Routes (set by the Azure Cloud Controller
   261                    manager). Default is false for disabled.
   262                  type: boolean
   263                failureDomain:
   264                  description: |-
   265                    FailureDomain is the failure domain unique identifier this Machine should be attached to,
   266                    as defined in Cluster API. This relates to an Azure Availability Zone
   267                  type: string
   268                identity:
   269                  default: None
   270                  description: |-
   271                    Identity is the type of identity used for the virtual machine.
   272                    The type 'SystemAssigned' is an implicitly created identity.
   273                    The generated identity will be assigned a Subscription contributor role.
   274                    The type 'UserAssigned' is a standalone Azure resource provided by the user
   275                    and assigned to the VM
   276                  enum:
   277                  - None
   278                  - SystemAssigned
   279                  - UserAssigned
   280                  type: string
   281                image:
   282                  description: |-
   283                    Image is used to provide details of an image to use during VM creation.
   284                    If image details are omitted the image will default the Azure Marketplace "capi" offer,
   285                    which is based on Ubuntu.
   286                  properties:
   287                    computeGallery:
   288                      description: ComputeGallery specifies an image to use from the
   289                        Azure Compute Gallery
   290                      properties:
   291                        gallery:
   292                          description: Gallery specifies the name of the compute image
   293                            gallery that contains the image
   294                          minLength: 1
   295                          type: string
   296                        name:
   297                          description: Name is the name of the image
   298                          minLength: 1
   299                          type: string
   300                        plan:
   301                          description: Plan contains plan information.
   302                          properties:
   303                            offer:
   304                              description: |-
   305                                Offer specifies the name of a group of related images created by the publisher.
   306                                For example, UbuntuServer, WindowsServer
   307                              minLength: 1
   308                              type: string
   309                            publisher:
   310                              description: Publisher is the name of the organization
   311                                that created the image
   312                              minLength: 1
   313                              type: string
   314                            sku:
   315                              description: |-
   316                                SKU specifies an instance of an offer, such as a major release of a distribution.
   317                                For example, 18.04-LTS, 2019-Datacenter
   318                              minLength: 1
   319                              type: string
   320                          required:
   321                          - offer
   322                          - publisher
   323                          - sku
   324                          type: object
   325                        resourceGroup:
   326                          description: ResourceGroup specifies the resource group containing
   327                            the private compute gallery.
   328                          type: string
   329                        subscriptionID:
   330                          description: SubscriptionID is the identifier of the subscription
   331                            that contains the private compute gallery.
   332                          type: string
   333                        version:
   334                          description: |-
   335                            Version specifies the version of the marketplace image. The allowed formats
   336                            are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers.
   337                            Specify 'latest' to use the latest version of an image available at deploy time.
   338                            Even if you use 'latest', the VM image will not automatically update after deploy
   339                            time even if a new version becomes available.
   340                          minLength: 1
   341                          type: string
   342                      required:
   343                      - gallery
   344                      - name
   345                      - version
   346                      type: object
   347                    id:
   348                      description: ID specifies an image to use by ID
   349                      type: string
   350                    marketplace:
   351                      description: Marketplace specifies an image to use from the Azure
   352                        Marketplace
   353                      properties:
   354                        offer:
   355                          description: |-
   356                            Offer specifies the name of a group of related images created by the publisher.
   357                            For example, UbuntuServer, WindowsServer
   358                          minLength: 1
   359                          type: string
   360                        publisher:
   361                          description: Publisher is the name of the organization that
   362                            created the image
   363                          minLength: 1
   364                          type: string
   365                        sku:
   366                          description: |-
   367                            SKU specifies an instance of an offer, such as a major release of a distribution.
   368                            For example, 18.04-LTS, 2019-Datacenter
   369                          minLength: 1
   370                          type: string
   371                        thirdPartyImage:
   372                          default: false
   373                          description: |-
   374                            ThirdPartyImage indicates the image is published by a third party publisher and a Plan
   375                            will be generated for it.
   376                          type: boolean
   377                        version:
   378                          description: |-
   379                            Version specifies the version of an image sku. The allowed formats
   380                            are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers.
   381                            Specify 'latest' to use the latest version of an image available at deploy time.
   382                            Even if you use 'latest', the VM image will not automatically update after deploy
   383                            time even if a new version becomes available.
   384                          minLength: 1
   385                          type: string
   386                      required:
   387                      - offer
   388                      - publisher
   389                      - sku
   390                      - version
   391                      type: object
   392                    sharedGallery:
   393                      description: |-
   394                        SharedGallery specifies an image to use from an Azure Shared Image Gallery
   395                        Deprecated: use ComputeGallery instead.
   396                      properties:
   397                        gallery:
   398                          description: Gallery specifies the name of the shared image
   399                            gallery that contains the image
   400                          minLength: 1
   401                          type: string
   402                        name:
   403                          description: Name is the name of the image
   404                          minLength: 1
   405                          type: string
   406                        offer:
   407                          description: |-
   408                            Offer specifies the name of a group of related images created by the publisher.
   409                            For example, UbuntuServer, WindowsServer
   410                            This value will be used to add a `Plan` in the API request when creating the VM/VMSS resource.
   411                            This is needed when the source image from which this SIG image was built requires the `Plan` to be used.
   412                          type: string
   413                        publisher:
   414                          description: |-
   415                            Publisher is the name of the organization that created the image.
   416                            This value will be used to add a `Plan` in the API request when creating the VM/VMSS resource.
   417                            This is needed when the source image from which this SIG image was built requires the `Plan` to be used.
   418                          type: string
   419                        resourceGroup:
   420                          description: ResourceGroup specifies the resource group containing
   421                            the shared image gallery
   422                          minLength: 1
   423                          type: string
   424                        sku:
   425                          description: |-
   426                            SKU specifies an instance of an offer, such as a major release of a distribution.
   427                            For example, 18.04-LTS, 2019-Datacenter
   428                            This value will be used to add a `Plan` in the API request when creating the VM/VMSS resource.
   429                            This is needed when the source image from which this SIG image was built requires the `Plan` to be used.
   430                          type: string
   431                        subscriptionID:
   432                          description: SubscriptionID is the identifier of the subscription
   433                            that contains the shared image gallery
   434                          minLength: 1
   435                          type: string
   436                        version:
   437                          description: |-
   438                            Version specifies the version of the marketplace image. The allowed formats
   439                            are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers.
   440                            Specify 'latest' to use the latest version of an image available at deploy time.
   441                            Even if you use 'latest', the VM image will not automatically update after deploy
   442                            time even if a new version becomes available.
   443                          minLength: 1
   444                          type: string
   445                      required:
   446                      - gallery
   447                      - name
   448                      - resourceGroup
   449                      - subscriptionID
   450                      - version
   451                      type: object
   452                  type: object
   453                networkInterfaces:
   454                  description: |-
   455                    NetworkInterfaces specifies a list of network interface configurations.
   456                    If left unspecified, the VM will get a single network interface with a
   457                    single IPConfig in the subnet specified in the cluster's node subnet field.
   458                    The primary interface will be the first networkInterface specified (index 0) in the list.
   459                  items:
   460                    description: NetworkInterface defines a network interface.
   461                    properties:
   462                      acceleratedNetworking:
   463                        description: |-
   464                          AcceleratedNetworking enables or disables Azure accelerated networking. If omitted, it will be set based on
   465                          whether the requested VMSize supports accelerated networking.
   466                          If AcceleratedNetworking is set to true with a VMSize that does not support it, Azure will return an error.
   467                        type: boolean
   468                      privateIPConfigs:
   469                        description: |-
   470                          PrivateIPConfigs specifies the number of private IP addresses to attach to the interface.
   471                          Defaults to 1 if not specified.
   472                        type: integer
   473                      subnetName:
   474                        description: SubnetName specifies the subnet in which the new
   475                          network interface will be placed.
   476                        type: string
   477                    type: object
   478                  type: array
   479                osDisk:
   480                  description: OSDisk specifies the parameters for the operating system
   481                    disk of the machine
   482                  properties:
   483                    cachingType:
   484                      description: CachingType specifies the caching requirements.
   485                      enum:
   486                      - None
   487                      - ReadOnly
   488                      - ReadWrite
   489                      type: string
   490                    diffDiskSettings:
   491                      description: DiffDiskSettings describe ephemeral disk settings
   492                        for the os disk.
   493                      properties:
   494                        option:
   495                          description: |-
   496                            Option enables ephemeral OS when set to "Local"
   497                            See https://learn.microsoft.com/azure/virtual-machines/ephemeral-os-disks for full details
   498                          enum:
   499                          - Local
   500                          type: string
   501                        placement:
   502                          description: Placement specifies the ephemeral disk placement
   503                            for operating system disk. If placement is specified, Option
   504                            must be set to "Local".
   505                          enum:
   506                          - CacheDisk
   507                          - NvmeDisk
   508                          - ResourceDisk
   509                          type: string
   510                      required:
   511                      - option
   512                      type: object
   513                    diskSizeGB:
   514                      description: |-
   515                        DiskSizeGB is the size in GB to assign to the OS disk.
   516                        Will have a default of 30GB if not provided
   517                      format: int32
   518                      type: integer
   519                    managedDisk:
   520                      description: ManagedDisk specifies the Managed Disk parameters
   521                        for the OS disk.
   522                      properties:
   523                        diskEncryptionSet:
   524                          description: DiskEncryptionSet specifies the customer-managed
   525                            disk encryption set resource id for the managed disk.
   526                          properties:
   527                            id:
   528                              description: ID defines resourceID for diskEncryptionSet
   529                                resource. It must be in the same subscription
   530                              type: string
   531                          type: object
   532                        securityProfile:
   533                          description: SecurityProfile specifies the security profile
   534                            for the managed disk.
   535                          properties:
   536                            diskEncryptionSet:
   537                              description: |-
   538                                DiskEncryptionSet specifies the customer-managed disk encryption set resource id for the
   539                                managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and
   540                                VMGuest blob.
   541                              properties:
   542                                id:
   543                                  description: ID defines resourceID for diskEncryptionSet
   544                                    resource. It must be in the same subscription
   545                                  type: string
   546                              type: object
   547                            securityEncryptionType:
   548                              description: |-
   549                                SecurityEncryptionType specifies the encryption type of the managed disk.
   550                                It is set to DiskWithVMGuestState to encrypt the managed disk along with the VMGuestState
   551                                blob, and to VMGuestStateOnly to encrypt the VMGuestState blob only.
   552                                When set to VMGuestStateOnly, VirtualizedTrustedPlatformModule should be set to Enabled.
   553                                When set to DiskWithVMGuestState, EncryptionAtHost should be disabled, SecureBoot and
   554                                VirtualizedTrustedPlatformModule should be set to Enabled.
   555                                It can be set only for Confidential VMs.
   556                              enum:
   557                              - VMGuestStateOnly
   558                              - DiskWithVMGuestState
   559                              type: string
   560                          type: object
   561                        storageAccountType:
   562                          type: string
   563                      type: object
   564                    osType:
   565                      type: string
   566                  required:
   567                  - osType
   568                  type: object
   569                providerID:
   570                  description: ProviderID is the unique identifier as specified by the
   571                    cloud provider.
   572                  type: string
   573                roleAssignmentName:
   574                  description: 'Deprecated: RoleAssignmentName should be set in the
   575                    systemAssignedIdentityRole field.'
   576                  type: string
   577                securityProfile:
   578                  description: SecurityProfile specifies the Security profile settings
   579                    for a virtual machine.
   580                  properties:
   581                    encryptionAtHost:
   582                      description: |-
   583                        This field indicates whether Host Encryption should be enabled
   584                        or disabled for a virtual machine or virtual machine scale set.
   585                        This should be disabled when SecurityEncryptionType is set to DiskWithVMGuestState.
   586                        Default is disabled.
   587                      type: boolean
   588                    securityType:
   589                      description: |-
   590                        SecurityType specifies the SecurityType of the virtual machine. It has to be set to any specified value to
   591                        enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
   592                      enum:
   593                      - ConfidentialVM
   594                      - TrustedLaunch
   595                      type: string
   596                    uefiSettings:
   597                      description: UefiSettings specifies the security settings like
   598                        secure boot and vTPM used while creating the virtual machine.
   599                      properties:
   600                        secureBootEnabled:
   601                          description: |-
   602                            SecureBootEnabled specifies whether secure boot should be enabled on the virtual machine.
   603                            Secure Boot verifies the digital signature of all boot components and halts the boot process if signature verification fails.
   604                            If omitted, the platform chooses a default, which is subject to change over time, currently that default is false.
   605                          type: boolean
   606                        vTpmEnabled:
   607                          description: |-
   608                            VTpmEnabled specifies whether vTPM should be enabled on the virtual machine.
   609                            When true it enables the virtualized trusted platform module measurements to create a known good boot integrity policy baseline.
   610                            The integrity policy baseline is used for comparison with measurements from subsequent VM boots to determine if anything has changed.
   611                            This is required to be set to Enabled if SecurityEncryptionType is defined.
   612                            If omitted, the platform chooses a default, which is subject to change over time, currently that default is false.
   613                          type: boolean
   614                      type: object
   615                  type: object
   616                spotVMOptions:
   617                  description: SpotVMOptions allows the ability to specify the Machine
   618                    should use a Spot VM
   619                  properties:
   620                    evictionPolicy:
   621                      description: EvictionPolicy defines the behavior of the virtual
   622                        machine when it is evicted. It can be either Delete or Deallocate.
   623                      enum:
   624                      - Deallocate
   625                      - Delete
   626                      type: string
   627                    maxPrice:
   628                      anyOf:
   629                      - type: integer
   630                      - type: string
   631                      description: MaxPrice defines the maximum price the user is willing
   632                        to pay for Spot VM instances
   633                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   634                      x-kubernetes-int-or-string: true
   635                  type: object
   636                sshPublicKey:
   637                  description: |-
   638                    SSHPublicKey is the SSH public key string, base64-encoded to add to a Virtual Machine. Linux only.
   639                    Refer to documentation on how to set up SSH access on Windows instances.
   640                  type: string
   641                subnetName:
   642                  description: 'Deprecated: SubnetName should be set in the networkInterfaces
   643                    field.'
   644                  type: string
   645                systemAssignedIdentityRole:
   646                  description: SystemAssignedIdentityRole defines the role and scope
   647                    to assign to the system-assigned identity.
   648                  properties:
   649                    definitionID:
   650                      description: |-
   651                        DefinitionID is the ID of the role definition to create for a system assigned identity. It can be an Azure built-in role or a custom role.
   652                        Refer to built-in roles: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles
   653                      type: string
   654                    name:
   655                      description: |-
   656                        Name is the name of the role assignment to create for a system assigned identity. It can be any valid UUID.
   657                        If not specified, a random UUID will be generated.
   658                      type: string
   659                    scope:
   660                      description: |-
   661                        Scope is the scope that the role assignment or definition applies to. The scope can be any REST resource instance.
   662                        If not specified, the scope will be the subscription.
   663                      type: string
   664                  type: object
   665                userAssignedIdentities:
   666                  description: |-
   667                    UserAssignedIdentities is a list of standalone Azure identities provided by the user
   668                    The lifecycle of a user-assigned identity is managed separately from the lifecycle of
   669                    the AzureMachine.
   670                    See https://learn.microsoft.com/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli
   671                  items:
   672                    description: |-
   673                      UserAssignedIdentity defines the user-assigned identities provided
   674                      by the user to be assigned to Azure resources.
   675                    properties:
   676                      providerID:
   677                        description: |-
   678                          ProviderID is the identification ID of the user-assigned Identity, the format of an identity is:
   679                          'azure:///subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'
   680                        type: string
   681                    required:
   682                    - providerID
   683                    type: object
   684                  type: array
   685                vmExtensions:
   686                  description: VMExtensions specifies a list of extensions to be added
   687                    to the virtual machine.
   688                  items:
   689                    description: VMExtension specifies the parameters for a custom VM
   690                      extension.
   691                    properties:
   692                      name:
   693                        description: Name is the name of the extension.
   694                        type: string
   695                      protectedSettings:
   696                        additionalProperties:
   697                          type: string
   698                        description: ProtectedSettings is a JSON formatted protected
   699                          settings for the extension.
   700                        type: object
   701                      publisher:
   702                        description: Publisher is the name of the extension handler
   703                          publisher.
   704                        type: string
   705                      settings:
   706                        additionalProperties:
   707                          type: string
   708                        description: Settings is a JSON formatted public settings for
   709                          the extension.
   710                        type: object
   711                      version:
   712                        description: Version specifies the version of the script handler.
   713                        type: string
   714                    required:
   715                    - name
   716                    - publisher
   717                    - version
   718                    type: object
   719                  type: array
   720                vmSize:
   721                  type: string
   722              required:
   723              - osDisk
   724              - vmSize
   725              type: object
   726            status:
   727              description: AzureMachineStatus defines the observed state of AzureMachine.
   728              properties:
   729                addresses:
   730                  description: Addresses contains the Azure instance associated addresses.
   731                  items:
   732                    description: NodeAddress contains information for the node's address.
   733                    properties:
   734                      address:
   735                        description: The node address.
   736                        type: string
   737                      type:
   738                        description: Node address type, one of Hostname, ExternalIP
   739                          or InternalIP.
   740                        type: string
   741                    required:
   742                    - address
   743                    - type
   744                    type: object
   745                  type: array
   746                conditions:
   747                  description: Conditions defines current service state of the AzureMachine.
   748                  items:
   749                    description: Condition defines an observation of a Cluster API resource
   750                      operational state.
   751                    properties:
   752                      lastTransitionTime:
   753                        description: |-
   754                          Last time the condition transitioned from one status to another.
   755                          This should be when the underlying condition changed. If that is not known, then using the time when
   756                          the API field changed is acceptable.
   757                        format: date-time
   758                        type: string
   759                      message:
   760                        description: |-
   761                          A human readable message indicating details about the transition.
   762                          This field may be empty.
   763                        type: string
   764                      reason:
   765                        description: |-
   766                          The reason for the condition's last transition in CamelCase.
   767                          The specific API may choose whether or not this field is considered a guaranteed API.
   768                          This field may not be empty.
   769                        type: string
   770                      severity:
   771                        description: |-
   772                          Severity provides an explicit classification of Reason code, so the users or machines can immediately
   773                          understand the current situation and act accordingly.
   774                          The Severity field MUST be set only when Status=False.
   775                        type: string
   776                      status:
   777                        description: Status of the condition, one of True, False, Unknown.
   778                        type: string
   779                      type:
   780                        description: |-
   781                          Type of condition in CamelCase or in foo.example.com/CamelCase.
   782                          Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
   783                          can be useful (see .node.status.conditions), the ability to deconflict is important.
   784                        type: string
   785                    required:
   786                    - lastTransitionTime
   787                    - status
   788                    - type
   789                    type: object
   790                  type: array
   791                failureMessage:
   792                  description: |-
   793                    ErrorMessage will be set in the event that there is a terminal problem
   794                    reconciling the Machine and will contain a more verbose string suitable
   795                    for logging and human consumption.
   796  
   797  
   798                    This field should not be set for transitive errors that a controller
   799                    faces that are expected to be fixed automatically over
   800                    time (like service outages), but instead indicate that something is
   801                    fundamentally wrong with the Machine's spec or the configuration of
   802                    the controller, and that manual intervention is required. Examples
   803                    of terminal errors would be invalid combinations of settings in the
   804                    spec, values that are unsupported by the controller, or the
   805                    responsible controller itself being critically misconfigured.
   806  
   807  
   808                    Any transient errors that occur during the reconciliation of Machines
   809                    can be added as events to the Machine object and/or logged in the
   810                    controller's output.
   811                  type: string
   812                failureReason:
   813                  description: |-
   814                    ErrorReason will be set in the event that there is a terminal problem
   815                    reconciling the Machine and will contain a succinct value suitable
   816                    for machine interpretation.
   817  
   818  
   819                    This field should not be set for transitive errors that a controller
   820                    faces that are expected to be fixed automatically over
   821                    time (like service outages), but instead indicate that something is
   822                    fundamentally wrong with the Machine's spec or the configuration of
   823                    the controller, and that manual intervention is required. Examples
   824                    of terminal errors would be invalid combinations of settings in the
   825                    spec, values that are unsupported by the controller, or the
   826                    responsible controller itself being critically misconfigured.
   827  
   828  
   829                    Any transient errors that occur during the reconciliation of Machines
   830                    can be added as events to the Machine object and/or logged in the
   831                    controller's output.
   832                  type: string
   833                longRunningOperationStates:
   834                  description: |-
   835                    LongRunningOperationStates saves the states for Azure long-running operations so they can be continued on the
   836                    next reconciliation loop.
   837                  items:
   838                    description: Future contains the data needed for an Azure long-running
   839                      operation to continue across reconcile loops.
   840                    properties:
   841                      data:
   842                        description: Data is the base64 url encoded json Azure AutoRest
   843                          Future.
   844                        type: string
   845                      name:
   846                        description: |-
   847                          Name is the name of the Azure resource.
   848                          Together with the service name, this forms the unique identifier for the future.
   849                        type: string
   850                      resourceGroup:
   851                        description: ResourceGroup is the Azure resource group for the
   852                          resource.
   853                        type: string
   854                      serviceName:
   855                        description: |-
   856                          ServiceName is the name of the Azure service.
   857                          Together with the name of the resource, this forms the unique identifier for the future.
   858                        type: string
   859                      type:
   860                        description: Type describes the type of future, such as update,
   861                          create, delete, etc.
   862                        type: string
   863                    required:
   864                    - data
   865                    - name
   866                    - serviceName
   867                    - type
   868                    type: object
   869                  type: array
   870                ready:
   871                  description: Ready is true when the provider resource is ready.
   872                  type: boolean
   873                vmState:
   874                  description: VMState is the provisioning state of the Azure virtual
   875                    machine.
   876                  type: string
   877              type: object
   878          type: object
   879      served: true
   880      storage: true
   881      subresources:
   882        status: {}