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