github.com/giantswarm/apiextensions/v2@v2.6.2/config/crd/v1beta1/exp.cluster.x-k8s.io_machinepools.yaml (about) 1 2 --- 3 apiVersion: apiextensions.k8s.io/v1beta1 4 kind: CustomResourceDefinition 5 metadata: 6 annotations: 7 controller-gen.kubebuilder.io/version: v0.2.4 8 creationTimestamp: null 9 name: machinepools.exp.cluster.x-k8s.io 10 spec: 11 additionalPrinterColumns: 12 - JSONPath: .status.replicas 13 description: MachinePool replicas count 14 name: Replicas 15 type: string 16 - JSONPath: .status.phase 17 description: MachinePool status such as Terminating/Pending/Provisioning/Running/Failed 18 etc 19 name: Phase 20 type: string 21 group: exp.cluster.x-k8s.io 22 names: 23 categories: 24 - cluster-api 25 kind: MachinePool 26 listKind: MachinePoolList 27 plural: machinepools 28 shortNames: 29 - mp 30 singular: machinepool 31 scope: Namespaced 32 subresources: 33 scale: 34 specReplicasPath: .spec.replicas 35 statusReplicasPath: .status.replicas 36 status: {} 37 validation: 38 openAPIV3Schema: 39 description: MachinePool is the Schema for the machinepools API 40 properties: 41 apiVersion: 42 description: 'APIVersion defines the versioned schema of this representation 43 of an object. Servers should convert recognized schemas to the latest 44 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 45 type: string 46 kind: 47 description: 'Kind is a string value representing the REST resource this 48 object represents. Servers may infer this from the endpoint the client 49 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 50 type: string 51 metadata: 52 type: object 53 spec: 54 description: MachinePoolSpec defines the desired state of MachinePool 55 properties: 56 clusterName: 57 description: ClusterName is the name of the Cluster this object belongs 58 to. 59 minLength: 1 60 type: string 61 failureDomains: 62 description: FailureDomains is the list of failure domains this MachinePool 63 should be attached to. 64 items: 65 type: string 66 type: array 67 minReadySeconds: 68 description: Minimum number of seconds for which a newly created machine 69 instances should be ready. Defaults to 0 (machine instance will be 70 considered available as soon as it is ready) 71 format: int32 72 type: integer 73 providerIDList: 74 description: ProviderIDList are the identification IDs of machine instances 75 provided by the provider. This field must match the provider IDs as 76 seen on the node objects corresponding to a machine pool's machine 77 instances. 78 items: 79 type: string 80 type: array 81 replicas: 82 description: Number of desired machines. Defaults to 1. This is a pointer 83 to distinguish between explicit zero and not specified. 84 format: int32 85 type: integer 86 strategy: 87 description: The deployment strategy to use to replace existing machine 88 instances with new ones. 89 properties: 90 rollingUpdate: 91 description: Rolling update config params. Present only if MachineDeploymentStrategyType 92 = RollingUpdate. 93 properties: 94 maxSurge: 95 anyOf: 96 - type: integer 97 - type: string 98 description: 'The maximum number of machines that can be scheduled 99 above the desired number of machines. Value can be an absolute 100 number (ex: 5) or a percentage of desired machines (ex: 10%). 101 This can not be 0 if MaxUnavailable is 0. Absolute number 102 is calculated from percentage by rounding up. Defaults to 103 1. Example: when this is set to 30%, the new MachineSet can 104 be scaled up immediately when the rolling update starts, such 105 that the total number of old and new machines do not exceed 106 130% of desired machines. Once old machines have been killed, 107 new MachineSet can be scaled up further, ensuring that total 108 number of machines running at any time during the update is 109 at most 130% of desired machines.' 110 x-kubernetes-int-or-string: true 111 maxUnavailable: 112 anyOf: 113 - type: integer 114 - type: string 115 description: 'The maximum number of machines that can be unavailable 116 during the update. Value can be an absolute number (ex: 5) 117 or a percentage of desired machines (ex: 10%). Absolute number 118 is calculated from percentage by rounding down. This can not 119 be 0 if MaxSurge is 0. Defaults to 0. Example: when this is 120 set to 30%, the old MachineSet can be scaled down to 70% of 121 desired machines immediately when the rolling update starts. 122 Once new machines are ready, old MachineSet can be scaled 123 down further, followed by scaling up the new MachineSet, ensuring 124 that the total number of machines available at all times during 125 the update is at least 70% of desired machines.' 126 x-kubernetes-int-or-string: true 127 type: object 128 type: 129 description: Type of deployment. Currently the only supported strategy 130 is "RollingUpdate". Default is RollingUpdate. 131 type: string 132 type: object 133 template: 134 description: Template describes the machines that will be created. 135 properties: 136 metadata: 137 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' 138 properties: 139 annotations: 140 additionalProperties: 141 type: string 142 description: 'Annotations is an unstructured key value map stored 143 with a resource that may be set by external tools to store 144 and retrieve arbitrary metadata. They are not queryable and 145 should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' 146 type: object 147 generateName: 148 description: "GenerateName is an optional prefix, used by the 149 server, to generate a unique name ONLY IF the Name field has 150 not been provided. If this field is used, the name returned 151 to the client will be different than the name passed. This 152 value will also be combined with a unique suffix. The provided 153 value has the same validation rules as the Name field, and 154 may be truncated by the length of the suffix required to make 155 the value unique on the server. \n If this field is specified 156 and the generated name exists, the server will NOT return 157 a 409 - instead, it will either return 201 Created or 500 158 with Reason ServerTimeout indicating a unique name could not 159 be found in the time allotted, and the client should retry 160 (optionally after the time indicated in the Retry-After header). 161 \n Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" 162 type: string 163 labels: 164 additionalProperties: 165 type: string 166 description: 'Map of string keys and values that can be used 167 to organize and categorize (scope and select) objects. May 168 match selectors of replication controllers and services. More 169 info: http://kubernetes.io/docs/user-guide/labels' 170 type: object 171 name: 172 description: 'Name must be unique within a namespace. Is required 173 when creating resources, although some resources may allow 174 a client to request the generation of an appropriate name 175 automatically. Name is primarily intended for creation idempotence 176 and configuration definition. Cannot be updated. More info: 177 http://kubernetes.io/docs/user-guide/identifiers#names' 178 type: string 179 namespace: 180 description: "Namespace defines the space within each name must 181 be unique. An empty namespace is equivalent to the \"default\" 182 namespace, but \"default\" is the canonical representation. 183 Not all objects are required to be scoped to a namespace - 184 the value of this field for those objects will be empty. \n 185 Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" 186 type: string 187 ownerReferences: 188 description: List of objects depended by this object. If ALL 189 objects in the list have been deleted, this object will be 190 garbage collected. If this object is managed by a controller, 191 then an entry in this list will point to this controller, 192 with the controller field set to true. There cannot be more 193 than one managing controller. 194 items: 195 description: OwnerReference contains enough information to 196 let you identify an owning object. An owning object must 197 be in the same namespace as the dependent, or be cluster-scoped, 198 so there is no namespace field. 199 properties: 200 apiVersion: 201 description: API version of the referent. 202 type: string 203 blockOwnerDeletion: 204 description: If true, AND if the owner has the "foregroundDeletion" 205 finalizer, then the owner cannot be deleted from the 206 key-value store until this reference is removed. Defaults 207 to false. To set this field, a user needs "delete" permission 208 of the owner, otherwise 422 (Unprocessable Entity) will 209 be returned. 210 type: boolean 211 controller: 212 description: If true, this reference points to the managing 213 controller. 214 type: boolean 215 kind: 216 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 217 type: string 218 name: 219 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 220 type: string 221 uid: 222 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 223 type: string 224 required: 225 - apiVersion 226 - kind 227 - name 228 - uid 229 type: object 230 type: array 231 type: object 232 spec: 233 description: 'Specification of the desired behavior of the machine. 234 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' 235 properties: 236 bootstrap: 237 description: Bootstrap is a reference to a local struct which 238 encapsulates fields to configure the Machine’s bootstrapping 239 mechanism. 240 properties: 241 configRef: 242 description: ConfigRef is a reference to a bootstrap provider-specific 243 resource that holds configuration details. The reference 244 is optional to allow users/operators to specify Bootstrap.Data 245 without the need of a controller. 246 properties: 247 apiVersion: 248 description: API version of the referent. 249 type: string 250 fieldPath: 251 description: 'If referring to a piece of an object instead 252 of an entire object, this string should contain a 253 valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 254 For example, if the object reference is to a container 255 within a pod, this would take on a value like: "spec.containers{name}" 256 (where "name" refers to the name of the container 257 that triggered the event) or if no container name 258 is specified "spec.containers[2]" (container with 259 index 2 in this pod). This syntax is chosen only to 260 have some well-defined way of referencing a part of 261 an object. TODO: this design is not final and this 262 field is subject to change in the future.' 263 type: string 264 kind: 265 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 266 type: string 267 name: 268 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 269 type: string 270 namespace: 271 description: 'Namespace of the referent. More info: 272 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 273 type: string 274 resourceVersion: 275 description: 'Specific resourceVersion to which this 276 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 277 type: string 278 uid: 279 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 280 type: string 281 type: object 282 data: 283 description: "Data contains the bootstrap data, such as 284 cloud-init details scripts. If nil, the Machine should 285 remain in the Pending state. \n Deprecated: This field 286 has been deprecated in v1alpha3 and will be removed in 287 a future version. Switch to DataSecretName." 288 type: string 289 dataSecretName: 290 description: DataSecretName is the name of the secret that 291 stores the bootstrap data script. If nil, the Machine 292 should remain in the Pending state. 293 type: string 294 type: object 295 clusterName: 296 description: ClusterName is the name of the Cluster this object 297 belongs to. 298 minLength: 1 299 type: string 300 failureDomain: 301 description: FailureDomain is the failure domain the machine 302 will be created in. Must match a key in the FailureDomains 303 map stored on the cluster object. 304 type: string 305 infrastructureRef: 306 description: InfrastructureRef is a required reference to a 307 custom resource offered by an infrastructure provider. 308 properties: 309 apiVersion: 310 description: API version of the referent. 311 type: string 312 fieldPath: 313 description: 'If referring to a piece of an object instead 314 of an entire object, this string should contain a valid 315 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 316 For example, if the object reference is to a container 317 within a pod, this would take on a value like: "spec.containers{name}" 318 (where "name" refers to the name of the container that 319 triggered the event) or if no container name is specified 320 "spec.containers[2]" (container with index 2 in this pod). 321 This syntax is chosen only to have some well-defined way 322 of referencing a part of an object. TODO: this design 323 is not final and this field is subject to change in the 324 future.' 325 type: string 326 kind: 327 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 328 type: string 329 name: 330 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 331 type: string 332 namespace: 333 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 334 type: string 335 resourceVersion: 336 description: 'Specific resourceVersion to which this reference 337 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 338 type: string 339 uid: 340 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 341 type: string 342 type: object 343 providerID: 344 description: ProviderID is the identification ID of the machine 345 provided by the provider. This field must match the provider 346 ID as seen on the node object corresponding to this machine. 347 This field is required by higher level consumers of cluster-api. 348 Example use case is cluster autoscaler with cluster-api as 349 provider. Clean-up logic in the autoscaler compares machines 350 to nodes to find out machines at provider which could not 351 get registered as Kubernetes nodes. With cluster-api as a 352 generic out-of-tree provider for autoscaler, this field is 353 required by autoscaler to be able to have a provider view 354 of the list of machines. Another list of nodes is queried 355 from the k8s apiserver and then a comparison is done to find 356 out unregistered machines and are marked for delete. This 357 field will be set by the actuators and consumed by higher 358 level entities like autoscaler that will be interfacing with 359 cluster-api as generic provider. 360 type: string 361 version: 362 description: Version defines the desired Kubernetes version. 363 This field is meant to be optionally used by bootstrap providers. 364 type: string 365 required: 366 - bootstrap 367 - clusterName 368 - infrastructureRef 369 type: object 370 type: object 371 required: 372 - clusterName 373 - template 374 type: object 375 status: 376 description: MachinePoolStatus defines the observed state of MachinePool 377 properties: 378 availableReplicas: 379 description: The number of available replicas (ready for at least minReadySeconds) 380 for this MachinePool. 381 format: int32 382 type: integer 383 bootstrapReady: 384 description: BootstrapReady is the state of the bootstrap provider. 385 type: boolean 386 failureMessage: 387 description: FailureMessage indicates that there is a problem reconciling 388 the state, and will be set to a descriptive error message. 389 type: string 390 failureReason: 391 description: FailureReason indicates that there is a problem reconciling 392 the state, and will be set to a token value suitable for programmatic 393 interpretation. 394 type: string 395 infrastructureReady: 396 description: InfrastructureReady is the state of the infrastructure 397 provider. 398 type: boolean 399 nodeRefs: 400 description: NodeRefs will point to the corresponding Nodes if it they 401 exist. 402 items: 403 description: 'ObjectReference contains enough information to let you 404 inspect or modify the referred object. --- New uses of this type 405 are discouraged because of difficulty describing its usage when 406 embedded in APIs. 1. Ignored fields. It includes many fields which 407 are not generally honored. For instance, ResourceVersion and FieldPath 408 are both very rarely valid in actual usage. 2. Invalid usage help. It 409 is impossible to add specific help for individual usage. In most 410 embedded usages, there are particular restrictions like, "must 411 refer only to types A and B" or "UID not honored" or "name must 412 be restricted". Those cannot be well described when embedded. 3. 413 Inconsistent validation. Because the usages are different, the 414 validation rules are different by usage, which makes it hard for 415 users to predict what will happen. 4. The fields are both imprecise 416 and overly precise. Kind is not a precise mapping to a URL. This 417 can produce ambiguity during interpretation and require a REST 418 mapping. In most cases, the dependency is on the group,resource 419 tuple and the version of the actual struct is irrelevant. 5. 420 We cannot easily change it. Because this type is embedded in many 421 locations, updates to this type will affect numerous schemas. Don''t 422 make new APIs embed an underspecified API type they do not control. 423 Instead of using this type, create a locally provided and used type 424 that is well-focused on your reference. For example, ServiceReferences 425 for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 426 .' 427 properties: 428 apiVersion: 429 description: API version of the referent. 430 type: string 431 fieldPath: 432 description: 'If referring to a piece of an object instead of 433 an entire object, this string should contain a valid JSON/Go 434 field access statement, such as desiredState.manifest.containers[2]. 435 For example, if the object reference is to a container within 436 a pod, this would take on a value like: "spec.containers{name}" 437 (where "name" refers to the name of the container that triggered 438 the event) or if no container name is specified "spec.containers[2]" 439 (container with index 2 in this pod). This syntax is chosen 440 only to have some well-defined way of referencing a part of 441 an object. TODO: this design is not final and this field is 442 subject to change in the future.' 443 type: string 444 kind: 445 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 446 type: string 447 name: 448 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 449 type: string 450 namespace: 451 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 452 type: string 453 resourceVersion: 454 description: 'Specific resourceVersion to which this reference 455 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 456 type: string 457 uid: 458 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 459 type: string 460 type: object 461 type: array 462 observedGeneration: 463 description: ObservedGeneration is the latest generation observed by 464 the controller. 465 format: int64 466 type: integer 467 phase: 468 description: Phase represents the current phase of cluster actuation. 469 E.g. Pending, Running, Terminating, Failed etc. 470 type: string 471 readyReplicas: 472 description: The number of ready replicas for this MachinePool. A machine 473 is considered ready when the node has been created and is "Ready". 474 format: int32 475 type: integer 476 replicas: 477 description: Replicas is the most recently observed number of replicas. 478 format: int32 479 type: integer 480 unavailableReplicas: 481 description: Total number of unavailable machine instances targeted 482 by this machine pool. This is the total number of machine instances 483 that are still required for the machine pool to have 100% available 484 capacity. They may either be machine instances that are running but 485 not yet available or machine instances that still have not been created. 486 format: int32 487 type: integer 488 type: object 489 type: object 490 version: v1alpha3 491 versions: 492 - name: v1alpha3 493 served: true 494 storage: true 495 status: 496 acceptedNames: 497 kind: "" 498 plural: "" 499 conditions: [] 500 storedVersions: []