|
5651 | 5651 | "v1CloudStackMachineConfig": { |
5652 | 5652 | "description": "CloudStack-specific machine configuration", |
5653 | 5653 | "properties": { |
5654 | | - "additionalAnnotations": { |
5655 | | - "additionalProperties": { |
5656 | | - "type": "string" |
5657 | | - }, |
5658 | | - "description": "Custom annotations for CAPI machine objects and nodes", |
5659 | | - "type": "object" |
5660 | | - }, |
5661 | 5654 | "instanceConfig": { |
5662 | 5655 | "$ref": "#/definitions/v1InstanceConfig", |
5663 | 5656 | "description": "Instance Configuration" |
|
5745 | 5738 | }, |
5746 | 5739 | "v1CloudStackMachinePoolCloudConfigEntity": { |
5747 | 5740 | "properties": { |
5748 | | - "additionalAnnotations": { |
5749 | | - "additionalProperties": { |
5750 | | - "type": "string" |
5751 | | - }, |
5752 | | - "description": "Custom annotations for CAPI machine objects and nodes", |
5753 | | - "type": "object" |
5754 | | - }, |
5755 | 5741 | "instanceConfig": { |
5756 | 5742 | "$ref": "#/definitions/v1InstanceConfig", |
5757 | 5743 | "description": "Instance Configuration" |
|
18188 | 18174 | }, |
18189 | 18175 | "v1MachinePoolBaseConfig": { |
18190 | 18176 | "properties": { |
| 18177 | + "additionalAnnotations": { |
| 18178 | + "additionalProperties": { |
| 18179 | + "type": "string" |
| 18180 | + }, |
| 18181 | + "description": "Custom annotations for CAPI machine objects and nodes.\nCurrently implemented for CloudStack only.\n", |
| 18182 | + "type": "object" |
| 18183 | + }, |
18191 | 18184 | "additionalLabels": { |
18192 | 18185 | "additionalProperties": { |
18193 | 18186 | "type": "string" |
|
18234 | 18227 | "format": "int32", |
18235 | 18228 | "type": "integer" |
18236 | 18229 | }, |
| 18230 | + "overrideKubeadmConfiguration": { |
| 18231 | + "description": "YAML config for kubeletExtraArgs, preKubeadmCommands, postKubeadmCommands.\nOverrides pack-level settings. Worker pools only.\nCurrently implemented for CloudStack only.\n", |
| 18232 | + "type": "string" |
| 18233 | + }, |
18237 | 18234 | "size": { |
18238 | 18235 | "description": "size of the pool, number of machines", |
18239 | 18236 | "format": "int32", |
|
18265 | 18262 | "v1MachinePoolConfigEntity": { |
18266 | 18263 | "description": "Machine pool configuration for the cluster", |
18267 | 18264 | "properties": { |
| 18265 | + "additionalAnnotations": { |
| 18266 | + "additionalProperties": { |
| 18267 | + "type": "string" |
| 18268 | + }, |
| 18269 | + "description": "Custom annotations for CAPI machine objects and nodes.\nCurrently implemented for CloudStack only.\n", |
| 18270 | + "type": "object" |
| 18271 | + }, |
18268 | 18272 | "additionalLabels": { |
18269 | 18273 | "additionalProperties": { |
18270 | 18274 | "type": "string" |
|
18312 | 18316 | "format": "int32", |
18313 | 18317 | "type": "integer" |
18314 | 18318 | }, |
| 18319 | + "overrideKubeadmConfiguration": { |
| 18320 | + "description": "YAML config for kubeletExtraArgs, preKubeadmCommands, postKubeadmCommands.\nOverrides pack-level settings. Worker pools only.\nCurrently implemented for CloudStack only.\n", |
| 18321 | + "type": "string" |
| 18322 | + }, |
18315 | 18323 | "size": { |
18316 | 18324 | "description": "Size of the pool, number of nodes/machines", |
18317 | 18325 | "format": "int32", |
@@ -34057,13 +34065,22 @@ |
34057 | 34065 | "uniqueItems": true |
34058 | 34066 | }, |
34059 | 34067 | "v1UpdateStrategy": { |
34060 | | - "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut => maxSurge=1, maxUnavailable=0 ScaleIn => maxSurge=0, maxUnavailable=1", |
| 34068 | + "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut => maxSurge=1, maxUnavailable=0 ScaleIn => maxSurge=0, maxUnavailable=1 OverrideScaling => maxSurge and maxUnavailable are user-specified (both required)", |
34061 | 34069 | "properties": { |
| 34070 | + "maxSurge": { |
| 34071 | + "description": "Max extra nodes during rolling update. Integer or percentage (e.g., \"1\" or \"20%\").\nOnly valid when type=OverrideScaling. Both maxSurge and maxUnavailable are required.\nCurrently implemented for CloudStack only.\n", |
| 34072 | + "type": "string" |
| 34073 | + }, |
| 34074 | + "maxUnavailable": { |
| 34075 | + "description": "Max unavailable nodes during rolling update. Integer or percentage (e.g., \"0\" or \"10%\").\nOnly valid when type=OverrideScaling. Both maxSurge and maxUnavailable are required.\nCurrently implemented for CloudStack only.\n", |
| 34076 | + "type": "string" |
| 34077 | + }, |
34062 | 34078 | "type": { |
34063 | | - "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", |
| 34079 | + "description": "Update strategy type. Defaults to RollingUpdateScaleOut if empty.", |
34064 | 34080 | "enum": [ |
34065 | 34081 | "RollingUpdateScaleOut", |
34066 | | - "RollingUpdateScaleIn" |
| 34082 | + "RollingUpdateScaleIn", |
| 34083 | + "OverrideScaling" |
34067 | 34084 | ], |
34068 | 34085 | "type": "string" |
34069 | 34086 | } |
@@ -36265,11 +36282,14 @@ |
36265 | 36282 | "type": "object" |
36266 | 36283 | }, |
36267 | 36284 | "v1VmDataVolumeSource": { |
36268 | | - "description": "DataVolumeSource represents the source for our Data Volume, this can be HTTP, Imageio, S3, Registry or an existing PVC", |
| 36285 | + "description": "DataVolumeSource represents the source for our Data Volume, this can be HTTP, Imageio, S3, GCS, Registry, Snapshot or an existing PVC", |
36269 | 36286 | "properties": { |
36270 | 36287 | "blank": { |
36271 | 36288 | "$ref": "#/definitions/v1VmDataVolumeBlankImage" |
36272 | 36289 | }, |
| 36290 | + "gcs": { |
| 36291 | + "$ref": "#/definitions/v1VmDataVolumeSourceGCS" |
| 36292 | + }, |
36273 | 36293 | "http": { |
36274 | 36294 | "$ref": "#/definitions/v1VmDataVolumeSourceHttp" |
36275 | 36295 | }, |
|
36285 | 36305 | "s3": { |
36286 | 36306 | "$ref": "#/definitions/v1VmDataVolumeSourceS3" |
36287 | 36307 | }, |
| 36308 | + "snapshot": { |
| 36309 | + "$ref": "#/definitions/v1VmDataVolumeSourceSnapshot" |
| 36310 | + }, |
36288 | 36311 | "upload": { |
36289 | 36312 | "$ref": "#/definitions/v1VmDataVolumeSourceUpload" |
36290 | 36313 | }, |
|
36294 | 36317 | }, |
36295 | 36318 | "type": "object" |
36296 | 36319 | }, |
| 36320 | + "v1VmDataVolumeSourceGCS": { |
| 36321 | + "description": "DataVolumeSourceGCS provides the parameters to create a Data Volume from a GCS source", |
| 36322 | + "properties": { |
| 36323 | + "secretRef": { |
| 36324 | + "description": "SecretRef provides the secret reference needed to access the GCS source", |
| 36325 | + "type": "string" |
| 36326 | + }, |
| 36327 | + "url": { |
| 36328 | + "description": "URL is the url of the GCS source", |
| 36329 | + "type": "string" |
| 36330 | + } |
| 36331 | + }, |
| 36332 | + "required": [ |
| 36333 | + "url" |
| 36334 | + ], |
| 36335 | + "type": "object" |
| 36336 | + }, |
36297 | 36337 | "v1VmDataVolumeSourceHttp": { |
36298 | 36338 | "description": "DataVolumeSourceHTTP can be either an http or https endpoint, with an optional basic auth user name and password, and an optional configmap containing additional CAs", |
36299 | 36339 | "properties": { |
|
36406 | 36446 | "description": "ImageStream is the name of image stream for import", |
36407 | 36447 | "type": "string" |
36408 | 36448 | }, |
| 36449 | + "platform": { |
| 36450 | + "$ref": "#/definitions/v1VmPlatformOptions" |
| 36451 | + }, |
36409 | 36452 | "pullMethod": { |
36410 | 36453 | "description": "PullMethod can be either \"pod\" (default import), or \"node\" (node docker cache based import)", |
36411 | 36454 | "type": "string" |
|
36442 | 36485 | ], |
36443 | 36486 | "type": "object" |
36444 | 36487 | }, |
| 36488 | + "v1VmDataVolumeSourceSnapshot": { |
| 36489 | + "description": "DataVolumeSourceSnapshot provides the parameters to create a Data Volume from an existing VolumeSnapshot", |
| 36490 | + "properties": { |
| 36491 | + "name": { |
| 36492 | + "description": "The name of the source VolumeSnapshot", |
| 36493 | + "type": "string" |
| 36494 | + }, |
| 36495 | + "namespace": { |
| 36496 | + "description": "The namespace of the source VolumeSnapshot", |
| 36497 | + "type": "string" |
| 36498 | + } |
| 36499 | + }, |
| 36500 | + "required": [ |
| 36501 | + "namespace", |
| 36502 | + "name" |
| 36503 | + ], |
| 36504 | + "type": "object" |
| 36505 | + }, |
36445 | 36506 | "v1VmDataVolumeSourceUpload": { |
36446 | 36507 | "description": "DataVolumeSourceUpload provides the parameters to create a Data Volume by uploading the source", |
36447 | 36508 | "type": "object" |
|
36754 | 36815 | "type": "object" |
36755 | 36816 | }, |
36756 | 36817 | "ioThreadsPolicy": { |
36757 | | - "description": "Controls whether or not disks will share IOThreads. Omitting IOThreadsPolicy disables use of IOThreads. One of: shared, auto", |
| 36818 | + "description": "Controls whether or not disks will share IOThreads. Omitting IOThreadsPolicy disables use of IOThreads. One of: shared, auto, supplementalPool", |
36758 | 36819 | "type": "string" |
36759 | 36820 | }, |
36760 | 36821 | "launchSecurity": { |
|
36827 | 36888 | "v1VmEFI": { |
36828 | 36889 | "description": "If set, EFI will be used instead of BIOS.", |
36829 | 36890 | "properties": { |
| 36891 | + "persistent": { |
| 36892 | + "description": "If set to true, Persistent will persist the EFI NVRAM across reboots. Defaults to false", |
| 36893 | + "type": "boolean" |
| 36894 | + }, |
36830 | 36895 | "secureBoot": { |
36831 | 36896 | "description": "If set, SecureBoot will be enabled and the OVMF roms will be swapped for SecureBoot-enabled ones. Requires SMM to be enabled. Defaults to true", |
36832 | 36897 | "type": "boolean" |
|
36997 | 37062 | "hyperv": { |
36998 | 37063 | "$ref": "#/definitions/v1VmFeatureHyperv" |
36999 | 37064 | }, |
| 37065 | + "hypervPassthrough": { |
| 37066 | + "$ref": "#/definitions/v1VmHyperVPassthrough" |
| 37067 | + }, |
37000 | 37068 | "kvm": { |
37001 | 37069 | "$ref": "#/definitions/v1VmFeatureKVm" |
37002 | 37070 | }, |
|
37217 | 37285 | }, |
37218 | 37286 | "type": "object" |
37219 | 37287 | }, |
| 37288 | + "v1VmHyperVPassthrough": { |
| 37289 | + "description": "HyperVPassthrough enables all supported hyperv flags automatically. Bear in mind that if this enabled hyperV features cannot be enabled explicitly. In addition, a Virtual Machine using it will be non-migratable.", |
| 37290 | + "properties": { |
| 37291 | + "enabled": { |
| 37292 | + "description": "Enabled determines if Hyper-V passthrough should be enabled or disabled. Defaults to false.", |
| 37293 | + "type": "boolean" |
| 37294 | + } |
| 37295 | + }, |
| 37296 | + "type": "object" |
| 37297 | + }, |
37220 | 37298 | "v1VmHypervTimer": { |
37221 | 37299 | "properties": { |
37222 | 37300 | "present": { |
|
37935 | 38013 | ], |
37936 | 38014 | "type": "object" |
37937 | 38015 | }, |
| 38016 | + "v1VmPlatformOptions": { |
| 38017 | + "description": "PlatformOptions describes the minimum runtime requirements of the image", |
| 38018 | + "properties": { |
| 38019 | + "architecture": { |
| 38020 | + "description": "Architecture specifies the image target CPU architecture", |
| 38021 | + "type": "string" |
| 38022 | + } |
| 38023 | + }, |
| 38024 | + "type": "object" |
| 38025 | + }, |
37938 | 38026 | "v1VmPodAffinity": { |
37939 | 38027 | "description": "Pod affinity is a group of inter pod affinity scheduling rules.", |
37940 | 38028 | "properties": { |
|
38035 | 38123 | }, |
38036 | 38124 | "type": "object" |
38037 | 38125 | }, |
| 38126 | + "v1VmPodResourceClaim": { |
| 38127 | + "description": "PodResourceClaim defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to the domain which consumes them by name.", |
| 38128 | + "properties": { |
| 38129 | + "name": { |
| 38130 | + "description": "Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.", |
| 38131 | + "type": "string" |
| 38132 | + }, |
| 38133 | + "resourceClaimName": { |
| 38134 | + "description": "ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod. Exactly one of ResourceClaimName and ResourceClaimTemplateName must be set.", |
| 38135 | + "type": "string" |
| 38136 | + }, |
| 38137 | + "resourceClaimTemplateName": { |
| 38138 | + "description": "ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. The template will be used to create a new ResourceClaim, which will be bound to this pod. Exactly one of ResourceClaimName and ResourceClaimTemplateName must be set.", |
| 38139 | + "type": "string" |
| 38140 | + } |
| 38141 | + }, |
| 38142 | + "required": [ |
| 38143 | + "name" |
| 38144 | + ], |
| 38145 | + "type": "object" |
| 38146 | + }, |
38038 | 38147 | "v1VmPort": { |
38039 | 38148 | "description": "Port represents a port to expose from the virtual machine. Default protocol TCP. The port field is mandatory", |
38040 | 38149 | "properties": { |
|
38370 | 38479 | "dataSource": { |
38371 | 38480 | "$ref": "#/definitions/v1VmTypedLocalObjectReference" |
38372 | 38481 | }, |
| 38482 | + "dataSourceRef": { |
| 38483 | + "$ref": "#/definitions/v1VmTypedObjectReference" |
| 38484 | + }, |
38373 | 38485 | "resources": { |
38374 | 38486 | "$ref": "#/definitions/v1VmCoreResourceRequirements" |
38375 | 38487 | }, |
|
38531 | 38643 | ], |
38532 | 38644 | "type": "object" |
38533 | 38645 | }, |
| 38646 | + "v1VmTypedObjectReference": { |
| 38647 | + "description": "TypedObjectReference contains enough information to let you locate the typed referenced object. It can be used for objects in the same namespace or cluster-scoped objects.", |
| 38648 | + "properties": { |
| 38649 | + "apiGroup": { |
| 38650 | + "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", |
| 38651 | + "type": "string" |
| 38652 | + }, |
| 38653 | + "kind": { |
| 38654 | + "description": "Kind is the type of resource being referenced", |
| 38655 | + "type": "string" |
| 38656 | + }, |
| 38657 | + "name": { |
| 38658 | + "description": "Name is the name of resource being referenced", |
| 38659 | + "type": "string" |
| 38660 | + }, |
| 38661 | + "namespace": { |
| 38662 | + "description": "Namespace is the namespace of resource being referenced. This field is required when the resource is namespaced and optional when the resource is cluster-scoped.", |
| 38663 | + "type": "string" |
| 38664 | + } |
| 38665 | + }, |
| 38666 | + "required": [ |
| 38667 | + "kind", |
| 38668 | + "name" |
| 38669 | + ], |
| 38670 | + "type": "object" |
| 38671 | + }, |
38534 | 38672 | "v1VmUserPasswordAccessCredential": { |
38535 | 38673 | "description": "UserPasswordAccessCredential represents a source and propagation method for injecting user passwords into a vm guest Only one of its members may be specified.", |
38536 | 38674 | "properties": { |
|
38673 | 38811 | "readinessProbe": { |
38674 | 38812 | "$ref": "#/definitions/v1VmProbe" |
38675 | 38813 | }, |
| 38814 | + "resourceClaims": { |
| 38815 | + "description": "ResourceClaims define which ResourceClaims must be allocated and reserved before the VMI, hence virt-launcher pod is allowed to start. The resources will be made available to the domain which consumes them by name. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate in kubernetes. This field should only be configured if one of the feature-gates GPUsWithDRA or HostDevicesWithDRA is enabled.", |
| 38816 | + "items": { |
| 38817 | + "$ref": "#/definitions/v1VmPodResourceClaim" |
| 38818 | + }, |
| 38819 | + "type": "array", |
| 38820 | + "x-kubernetes-list-map-keys": [ |
| 38821 | + "name" |
| 38822 | + ], |
| 38823 | + "x-kubernetes-list-type": "map" |
| 38824 | + }, |
38676 | 38825 | "schedulerName": { |
38677 | 38826 | "description": "If specified, the VMI will be dispatched by specified scheduler. If not specified, the VMI will be dispatched by default scheduler.", |
38678 | 38827 | "type": "string" |
|
0 commit comments