sigs.k8s.io/cluster-api-provider-azure@v1.17.0/config/crd/bases/infrastructure.cluster.x-k8s.io_azuremachinetemplates.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: azuremachinetemplates.infrastructure.cluster.x-k8s.io 8 spec: 9 group: infrastructure.cluster.x-k8s.io 10 names: 11 categories: 12 - cluster-api 13 kind: AzureMachineTemplate 14 listKind: AzureMachineTemplateList 15 plural: azuremachinetemplates 16 singular: azuremachinetemplate 17 scope: Namespaced 18 versions: 19 - name: v1beta1 20 schema: 21 openAPIV3Schema: 22 description: AzureMachineTemplate is the Schema for the azuremachinetemplates 23 API. 24 properties: 25 apiVersion: 26 description: |- 27 APIVersion defines the versioned schema of this representation of an object. 28 Servers should convert recognized schemas to the latest internal value, and 29 may reject unrecognized values. 30 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 31 type: string 32 kind: 33 description: |- 34 Kind is a string value representing the REST resource this object represents. 35 Servers may infer this from the endpoint the client submits requests to. 36 Cannot be updated. 37 In CamelCase. 38 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 39 type: string 40 metadata: 41 type: object 42 spec: 43 description: AzureMachineTemplateSpec defines the desired state of AzureMachineTemplate. 44 properties: 45 template: 46 description: AzureMachineTemplateResource describes the data needed 47 to create an AzureMachine from a template. 48 properties: 49 metadata: 50 description: |- 51 ObjectMeta is metadata that all persisted resources must have, which includes all objects 52 users must create. This is a copy of customizable fields from metav1.ObjectMeta. 53 54 55 ObjectMeta is embedded in `Machine.Spec`, `MachineDeployment.Template` and `MachineSet.Template`, 56 which are not top-level Kubernetes objects. Given that metav1.ObjectMeta has lots of special cases 57 and read-only fields which end up in the generated CRD validation, having it as a subset simplifies 58 the API and some issues that can impact user experience. 59 60 61 During the [upgrade to controller-tools@v2](https://github.com/kubernetes-sigs/cluster-api/pull/1054) 62 for v1alpha2, we noticed a failure would occur running Cluster API test suite against the new CRDs, 63 specifically `spec.metadata.creationTimestamp in body must be of type string: "null"`. 64 The investigation showed that `controller-tools@v2` behaves differently than its previous version 65 when handling types from [metav1](k8s.io/apimachinery/pkg/apis/meta/v1) package. 66 67 68 In more details, we found that embedded (non-top level) types that embedded `metav1.ObjectMeta` 69 had validation properties, including for `creationTimestamp` (metav1.Time). 70 The `metav1.Time` type specifies a custom json marshaller that, when IsZero() is true, returns `null` 71 which breaks validation because the field isn't marked as nullable. 72 73 74 In future versions, controller-tools@v2 might allow overriding the type and validation for embedded 75 types. When that happens, this hack should be revisited. 76 properties: 77 annotations: 78 additionalProperties: 79 type: string 80 description: |- 81 Annotations is an unstructured key value map stored with a resource that may be 82 set by external tools to store and retrieve arbitrary metadata. They are not 83 queryable and should be preserved when modifying objects. 84 More info: http://kubernetes.io/docs/user-guide/annotations 85 type: object 86 labels: 87 additionalProperties: 88 type: string 89 description: |- 90 Map of string keys and values that can be used to organize and categorize 91 (scope and select) objects. May match selectors of replication controllers 92 and services. 93 More info: http://kubernetes.io/docs/user-guide/labels 94 type: object 95 type: object 96 spec: 97 description: Spec is the specification of the desired behavior 98 of the machine. 99 properties: 100 acceleratedNetworking: 101 description: 'Deprecated: AcceleratedNetworking should be 102 set in the networkInterfaces field.' 103 type: boolean 104 additionalCapabilities: 105 description: AdditionalCapabilities specifies additional capabilities 106 enabled or disabled on the virtual machine. 107 properties: 108 ultraSSDEnabled: 109 description: |- 110 UltraSSDEnabled enables or disables Azure UltraSSD capability for the virtual machine. 111 Defaults to true if Ultra SSD data disks are specified, 112 otherwise it doesn't set the capability on the VM. 113 type: boolean 114 type: object 115 additionalTags: 116 additionalProperties: 117 type: string 118 description: |- 119 AdditionalTags is an optional set of tags to add to an instance, in addition to the ones added by default by the 120 Azure provider. If both the AzureCluster and the AzureMachine specify the same tag name with different values, the 121 AzureMachine's value takes precedence. 122 type: object 123 allocatePublicIP: 124 description: AllocatePublicIP allows the ability to create 125 dynamic public ips for machines where this value is true. 126 type: boolean 127 capacityReservationGroupID: 128 description: |- 129 CapacityReservationGroupID specifies the capacity reservation group resource id that should be 130 used for allocating the virtual machine. 131 The field size should be greater than 0 and the field input must start with '/'. 132 The input for capacityReservationGroupID must be similar to '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}'. 133 The keys which are used should be among 'subscriptions', 'providers' and 'resourcegroups' followed by valid ID or names respectively. 134 It is optional but may not be changed once set. 135 type: string 136 dataDisks: 137 description: DataDisk specifies the parameters that are used 138 to add one or more data disks to the machine 139 items: 140 description: DataDisk specifies the parameters that are 141 used to add one or more data disks to the machine. 142 properties: 143 cachingType: 144 description: CachingType specifies the caching requirements. 145 enum: 146 - None 147 - ReadOnly 148 - ReadWrite 149 type: string 150 diskSizeGB: 151 description: DiskSizeGB is the size in GB to assign 152 to the data disk. 153 format: int32 154 type: integer 155 lun: 156 description: |- 157 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. 158 The value must be between 0 and 63. 159 format: int32 160 type: integer 161 managedDisk: 162 description: ManagedDisk specifies the Managed Disk 163 parameters for the data disk. 164 properties: 165 diskEncryptionSet: 166 description: DiskEncryptionSet specifies the customer-managed 167 disk encryption set resource id for the managed 168 disk. 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 securityProfile: 176 description: SecurityProfile specifies the security 177 profile for the managed disk. 178 properties: 179 diskEncryptionSet: 180 description: |- 181 DiskEncryptionSet specifies the customer-managed disk encryption set resource id for the 182 managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and 183 VMGuest blob. 184 properties: 185 id: 186 description: ID defines resourceID for diskEncryptionSet 187 resource. It must be in the same subscription 188 type: string 189 type: object 190 securityEncryptionType: 191 description: |- 192 SecurityEncryptionType specifies the encryption type of the managed disk. 193 It is set to DiskWithVMGuestState to encrypt the managed disk along with the VMGuestState 194 blob, and to VMGuestStateOnly to encrypt the VMGuestState blob only. 195 When set to VMGuestStateOnly, VirtualizedTrustedPlatformModule should be set to Enabled. 196 When set to DiskWithVMGuestState, EncryptionAtHost should be disabled, SecureBoot and 197 VirtualizedTrustedPlatformModule should be set to Enabled. 198 It can be set only for Confidential VMs. 199 enum: 200 - VMGuestStateOnly 201 - DiskWithVMGuestState 202 type: string 203 type: object 204 storageAccountType: 205 type: string 206 type: object 207 nameSuffix: 208 description: |- 209 NameSuffix is the suffix to be appended to the machine name to generate the disk name. 210 Each disk name will be in format <machineName>_<nameSuffix>. 211 type: string 212 required: 213 - diskSizeGB 214 - nameSuffix 215 type: object 216 type: array 217 diagnostics: 218 description: |- 219 Diagnostics specifies the diagnostics settings for a virtual machine. 220 If not specified then Boot diagnostics (Managed) will be enabled. 221 properties: 222 boot: 223 description: |- 224 Boot configures the boot diagnostics settings for the virtual machine. 225 This allows to configure capturing serial output from the virtual machine on boot. 226 This is useful for debugging software based launch issues. 227 If not specified then Boot diagnostics (Managed) will be enabled. 228 properties: 229 storageAccountType: 230 description: |- 231 StorageAccountType determines if the storage account for storing the diagnostics data 232 should be disabled (Disabled), provisioned by Azure (Managed) or by the user (UserManaged). 233 enum: 234 - Managed 235 - UserManaged 236 - Disabled 237 type: string 238 userManaged: 239 description: UserManaged provides a reference to the 240 user-managed storage account. 241 properties: 242 storageAccountURI: 243 description: |- 244 StorageAccountURI is the URI of the user-managed storage account. 245 The URI typically will be `https://<mystorageaccountname>.blob.core.windows.net/` 246 but may differ if you are using Azure DNS zone endpoints. 247 You can find the correct endpoint by looking for the Blob Primary Endpoint in the 248 endpoints tab in the Azure console or with the CLI by issuing 249 `az storage account list --query='[].{name: name, "resource group": resourceGroup, "blob endpoint": primaryEndpoints.blob}'`. 250 maxLength: 1024 251 pattern: ^https:// 252 type: string 253 required: 254 - storageAccountURI 255 type: object 256 required: 257 - storageAccountType 258 type: object 259 type: object 260 disableExtensionOperations: 261 description: |- 262 DisableExtensionOperations specifies whether extension operations should be disabled on the virtual machine. 263 Use this setting only if VMExtensions are not supported by your image, as it disables CAPZ bootstrapping extension used for detecting Kubernetes bootstrap failure. 264 This may only be set to True when no extensions are configured on the virtual machine. 265 type: boolean 266 dnsServers: 267 description: DNSServers adds a list of DNS Server IP addresses 268 to the VM NICs. 269 items: 270 type: string 271 type: array 272 enableIPForwarding: 273 description: |- 274 EnableIPForwarding enables IP Forwarding in Azure which is required for some CNI's to send traffic from a pods on one machine 275 to another. This is required for IpV6 with Calico in combination with User Defined Routes (set by the Azure Cloud Controller 276 manager). Default is false for disabled. 277 type: boolean 278 failureDomain: 279 description: |- 280 FailureDomain is the failure domain unique identifier this Machine should be attached to, 281 as defined in Cluster API. This relates to an Azure Availability Zone 282 type: string 283 identity: 284 default: None 285 description: |- 286 Identity is the type of identity used for the virtual machine. 287 The type 'SystemAssigned' is an implicitly created identity. 288 The generated identity will be assigned a Subscription contributor role. 289 The type 'UserAssigned' is a standalone Azure resource provided by the user 290 and assigned to the VM 291 enum: 292 - None 293 - SystemAssigned 294 - UserAssigned 295 type: string 296 image: 297 description: |- 298 Image is used to provide details of an image to use during VM creation. 299 If image details are omitted the image will default the Azure Marketplace "capi" offer, 300 which is based on Ubuntu. 301 properties: 302 computeGallery: 303 description: ComputeGallery specifies an image to use 304 from the Azure Compute Gallery 305 properties: 306 gallery: 307 description: Gallery specifies the name of the compute 308 image gallery that contains the image 309 minLength: 1 310 type: string 311 name: 312 description: Name is the name of the image 313 minLength: 1 314 type: string 315 plan: 316 description: Plan contains plan information. 317 properties: 318 offer: 319 description: |- 320 Offer specifies the name of a group of related images created by the publisher. 321 For example, UbuntuServer, WindowsServer 322 minLength: 1 323 type: string 324 publisher: 325 description: Publisher is the name of the organization 326 that created the image 327 minLength: 1 328 type: string 329 sku: 330 description: |- 331 SKU specifies an instance of an offer, such as a major release of a distribution. 332 For example, 18.04-LTS, 2019-Datacenter 333 minLength: 1 334 type: string 335 required: 336 - offer 337 - publisher 338 - sku 339 type: object 340 resourceGroup: 341 description: ResourceGroup specifies the resource 342 group containing the private compute gallery. 343 type: string 344 subscriptionID: 345 description: SubscriptionID is the identifier of the 346 subscription that contains the private compute gallery. 347 type: string 348 version: 349 description: |- 350 Version specifies the version of the marketplace image. The allowed formats 351 are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. 352 Specify 'latest' to use the latest version of an image available at deploy time. 353 Even if you use 'latest', the VM image will not automatically update after deploy 354 time even if a new version becomes available. 355 minLength: 1 356 type: string 357 required: 358 - gallery 359 - name 360 - version 361 type: object 362 id: 363 description: ID specifies an image to use by ID 364 type: string 365 marketplace: 366 description: Marketplace specifies an image to use from 367 the Azure Marketplace 368 properties: 369 offer: 370 description: |- 371 Offer specifies the name of a group of related images created by the publisher. 372 For example, UbuntuServer, WindowsServer 373 minLength: 1 374 type: string 375 publisher: 376 description: Publisher is the name of the organization 377 that created the image 378 minLength: 1 379 type: string 380 sku: 381 description: |- 382 SKU specifies an instance of an offer, such as a major release of a distribution. 383 For example, 18.04-LTS, 2019-Datacenter 384 minLength: 1 385 type: string 386 thirdPartyImage: 387 default: false 388 description: |- 389 ThirdPartyImage indicates the image is published by a third party publisher and a Plan 390 will be generated for it. 391 type: boolean 392 version: 393 description: |- 394 Version specifies the version of an image sku. The allowed formats 395 are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. 396 Specify 'latest' to use the latest version of an image available at deploy time. 397 Even if you use 'latest', the VM image will not automatically update after deploy 398 time even if a new version becomes available. 399 minLength: 1 400 type: string 401 required: 402 - offer 403 - publisher 404 - sku 405 - version 406 type: object 407 sharedGallery: 408 description: |- 409 SharedGallery specifies an image to use from an Azure Shared Image Gallery 410 Deprecated: use ComputeGallery instead. 411 properties: 412 gallery: 413 description: Gallery specifies the name of the shared 414 image gallery that contains the image 415 minLength: 1 416 type: string 417 name: 418 description: Name is the name of the image 419 minLength: 1 420 type: string 421 offer: 422 description: |- 423 Offer specifies the name of a group of related images created by the publisher. 424 For example, UbuntuServer, WindowsServer 425 This value will be used to add a `Plan` in the API request when creating the VM/VMSS resource. 426 This is needed when the source image from which this SIG image was built requires the `Plan` to be used. 427 type: string 428 publisher: 429 description: |- 430 Publisher is the name of the organization that created the image. 431 This value will be used to add a `Plan` in the API request when creating the VM/VMSS resource. 432 This is needed when the source image from which this SIG image was built requires the `Plan` to be used. 433 type: string 434 resourceGroup: 435 description: ResourceGroup specifies the resource 436 group containing the shared image gallery 437 minLength: 1 438 type: string 439 sku: 440 description: |- 441 SKU specifies an instance of an offer, such as a major release of a distribution. 442 For example, 18.04-LTS, 2019-Datacenter 443 This value will be used to add a `Plan` in the API request when creating the VM/VMSS resource. 444 This is needed when the source image from which this SIG image was built requires the `Plan` to be used. 445 type: string 446 subscriptionID: 447 description: SubscriptionID is the identifier of the 448 subscription that contains the shared image gallery 449 minLength: 1 450 type: string 451 version: 452 description: |- 453 Version specifies the version of the marketplace image. The allowed formats 454 are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. 455 Specify 'latest' to use the latest version of an image available at deploy time. 456 Even if you use 'latest', the VM image will not automatically update after deploy 457 time even if a new version becomes available. 458 minLength: 1 459 type: string 460 required: 461 - gallery 462 - name 463 - resourceGroup 464 - subscriptionID 465 - version 466 type: object 467 type: object 468 networkInterfaces: 469 description: |- 470 NetworkInterfaces specifies a list of network interface configurations. 471 If left unspecified, the VM will get a single network interface with a 472 single IPConfig in the subnet specified in the cluster's node subnet field. 473 The primary interface will be the first networkInterface specified (index 0) in the list. 474 items: 475 description: NetworkInterface defines a network interface. 476 properties: 477 acceleratedNetworking: 478 description: |- 479 AcceleratedNetworking enables or disables Azure accelerated networking. If omitted, it will be set based on 480 whether the requested VMSize supports accelerated networking. 481 If AcceleratedNetworking is set to true with a VMSize that does not support it, Azure will return an error. 482 type: boolean 483 privateIPConfigs: 484 description: |- 485 PrivateIPConfigs specifies the number of private IP addresses to attach to the interface. 486 Defaults to 1 if not specified. 487 type: integer 488 subnetName: 489 description: SubnetName specifies the subnet in which 490 the new network interface will be placed. 491 type: string 492 type: object 493 type: array 494 osDisk: 495 description: OSDisk specifies the parameters for the operating 496 system disk of the machine 497 properties: 498 cachingType: 499 description: CachingType specifies the caching requirements. 500 enum: 501 - None 502 - ReadOnly 503 - ReadWrite 504 type: string 505 diffDiskSettings: 506 description: DiffDiskSettings describe ephemeral disk 507 settings for the os disk. 508 properties: 509 option: 510 description: |- 511 Option enables ephemeral OS when set to "Local" 512 See https://learn.microsoft.com/azure/virtual-machines/ephemeral-os-disks for full details 513 enum: 514 - Local 515 type: string 516 placement: 517 description: Placement specifies the ephemeral disk 518 placement for operating system disk. If placement 519 is specified, Option must be set to "Local". 520 enum: 521 - CacheDisk 522 - NvmeDisk 523 - ResourceDisk 524 type: string 525 required: 526 - option 527 type: object 528 diskSizeGB: 529 description: |- 530 DiskSizeGB is the size in GB to assign to the OS disk. 531 Will have a default of 30GB if not provided 532 format: int32 533 type: integer 534 managedDisk: 535 description: ManagedDisk specifies the Managed Disk parameters 536 for the OS disk. 537 properties: 538 diskEncryptionSet: 539 description: DiskEncryptionSet specifies the customer-managed 540 disk encryption set resource id for the managed 541 disk. 542 properties: 543 id: 544 description: ID defines resourceID for diskEncryptionSet 545 resource. It must be in the same subscription 546 type: string 547 type: object 548 securityProfile: 549 description: SecurityProfile specifies the security 550 profile for the managed disk. 551 properties: 552 diskEncryptionSet: 553 description: |- 554 DiskEncryptionSet specifies the customer-managed disk encryption set resource id for the 555 managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and 556 VMGuest blob. 557 properties: 558 id: 559 description: ID defines resourceID for diskEncryptionSet 560 resource. It must be in the same subscription 561 type: string 562 type: object 563 securityEncryptionType: 564 description: |- 565 SecurityEncryptionType specifies the encryption type of the managed disk. 566 It is set to DiskWithVMGuestState to encrypt the managed disk along with the VMGuestState 567 blob, and to VMGuestStateOnly to encrypt the VMGuestState blob only. 568 When set to VMGuestStateOnly, VirtualizedTrustedPlatformModule should be set to Enabled. 569 When set to DiskWithVMGuestState, EncryptionAtHost should be disabled, SecureBoot and 570 VirtualizedTrustedPlatformModule should be set to Enabled. 571 It can be set only for Confidential VMs. 572 enum: 573 - VMGuestStateOnly 574 - DiskWithVMGuestState 575 type: string 576 type: object 577 storageAccountType: 578 type: string 579 type: object 580 osType: 581 type: string 582 required: 583 - osType 584 type: object 585 providerID: 586 description: ProviderID is the unique identifier as specified 587 by the cloud provider. 588 type: string 589 roleAssignmentName: 590 description: 'Deprecated: RoleAssignmentName should be set 591 in the systemAssignedIdentityRole field.' 592 type: string 593 securityProfile: 594 description: SecurityProfile specifies the Security profile 595 settings for a virtual machine. 596 properties: 597 encryptionAtHost: 598 description: |- 599 This field indicates whether Host Encryption should be enabled 600 or disabled for a virtual machine or virtual machine scale set. 601 This should be disabled when SecurityEncryptionType is set to DiskWithVMGuestState. 602 Default is disabled. 603 type: boolean 604 securityType: 605 description: |- 606 SecurityType specifies the SecurityType of the virtual machine. It has to be set to any specified value to 607 enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. 608 enum: 609 - ConfidentialVM 610 - TrustedLaunch 611 type: string 612 uefiSettings: 613 description: UefiSettings specifies the security settings 614 like secure boot and vTPM used while creating the virtual 615 machine. 616 properties: 617 secureBootEnabled: 618 description: |- 619 SecureBootEnabled specifies whether secure boot should be enabled on the virtual machine. 620 Secure Boot verifies the digital signature of all boot components and halts the boot process if signature verification fails. 621 If omitted, the platform chooses a default, which is subject to change over time, currently that default is false. 622 type: boolean 623 vTpmEnabled: 624 description: |- 625 VTpmEnabled specifies whether vTPM should be enabled on the virtual machine. 626 When true it enables the virtualized trusted platform module measurements to create a known good boot integrity policy baseline. 627 The integrity policy baseline is used for comparison with measurements from subsequent VM boots to determine if anything has changed. 628 This is required to be set to Enabled if SecurityEncryptionType is defined. 629 If omitted, the platform chooses a default, which is subject to change over time, currently that default is false. 630 type: boolean 631 type: object 632 type: object 633 spotVMOptions: 634 description: SpotVMOptions allows the ability to specify the 635 Machine should use a Spot VM 636 properties: 637 evictionPolicy: 638 description: EvictionPolicy defines the behavior of the 639 virtual machine when it is evicted. It can be either 640 Delete or Deallocate. 641 enum: 642 - Deallocate 643 - Delete 644 type: string 645 maxPrice: 646 anyOf: 647 - type: integer 648 - type: string 649 description: MaxPrice defines the maximum price the user 650 is willing to pay for Spot VM instances 651 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 652 x-kubernetes-int-or-string: true 653 type: object 654 sshPublicKey: 655 description: |- 656 SSHPublicKey is the SSH public key string, base64-encoded to add to a Virtual Machine. Linux only. 657 Refer to documentation on how to set up SSH access on Windows instances. 658 type: string 659 subnetName: 660 description: 'Deprecated: SubnetName should be set in the 661 networkInterfaces field.' 662 type: string 663 systemAssignedIdentityRole: 664 description: SystemAssignedIdentityRole defines the role and 665 scope to assign to the system-assigned identity. 666 properties: 667 definitionID: 668 description: |- 669 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. 670 Refer to built-in roles: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles 671 type: string 672 name: 673 description: |- 674 Name is the name of the role assignment to create for a system assigned identity. It can be any valid UUID. 675 If not specified, a random UUID will be generated. 676 type: string 677 scope: 678 description: |- 679 Scope is the scope that the role assignment or definition applies to. The scope can be any REST resource instance. 680 If not specified, the scope will be the subscription. 681 type: string 682 type: object 683 userAssignedIdentities: 684 description: |- 685 UserAssignedIdentities is a list of standalone Azure identities provided by the user 686 The lifecycle of a user-assigned identity is managed separately from the lifecycle of 687 the AzureMachine. 688 See https://learn.microsoft.com/azure/active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli 689 items: 690 description: |- 691 UserAssignedIdentity defines the user-assigned identities provided 692 by the user to be assigned to Azure resources. 693 properties: 694 providerID: 695 description: |- 696 ProviderID is the identification ID of the user-assigned Identity, the format of an identity is: 697 'azure:///subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}' 698 type: string 699 required: 700 - providerID 701 type: object 702 type: array 703 vmExtensions: 704 description: VMExtensions specifies a list of extensions to 705 be added to the virtual machine. 706 items: 707 description: VMExtension specifies the parameters for a 708 custom VM extension. 709 properties: 710 name: 711 description: Name is the name of the extension. 712 type: string 713 protectedSettings: 714 additionalProperties: 715 type: string 716 description: ProtectedSettings is a JSON formatted protected 717 settings for the extension. 718 type: object 719 publisher: 720 description: Publisher is the name of the extension 721 handler publisher. 722 type: string 723 settings: 724 additionalProperties: 725 type: string 726 description: Settings is a JSON formatted public settings 727 for the extension. 728 type: object 729 version: 730 description: Version specifies the version of the script 731 handler. 732 type: string 733 required: 734 - name 735 - publisher 736 - version 737 type: object 738 type: array 739 vmSize: 740 type: string 741 required: 742 - osDisk 743 - vmSize 744 type: object 745 required: 746 - spec 747 type: object 748 required: 749 - template 750 type: object 751 type: object 752 served: true 753 storage: true