sigs.k8s.io/cluster-api@v1.7.1/config/crd/bases/cluster.x-k8s.io_machinesets.yaml (about) 1 --- 2 apiVersion: apiextensions.k8s.io/v1 3 kind: CustomResourceDefinition 4 metadata: 5 annotations: 6 controller-gen.kubebuilder.io/version: v0.14.0 7 name: machinesets.cluster.x-k8s.io 8 spec: 9 group: cluster.x-k8s.io 10 names: 11 categories: 12 - cluster-api 13 kind: MachineSet 14 listKind: MachineSetList 15 plural: machinesets 16 shortNames: 17 - ms 18 singular: machineset 19 scope: Namespaced 20 versions: 21 - additionalPrinterColumns: 22 - description: Total number of non-terminated machines targeted by this machineset 23 jsonPath: .status.replicas 24 name: Replicas 25 type: integer 26 - description: Total number of available machines (ready for at least minReadySeconds) 27 jsonPath: .status.availableReplicas 28 name: Available 29 type: integer 30 - description: Total number of ready machines targeted by this machineset. 31 jsonPath: .status.readyReplicas 32 name: Ready 33 type: integer 34 deprecated: true 35 name: v1alpha3 36 schema: 37 openAPIV3Schema: 38 description: |- 39 MachineSet is the Schema for the machinesets API. 40 41 42 Deprecated: This type will be removed in one of the next releases. 43 properties: 44 apiVersion: 45 description: |- 46 APIVersion defines the versioned schema of this representation of an object. 47 Servers should convert recognized schemas to the latest internal value, and 48 may reject unrecognized values. 49 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 50 type: string 51 kind: 52 description: |- 53 Kind is a string value representing the REST resource this object represents. 54 Servers may infer this from the endpoint the client submits requests to. 55 Cannot be updated. 56 In CamelCase. 57 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 58 type: string 59 metadata: 60 type: object 61 spec: 62 description: MachineSetSpec defines the desired state of MachineSet. 63 properties: 64 clusterName: 65 description: ClusterName is the name of the Cluster this object belongs 66 to. 67 minLength: 1 68 type: string 69 deletePolicy: 70 description: |- 71 DeletePolicy defines the policy used to identify nodes to delete when downscaling. 72 Defaults to "Random". Valid values are "Random, "Newest", "Oldest" 73 enum: 74 - Random 75 - Newest 76 - Oldest 77 type: string 78 minReadySeconds: 79 description: |- 80 MinReadySeconds is the minimum number of seconds for which a newly created machine should be ready. 81 Defaults to 0 (machine will be considered available as soon as it is ready) 82 format: int32 83 type: integer 84 replicas: 85 description: |- 86 Replicas is the number of desired replicas. 87 This is a pointer to distinguish between explicit zero and unspecified. 88 Defaults to 1. 89 format: int32 90 type: integer 91 selector: 92 description: |- 93 Selector is a label query over machines that should match the replica count. 94 Label keys and values that must match in order to be controlled by this MachineSet. 95 It must match the machine template's labels. 96 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors 97 properties: 98 matchExpressions: 99 description: matchExpressions is a list of label selector requirements. 100 The requirements are ANDed. 101 items: 102 description: |- 103 A label selector requirement is a selector that contains values, a key, and an operator that 104 relates the key and values. 105 properties: 106 key: 107 description: key is the label key that the selector applies 108 to. 109 type: string 110 operator: 111 description: |- 112 operator represents a key's relationship to a set of values. 113 Valid operators are In, NotIn, Exists and DoesNotExist. 114 type: string 115 values: 116 description: |- 117 values is an array of string values. If the operator is In or NotIn, 118 the values array must be non-empty. If the operator is Exists or DoesNotExist, 119 the values array must be empty. This array is replaced during a strategic 120 merge patch. 121 items: 122 type: string 123 type: array 124 required: 125 - key 126 - operator 127 type: object 128 type: array 129 matchLabels: 130 additionalProperties: 131 type: string 132 description: |- 133 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 134 map is equivalent to an element of matchExpressions, whose key field is "key", the 135 operator is "In", and the values array contains only "value". The requirements are ANDed. 136 type: object 137 type: object 138 x-kubernetes-map-type: atomic 139 template: 140 description: |- 141 Template is the object that describes the machine that will be created if 142 insufficient replicas are detected. 143 Object references to custom resources are treated as templates. 144 properties: 145 metadata: 146 description: |- 147 Standard object's metadata. 148 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata 149 properties: 150 annotations: 151 additionalProperties: 152 type: string 153 description: |- 154 Annotations is an unstructured key value map stored with a resource that may be 155 set by external tools to store and retrieve arbitrary metadata. They are not 156 queryable and should be preserved when modifying objects. 157 More info: http://kubernetes.io/docs/user-guide/annotations 158 type: object 159 generateName: 160 description: |- 161 GenerateName is an optional prefix, used by the server, to generate a unique 162 name ONLY IF the Name field has not been provided. 163 If this field is used, the name returned to the client will be different 164 than the name passed. This value will also be combined with a unique suffix. 165 The provided value has the same validation rules as the Name field, 166 and may be truncated by the length of the suffix required to make the value 167 unique on the server. 168 169 170 If this field is specified and the generated name exists, the server will 171 NOT return a 409 - instead, it will either return 201 Created or 500 with Reason 172 ServerTimeout indicating a unique name could not be found in the time allotted, and the client 173 should retry (optionally after the time indicated in the Retry-After header). 174 175 176 Applied only if Name is not specified. 177 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency 178 179 180 Deprecated: This field has no function and is going to be removed in a next release. 181 type: string 182 labels: 183 additionalProperties: 184 type: string 185 description: |- 186 Map of string keys and values that can be used to organize and categorize 187 (scope and select) objects. May match selectors of replication controllers 188 and services. 189 More info: http://kubernetes.io/docs/user-guide/labels 190 type: object 191 name: 192 description: |- 193 Name must be unique within a namespace. Is required when creating resources, although 194 some resources may allow a client to request the generation of an appropriate name 195 automatically. Name is primarily intended for creation idempotence and configuration 196 definition. 197 Cannot be updated. 198 More info: http://kubernetes.io/docs/user-guide/identifiers#names 199 200 201 Deprecated: This field has no function and is going to be removed in a next release. 202 type: string 203 namespace: 204 description: |- 205 Namespace defines the space within each name must be unique. An empty namespace is 206 equivalent to the "default" namespace, but "default" is the canonical representation. 207 Not all objects are required to be scoped to a namespace - the value of this field for 208 those objects will be empty. 209 210 211 Must be a DNS_LABEL. 212 Cannot be updated. 213 More info: http://kubernetes.io/docs/user-guide/namespaces 214 215 216 Deprecated: This field has no function and is going to be removed in a next release. 217 type: string 218 ownerReferences: 219 description: |- 220 List of objects depended by this object. If ALL objects in the list have 221 been deleted, this object will be garbage collected. If this object is managed by a controller, 222 then an entry in this list will point to this controller, with the controller field set to true. 223 There cannot be more than one managing controller. 224 225 226 Deprecated: This field has no function and is going to be removed in a next release. 227 items: 228 description: |- 229 OwnerReference contains enough information to let you identify an owning 230 object. An owning object must be in the same namespace as the dependent, or 231 be cluster-scoped, so there is no namespace field. 232 properties: 233 apiVersion: 234 description: API version of the referent. 235 type: string 236 blockOwnerDeletion: 237 description: |- 238 If true, AND if the owner has the "foregroundDeletion" finalizer, then 239 the owner cannot be deleted from the key-value store until this 240 reference is removed. 241 See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion 242 for how the garbage collector interacts with this field and enforces the foreground deletion. 243 Defaults to false. 244 To set this field, a user needs "delete" permission of the owner, 245 otherwise 422 (Unprocessable Entity) will be returned. 246 type: boolean 247 controller: 248 description: If true, this reference points to the managing 249 controller. 250 type: boolean 251 kind: 252 description: |- 253 Kind of the referent. 254 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 255 type: string 256 name: 257 description: |- 258 Name of the referent. 259 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names 260 type: string 261 uid: 262 description: |- 263 UID of the referent. 264 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids 265 type: string 266 required: 267 - apiVersion 268 - kind 269 - name 270 - uid 271 type: object 272 x-kubernetes-map-type: atomic 273 type: array 274 type: object 275 spec: 276 description: |- 277 Specification of the desired behavior of the machine. 278 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status 279 properties: 280 bootstrap: 281 description: |- 282 Bootstrap is a reference to a local struct which encapsulates 283 fields to configure the Machine’s bootstrapping mechanism. 284 properties: 285 configRef: 286 description: |- 287 ConfigRef is a reference to a bootstrap provider-specific resource 288 that holds configuration details. The reference is optional to 289 allow users/operators to specify Bootstrap.Data without 290 the need of a controller. 291 properties: 292 apiVersion: 293 description: API version of the referent. 294 type: string 295 fieldPath: 296 description: |- 297 If referring to a piece of an object instead of an entire object, this string 298 should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 299 For example, if the object reference is to a container within a pod, this would take on a value like: 300 "spec.containers{name}" (where "name" refers to the name of the container that triggered 301 the event) or if no container name is specified "spec.containers[2]" (container with 302 index 2 in this pod). This syntax is chosen only to have some well-defined way of 303 referencing a part of an object. 304 TODO: this design is not final and this field is subject to change in the future. 305 type: string 306 kind: 307 description: |- 308 Kind of the referent. 309 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 310 type: string 311 name: 312 description: |- 313 Name of the referent. 314 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 315 type: string 316 namespace: 317 description: |- 318 Namespace of the referent. 319 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ 320 type: string 321 resourceVersion: 322 description: |- 323 Specific resourceVersion to which this reference is made, if any. 324 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency 325 type: string 326 uid: 327 description: |- 328 UID of the referent. 329 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids 330 type: string 331 type: object 332 x-kubernetes-map-type: atomic 333 data: 334 description: |- 335 Data contains the bootstrap data, such as cloud-init details scripts. 336 If nil, the Machine should remain in the Pending state. 337 338 339 Deprecated: Switch to DataSecretName. 340 type: string 341 dataSecretName: 342 description: |- 343 DataSecretName is the name of the secret that stores the bootstrap data script. 344 If nil, the Machine should remain in the Pending state. 345 type: string 346 type: object 347 clusterName: 348 description: ClusterName is the name of the Cluster this object 349 belongs to. 350 minLength: 1 351 type: string 352 failureDomain: 353 description: |- 354 FailureDomain is the failure domain the machine will be created in. 355 Must match a key in the FailureDomains map stored on the cluster object. 356 type: string 357 infrastructureRef: 358 description: |- 359 InfrastructureRef is a required reference to a custom resource 360 offered by an infrastructure provider. 361 properties: 362 apiVersion: 363 description: API version of the referent. 364 type: string 365 fieldPath: 366 description: |- 367 If referring to a piece of an object instead of an entire object, this string 368 should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 369 For example, if the object reference is to a container within a pod, this would take on a value like: 370 "spec.containers{name}" (where "name" refers to the name of the container that triggered 371 the event) or if no container name is specified "spec.containers[2]" (container with 372 index 2 in this pod). This syntax is chosen only to have some well-defined way of 373 referencing a part of an object. 374 TODO: this design is not final and this field is subject to change in the future. 375 type: string 376 kind: 377 description: |- 378 Kind of the referent. 379 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 380 type: string 381 name: 382 description: |- 383 Name of the referent. 384 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 385 type: string 386 namespace: 387 description: |- 388 Namespace of the referent. 389 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ 390 type: string 391 resourceVersion: 392 description: |- 393 Specific resourceVersion to which this reference is made, if any. 394 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency 395 type: string 396 uid: 397 description: |- 398 UID of the referent. 399 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids 400 type: string 401 type: object 402 x-kubernetes-map-type: atomic 403 nodeDrainTimeout: 404 description: |- 405 NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. 406 The default value is 0, meaning that the node can be drained without any time limitations. 407 NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` 408 type: string 409 providerID: 410 description: |- 411 ProviderID is the identification ID of the machine provided by the provider. 412 This field must match the provider ID as seen on the node object corresponding to this machine. 413 This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler 414 with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out 415 machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a 416 generic out-of-tree provider for autoscaler, this field is required by autoscaler to be 417 able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver 418 and then a comparison is done to find out unregistered machines and are marked for delete. 419 This field will be set by the actuators and consumed by higher level entities like autoscaler that will 420 be interfacing with cluster-api as generic provider. 421 type: string 422 version: 423 description: |- 424 Version defines the desired Kubernetes version. 425 This field is meant to be optionally used by bootstrap providers. 426 type: string 427 required: 428 - bootstrap 429 - clusterName 430 - infrastructureRef 431 type: object 432 type: object 433 required: 434 - clusterName 435 - selector 436 type: object 437 status: 438 description: MachineSetStatus defines the observed state of MachineSet. 439 properties: 440 availableReplicas: 441 description: The number of available replicas (ready for at least 442 minReadySeconds) for this MachineSet. 443 format: int32 444 type: integer 445 failureMessage: 446 type: string 447 failureReason: 448 description: |- 449 In the event that there is a terminal problem reconciling the 450 replicas, both FailureReason and FailureMessage will be set. FailureReason 451 will be populated with a succinct value suitable for machine 452 interpretation, while FailureMessage will contain a more verbose 453 string suitable for logging and human consumption. 454 455 456 These fields should not be set for transitive errors that a 457 controller faces that are expected to be fixed automatically over 458 time (like service outages), but instead indicate that something is 459 fundamentally wrong with the MachineTemplate's spec or the configuration of 460 the machine controller, and that manual intervention is required. Examples 461 of terminal errors would be invalid combinations of settings in the 462 spec, values that are unsupported by the machine controller, or the 463 responsible machine controller itself being critically misconfigured. 464 465 466 Any transient errors that occur during the reconciliation of Machines 467 can be added as events to the MachineSet object and/or logged in the 468 controller's output. 469 type: string 470 fullyLabeledReplicas: 471 description: The number of replicas that have labels matching the 472 labels of the machine template of the MachineSet. 473 format: int32 474 type: integer 475 observedGeneration: 476 description: ObservedGeneration reflects the generation of the most 477 recently observed MachineSet. 478 format: int64 479 type: integer 480 readyReplicas: 481 description: The number of ready replicas for this MachineSet. A machine 482 is considered ready when the node has been created and is "Ready". 483 format: int32 484 type: integer 485 replicas: 486 description: Replicas is the most recently observed number of replicas. 487 format: int32 488 type: integer 489 selector: 490 description: |- 491 Selector is the same as the label selector but in the string format to avoid introspection 492 by clients. The string will be in the same format as the query-param syntax. 493 More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors 494 type: string 495 type: object 496 type: object 497 served: false 498 storage: false 499 subresources: 500 scale: 501 labelSelectorPath: .status.selector 502 specReplicasPath: .spec.replicas 503 statusReplicasPath: .status.replicas 504 status: {} 505 - additionalPrinterColumns: 506 - description: Cluster 507 jsonPath: .spec.clusterName 508 name: Cluster 509 type: string 510 - description: Time duration since creation of MachineSet 511 jsonPath: .metadata.creationTimestamp 512 name: Age 513 type: date 514 - description: Total number of non-terminated machines targeted by this machineset 515 jsonPath: .status.replicas 516 name: Replicas 517 type: integer 518 - description: Total number of available machines (ready for at least minReadySeconds) 519 jsonPath: .status.availableReplicas 520 name: Available 521 type: integer 522 - description: Total number of ready machines targeted by this machineset. 523 jsonPath: .status.readyReplicas 524 name: Ready 525 type: integer 526 deprecated: true 527 name: v1alpha4 528 schema: 529 openAPIV3Schema: 530 description: |- 531 MachineSet is the Schema for the machinesets API. 532 533 534 Deprecated: This type will be removed in one of the next releases. 535 properties: 536 apiVersion: 537 description: |- 538 APIVersion defines the versioned schema of this representation of an object. 539 Servers should convert recognized schemas to the latest internal value, and 540 may reject unrecognized values. 541 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 542 type: string 543 kind: 544 description: |- 545 Kind is a string value representing the REST resource this object represents. 546 Servers may infer this from the endpoint the client submits requests to. 547 Cannot be updated. 548 In CamelCase. 549 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 550 type: string 551 metadata: 552 type: object 553 spec: 554 description: MachineSetSpec defines the desired state of MachineSet. 555 properties: 556 clusterName: 557 description: ClusterName is the name of the Cluster this object belongs 558 to. 559 minLength: 1 560 type: string 561 deletePolicy: 562 description: |- 563 DeletePolicy defines the policy used to identify nodes to delete when downscaling. 564 Defaults to "Random". Valid values are "Random, "Newest", "Oldest" 565 enum: 566 - Random 567 - Newest 568 - Oldest 569 type: string 570 minReadySeconds: 571 description: |- 572 MinReadySeconds is the minimum number of seconds for which a newly created machine should be ready. 573 Defaults to 0 (machine will be considered available as soon as it is ready) 574 format: int32 575 type: integer 576 replicas: 577 default: 1 578 description: |- 579 Replicas is the number of desired replicas. 580 This is a pointer to distinguish between explicit zero and unspecified. 581 Defaults to 1. 582 format: int32 583 type: integer 584 selector: 585 description: |- 586 Selector is a label query over machines that should match the replica count. 587 Label keys and values that must match in order to be controlled by this MachineSet. 588 It must match the machine template's labels. 589 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors 590 properties: 591 matchExpressions: 592 description: matchExpressions is a list of label selector requirements. 593 The requirements are ANDed. 594 items: 595 description: |- 596 A label selector requirement is a selector that contains values, a key, and an operator that 597 relates the key and values. 598 properties: 599 key: 600 description: key is the label key that the selector applies 601 to. 602 type: string 603 operator: 604 description: |- 605 operator represents a key's relationship to a set of values. 606 Valid operators are In, NotIn, Exists and DoesNotExist. 607 type: string 608 values: 609 description: |- 610 values is an array of string values. If the operator is In or NotIn, 611 the values array must be non-empty. If the operator is Exists or DoesNotExist, 612 the values array must be empty. This array is replaced during a strategic 613 merge patch. 614 items: 615 type: string 616 type: array 617 required: 618 - key 619 - operator 620 type: object 621 type: array 622 matchLabels: 623 additionalProperties: 624 type: string 625 description: |- 626 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 627 map is equivalent to an element of matchExpressions, whose key field is "key", the 628 operator is "In", and the values array contains only "value". The requirements are ANDed. 629 type: object 630 type: object 631 x-kubernetes-map-type: atomic 632 template: 633 description: |- 634 Template is the object that describes the machine that will be created if 635 insufficient replicas are detected. 636 Object references to custom resources are treated as templates. 637 properties: 638 metadata: 639 description: |- 640 Standard object's metadata. 641 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata 642 properties: 643 annotations: 644 additionalProperties: 645 type: string 646 description: |- 647 Annotations is an unstructured key value map stored with a resource that may be 648 set by external tools to store and retrieve arbitrary metadata. They are not 649 queryable and should be preserved when modifying objects. 650 More info: http://kubernetes.io/docs/user-guide/annotations 651 type: object 652 labels: 653 additionalProperties: 654 type: string 655 description: |- 656 Map of string keys and values that can be used to organize and categorize 657 (scope and select) objects. May match selectors of replication controllers 658 and services. 659 More info: http://kubernetes.io/docs/user-guide/labels 660 type: object 661 type: object 662 spec: 663 description: |- 664 Specification of the desired behavior of the machine. 665 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status 666 properties: 667 bootstrap: 668 description: |- 669 Bootstrap is a reference to a local struct which encapsulates 670 fields to configure the Machine’s bootstrapping mechanism. 671 properties: 672 configRef: 673 description: |- 674 ConfigRef is a reference to a bootstrap provider-specific resource 675 that holds configuration details. The reference is optional to 676 allow users/operators to specify Bootstrap.DataSecretName without 677 the need of a controller. 678 properties: 679 apiVersion: 680 description: API version of the referent. 681 type: string 682 fieldPath: 683 description: |- 684 If referring to a piece of an object instead of an entire object, this string 685 should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 686 For example, if the object reference is to a container within a pod, this would take on a value like: 687 "spec.containers{name}" (where "name" refers to the name of the container that triggered 688 the event) or if no container name is specified "spec.containers[2]" (container with 689 index 2 in this pod). This syntax is chosen only to have some well-defined way of 690 referencing a part of an object. 691 TODO: this design is not final and this field is subject to change in the future. 692 type: string 693 kind: 694 description: |- 695 Kind of the referent. 696 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 697 type: string 698 name: 699 description: |- 700 Name of the referent. 701 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 702 type: string 703 namespace: 704 description: |- 705 Namespace of the referent. 706 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ 707 type: string 708 resourceVersion: 709 description: |- 710 Specific resourceVersion to which this reference is made, if any. 711 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency 712 type: string 713 uid: 714 description: |- 715 UID of the referent. 716 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids 717 type: string 718 type: object 719 x-kubernetes-map-type: atomic 720 dataSecretName: 721 description: |- 722 DataSecretName is the name of the secret that stores the bootstrap data script. 723 If nil, the Machine should remain in the Pending state. 724 type: string 725 type: object 726 clusterName: 727 description: ClusterName is the name of the Cluster this object 728 belongs to. 729 minLength: 1 730 type: string 731 failureDomain: 732 description: |- 733 FailureDomain is the failure domain the machine will be created in. 734 Must match a key in the FailureDomains map stored on the cluster object. 735 type: string 736 infrastructureRef: 737 description: |- 738 InfrastructureRef is a required reference to a custom resource 739 offered by an infrastructure provider. 740 properties: 741 apiVersion: 742 description: API version of the referent. 743 type: string 744 fieldPath: 745 description: |- 746 If referring to a piece of an object instead of an entire object, this string 747 should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 748 For example, if the object reference is to a container within a pod, this would take on a value like: 749 "spec.containers{name}" (where "name" refers to the name of the container that triggered 750 the event) or if no container name is specified "spec.containers[2]" (container with 751 index 2 in this pod). This syntax is chosen only to have some well-defined way of 752 referencing a part of an object. 753 TODO: this design is not final and this field is subject to change in the future. 754 type: string 755 kind: 756 description: |- 757 Kind of the referent. 758 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 759 type: string 760 name: 761 description: |- 762 Name of the referent. 763 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 764 type: string 765 namespace: 766 description: |- 767 Namespace of the referent. 768 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ 769 type: string 770 resourceVersion: 771 description: |- 772 Specific resourceVersion to which this reference is made, if any. 773 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency 774 type: string 775 uid: 776 description: |- 777 UID of the referent. 778 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids 779 type: string 780 type: object 781 x-kubernetes-map-type: atomic 782 nodeDrainTimeout: 783 description: |- 784 NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. 785 The default value is 0, meaning that the node can be drained without any time limitations. 786 NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` 787 type: string 788 providerID: 789 description: |- 790 ProviderID is the identification ID of the machine provided by the provider. 791 This field must match the provider ID as seen on the node object corresponding to this machine. 792 This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler 793 with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out 794 machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a 795 generic out-of-tree provider for autoscaler, this field is required by autoscaler to be 796 able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver 797 and then a comparison is done to find out unregistered machines and are marked for delete. 798 This field will be set by the actuators and consumed by higher level entities like autoscaler that will 799 be interfacing with cluster-api as generic provider. 800 type: string 801 version: 802 description: |- 803 Version defines the desired Kubernetes version. 804 This field is meant to be optionally used by bootstrap providers. 805 type: string 806 required: 807 - bootstrap 808 - clusterName 809 - infrastructureRef 810 type: object 811 type: object 812 required: 813 - clusterName 814 - selector 815 type: object 816 status: 817 description: MachineSetStatus defines the observed state of MachineSet. 818 properties: 819 availableReplicas: 820 description: The number of available replicas (ready for at least 821 minReadySeconds) for this MachineSet. 822 format: int32 823 type: integer 824 conditions: 825 description: Conditions defines current service state of the MachineSet. 826 items: 827 description: Condition defines an observation of a Cluster API resource 828 operational state. 829 properties: 830 lastTransitionTime: 831 description: |- 832 Last time the condition transitioned from one status to another. 833 This should be when the underlying condition changed. If that is not known, then using the time when 834 the API field changed is acceptable. 835 format: date-time 836 type: string 837 message: 838 description: |- 839 A human readable message indicating details about the transition. 840 This field may be empty. 841 type: string 842 reason: 843 description: |- 844 The reason for the condition's last transition in CamelCase. 845 The specific API may choose whether or not this field is considered a guaranteed API. 846 This field may not be empty. 847 type: string 848 severity: 849 description: |- 850 Severity provides an explicit classification of Reason code, so the users or machines can immediately 851 understand the current situation and act accordingly. 852 The Severity field MUST be set only when Status=False. 853 type: string 854 status: 855 description: Status of the condition, one of True, False, Unknown. 856 type: string 857 type: 858 description: |- 859 Type of condition in CamelCase or in foo.example.com/CamelCase. 860 Many .condition.type values are consistent across resources like Available, but because arbitrary conditions 861 can be useful (see .node.status.conditions), the ability to deconflict is important. 862 type: string 863 required: 864 - status 865 - type 866 type: object 867 type: array 868 failureMessage: 869 type: string 870 failureReason: 871 description: |- 872 In the event that there is a terminal problem reconciling the 873 replicas, both FailureReason and FailureMessage will be set. FailureReason 874 will be populated with a succinct value suitable for machine 875 interpretation, while FailureMessage will contain a more verbose 876 string suitable for logging and human consumption. 877 878 879 These fields should not be set for transitive errors that a 880 controller faces that are expected to be fixed automatically over 881 time (like service outages), but instead indicate that something is 882 fundamentally wrong with the MachineTemplate's spec or the configuration of 883 the machine controller, and that manual intervention is required. Examples 884 of terminal errors would be invalid combinations of settings in the 885 spec, values that are unsupported by the machine controller, or the 886 responsible machine controller itself being critically misconfigured. 887 888 889 Any transient errors that occur during the reconciliation of Machines 890 can be added as events to the MachineSet object and/or logged in the 891 controller's output. 892 type: string 893 fullyLabeledReplicas: 894 description: The number of replicas that have labels matching the 895 labels of the machine template of the MachineSet. 896 format: int32 897 type: integer 898 observedGeneration: 899 description: ObservedGeneration reflects the generation of the most 900 recently observed MachineSet. 901 format: int64 902 type: integer 903 readyReplicas: 904 description: The number of ready replicas for this MachineSet. A machine 905 is considered ready when the node has been created and is "Ready". 906 format: int32 907 type: integer 908 replicas: 909 description: Replicas is the most recently observed number of replicas. 910 format: int32 911 type: integer 912 selector: 913 description: |- 914 Selector is the same as the label selector but in the string format to avoid introspection 915 by clients. The string will be in the same format as the query-param syntax. 916 More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors 917 type: string 918 type: object 919 type: object 920 served: false 921 storage: false 922 subresources: 923 scale: 924 labelSelectorPath: .status.selector 925 specReplicasPath: .spec.replicas 926 statusReplicasPath: .status.replicas 927 status: {} 928 - additionalPrinterColumns: 929 - description: Cluster 930 jsonPath: .spec.clusterName 931 name: Cluster 932 type: string 933 - description: Total number of machines desired by this machineset 934 jsonPath: .spec.replicas 935 name: Desired 936 priority: 10 937 type: integer 938 - description: Total number of non-terminated machines targeted by this machineset 939 jsonPath: .status.replicas 940 name: Replicas 941 type: integer 942 - description: Total number of ready machines targeted by this machineset. 943 jsonPath: .status.readyReplicas 944 name: Ready 945 type: integer 946 - description: Total number of available machines (ready for at least minReadySeconds) 947 jsonPath: .status.availableReplicas 948 name: Available 949 type: integer 950 - description: Time duration since creation of MachineSet 951 jsonPath: .metadata.creationTimestamp 952 name: Age 953 type: date 954 - description: Kubernetes version associated with this MachineSet 955 jsonPath: .spec.template.spec.version 956 name: Version 957 type: string 958 name: v1beta1 959 schema: 960 openAPIV3Schema: 961 description: MachineSet is the Schema for the machinesets API. 962 properties: 963 apiVersion: 964 description: |- 965 APIVersion defines the versioned schema of this representation of an object. 966 Servers should convert recognized schemas to the latest internal value, and 967 may reject unrecognized values. 968 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 969 type: string 970 kind: 971 description: |- 972 Kind is a string value representing the REST resource this object represents. 973 Servers may infer this from the endpoint the client submits requests to. 974 Cannot be updated. 975 In CamelCase. 976 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 977 type: string 978 metadata: 979 type: object 980 spec: 981 description: MachineSetSpec defines the desired state of MachineSet. 982 properties: 983 clusterName: 984 description: ClusterName is the name of the Cluster this object belongs 985 to. 986 minLength: 1 987 type: string 988 deletePolicy: 989 description: |- 990 DeletePolicy defines the policy used to identify nodes to delete when downscaling. 991 Defaults to "Random". Valid values are "Random, "Newest", "Oldest" 992 enum: 993 - Random 994 - Newest 995 - Oldest 996 type: string 997 minReadySeconds: 998 description: |- 999 MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. 1000 Defaults to 0 (machine will be considered available as soon as the Node is ready) 1001 format: int32 1002 type: integer 1003 replicas: 1004 description: |- 1005 Replicas is the number of desired replicas. 1006 This is a pointer to distinguish between explicit zero and unspecified. 1007 1008 1009 Defaults to: 1010 * if the Kubernetes autoscaler min size and max size annotations are set: 1011 - if it's a new MachineSet, use min size 1012 - if the replicas field of the old MachineSet is < min size, use min size 1013 - if the replicas field of the old MachineSet is > max size, use max size 1014 - if the replicas field of the old MachineSet is in the (min size, max size) range, keep the value from the oldMS 1015 * otherwise use 1 1016 Note: Defaulting will be run whenever the replicas field is not set: 1017 * A new MachineSet is created with replicas not set. 1018 * On an existing MachineSet the replicas field was first set and is now unset. 1019 Those cases are especially relevant for the following Kubernetes autoscaler use cases: 1020 * A new MachineSet is created and replicas should be managed by the autoscaler 1021 * An existing MachineSet which initially wasn't controlled by the autoscaler 1022 should be later controlled by the autoscaler 1023 format: int32 1024 type: integer 1025 selector: 1026 description: |- 1027 Selector is a label query over machines that should match the replica count. 1028 Label keys and values that must match in order to be controlled by this MachineSet. 1029 It must match the machine template's labels. 1030 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors 1031 properties: 1032 matchExpressions: 1033 description: matchExpressions is a list of label selector requirements. 1034 The requirements are ANDed. 1035 items: 1036 description: |- 1037 A label selector requirement is a selector that contains values, a key, and an operator that 1038 relates the key and values. 1039 properties: 1040 key: 1041 description: key is the label key that the selector applies 1042 to. 1043 type: string 1044 operator: 1045 description: |- 1046 operator represents a key's relationship to a set of values. 1047 Valid operators are In, NotIn, Exists and DoesNotExist. 1048 type: string 1049 values: 1050 description: |- 1051 values is an array of string values. If the operator is In or NotIn, 1052 the values array must be non-empty. If the operator is Exists or DoesNotExist, 1053 the values array must be empty. This array is replaced during a strategic 1054 merge patch. 1055 items: 1056 type: string 1057 type: array 1058 required: 1059 - key 1060 - operator 1061 type: object 1062 type: array 1063 matchLabels: 1064 additionalProperties: 1065 type: string 1066 description: |- 1067 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 1068 map is equivalent to an element of matchExpressions, whose key field is "key", the 1069 operator is "In", and the values array contains only "value". The requirements are ANDed. 1070 type: object 1071 type: object 1072 x-kubernetes-map-type: atomic 1073 template: 1074 description: |- 1075 Template is the object that describes the machine that will be created if 1076 insufficient replicas are detected. 1077 Object references to custom resources are treated as templates. 1078 properties: 1079 metadata: 1080 description: |- 1081 Standard object's metadata. 1082 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata 1083 properties: 1084 annotations: 1085 additionalProperties: 1086 type: string 1087 description: |- 1088 Annotations is an unstructured key value map stored with a resource that may be 1089 set by external tools to store and retrieve arbitrary metadata. They are not 1090 queryable and should be preserved when modifying objects. 1091 More info: http://kubernetes.io/docs/user-guide/annotations 1092 type: object 1093 labels: 1094 additionalProperties: 1095 type: string 1096 description: |- 1097 Map of string keys and values that can be used to organize and categorize 1098 (scope and select) objects. May match selectors of replication controllers 1099 and services. 1100 More info: http://kubernetes.io/docs/user-guide/labels 1101 type: object 1102 type: object 1103 spec: 1104 description: |- 1105 Specification of the desired behavior of the machine. 1106 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status 1107 properties: 1108 bootstrap: 1109 description: |- 1110 Bootstrap is a reference to a local struct which encapsulates 1111 fields to configure the Machine’s bootstrapping mechanism. 1112 properties: 1113 configRef: 1114 description: |- 1115 ConfigRef is a reference to a bootstrap provider-specific resource 1116 that holds configuration details. The reference is optional to 1117 allow users/operators to specify Bootstrap.DataSecretName without 1118 the need of a controller. 1119 properties: 1120 apiVersion: 1121 description: API version of the referent. 1122 type: string 1123 fieldPath: 1124 description: |- 1125 If referring to a piece of an object instead of an entire object, this string 1126 should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 1127 For example, if the object reference is to a container within a pod, this would take on a value like: 1128 "spec.containers{name}" (where "name" refers to the name of the container that triggered 1129 the event) or if no container name is specified "spec.containers[2]" (container with 1130 index 2 in this pod). This syntax is chosen only to have some well-defined way of 1131 referencing a part of an object. 1132 TODO: this design is not final and this field is subject to change in the future. 1133 type: string 1134 kind: 1135 description: |- 1136 Kind of the referent. 1137 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 1138 type: string 1139 name: 1140 description: |- 1141 Name of the referent. 1142 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1143 type: string 1144 namespace: 1145 description: |- 1146 Namespace of the referent. 1147 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ 1148 type: string 1149 resourceVersion: 1150 description: |- 1151 Specific resourceVersion to which this reference is made, if any. 1152 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency 1153 type: string 1154 uid: 1155 description: |- 1156 UID of the referent. 1157 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids 1158 type: string 1159 type: object 1160 x-kubernetes-map-type: atomic 1161 dataSecretName: 1162 description: |- 1163 DataSecretName is the name of the secret that stores the bootstrap data script. 1164 If nil, the Machine should remain in the Pending state. 1165 type: string 1166 type: object 1167 clusterName: 1168 description: ClusterName is the name of the Cluster this object 1169 belongs to. 1170 minLength: 1 1171 type: string 1172 failureDomain: 1173 description: |- 1174 FailureDomain is the failure domain the machine will be created in. 1175 Must match a key in the FailureDomains map stored on the cluster object. 1176 type: string 1177 infrastructureRef: 1178 description: |- 1179 InfrastructureRef is a required reference to a custom resource 1180 offered by an infrastructure provider. 1181 properties: 1182 apiVersion: 1183 description: API version of the referent. 1184 type: string 1185 fieldPath: 1186 description: |- 1187 If referring to a piece of an object instead of an entire object, this string 1188 should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 1189 For example, if the object reference is to a container within a pod, this would take on a value like: 1190 "spec.containers{name}" (where "name" refers to the name of the container that triggered 1191 the event) or if no container name is specified "spec.containers[2]" (container with 1192 index 2 in this pod). This syntax is chosen only to have some well-defined way of 1193 referencing a part of an object. 1194 TODO: this design is not final and this field is subject to change in the future. 1195 type: string 1196 kind: 1197 description: |- 1198 Kind of the referent. 1199 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 1200 type: string 1201 name: 1202 description: |- 1203 Name of the referent. 1204 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1205 type: string 1206 namespace: 1207 description: |- 1208 Namespace of the referent. 1209 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ 1210 type: string 1211 resourceVersion: 1212 description: |- 1213 Specific resourceVersion to which this reference is made, if any. 1214 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency 1215 type: string 1216 uid: 1217 description: |- 1218 UID of the referent. 1219 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids 1220 type: string 1221 type: object 1222 x-kubernetes-map-type: atomic 1223 nodeDeletionTimeout: 1224 description: |- 1225 NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine 1226 hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. 1227 Defaults to 10 seconds. 1228 type: string 1229 nodeDrainTimeout: 1230 description: |- 1231 NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. 1232 The default value is 0, meaning that the node can be drained without any time limitations. 1233 NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` 1234 type: string 1235 nodeVolumeDetachTimeout: 1236 description: |- 1237 NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes 1238 to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. 1239 type: string 1240 providerID: 1241 description: |- 1242 ProviderID is the identification ID of the machine provided by the provider. 1243 This field must match the provider ID as seen on the node object corresponding to this machine. 1244 This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler 1245 with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out 1246 machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a 1247 generic out-of-tree provider for autoscaler, this field is required by autoscaler to be 1248 able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver 1249 and then a comparison is done to find out unregistered machines and are marked for delete. 1250 This field will be set by the actuators and consumed by higher level entities like autoscaler that will 1251 be interfacing with cluster-api as generic provider. 1252 type: string 1253 version: 1254 description: |- 1255 Version defines the desired Kubernetes version. 1256 This field is meant to be optionally used by bootstrap providers. 1257 type: string 1258 required: 1259 - bootstrap 1260 - clusterName 1261 - infrastructureRef 1262 type: object 1263 type: object 1264 required: 1265 - clusterName 1266 - selector 1267 type: object 1268 status: 1269 description: MachineSetStatus defines the observed state of MachineSet. 1270 properties: 1271 availableReplicas: 1272 description: The number of available replicas (ready for at least 1273 minReadySeconds) for this MachineSet. 1274 format: int32 1275 type: integer 1276 conditions: 1277 description: Conditions defines current service state of the MachineSet. 1278 items: 1279 description: Condition defines an observation of a Cluster API resource 1280 operational state. 1281 properties: 1282 lastTransitionTime: 1283 description: |- 1284 Last time the condition transitioned from one status to another. 1285 This should be when the underlying condition changed. If that is not known, then using the time when 1286 the API field changed is acceptable. 1287 format: date-time 1288 type: string 1289 message: 1290 description: |- 1291 A human readable message indicating details about the transition. 1292 This field may be empty. 1293 type: string 1294 reason: 1295 description: |- 1296 The reason for the condition's last transition in CamelCase. 1297 The specific API may choose whether or not this field is considered a guaranteed API. 1298 This field may not be empty. 1299 type: string 1300 severity: 1301 description: |- 1302 Severity provides an explicit classification of Reason code, so the users or machines can immediately 1303 understand the current situation and act accordingly. 1304 The Severity field MUST be set only when Status=False. 1305 type: string 1306 status: 1307 description: Status of the condition, one of True, False, Unknown. 1308 type: string 1309 type: 1310 description: |- 1311 Type of condition in CamelCase or in foo.example.com/CamelCase. 1312 Many .condition.type values are consistent across resources like Available, but because arbitrary conditions 1313 can be useful (see .node.status.conditions), the ability to deconflict is important. 1314 type: string 1315 required: 1316 - lastTransitionTime 1317 - status 1318 - type 1319 type: object 1320 type: array 1321 failureMessage: 1322 type: string 1323 failureReason: 1324 description: |- 1325 In the event that there is a terminal problem reconciling the 1326 replicas, both FailureReason and FailureMessage will be set. FailureReason 1327 will be populated with a succinct value suitable for machine 1328 interpretation, while FailureMessage will contain a more verbose 1329 string suitable for logging and human consumption. 1330 1331 1332 These fields should not be set for transitive errors that a 1333 controller faces that are expected to be fixed automatically over 1334 time (like service outages), but instead indicate that something is 1335 fundamentally wrong with the MachineTemplate's spec or the configuration of 1336 the machine controller, and that manual intervention is required. Examples 1337 of terminal errors would be invalid combinations of settings in the 1338 spec, values that are unsupported by the machine controller, or the 1339 responsible machine controller itself being critically misconfigured. 1340 1341 1342 Any transient errors that occur during the reconciliation of Machines 1343 can be added as events to the MachineSet object and/or logged in the 1344 controller's output. 1345 type: string 1346 fullyLabeledReplicas: 1347 description: The number of replicas that have labels matching the 1348 labels of the machine template of the MachineSet. 1349 format: int32 1350 type: integer 1351 observedGeneration: 1352 description: ObservedGeneration reflects the generation of the most 1353 recently observed MachineSet. 1354 format: int64 1355 type: integer 1356 readyReplicas: 1357 description: The number of ready replicas for this MachineSet. A machine 1358 is considered ready when the node has been created and is "Ready". 1359 format: int32 1360 type: integer 1361 replicas: 1362 description: Replicas is the most recently observed number of replicas. 1363 format: int32 1364 type: integer 1365 selector: 1366 description: |- 1367 Selector is the same as the label selector but in the string format to avoid introspection 1368 by clients. The string will be in the same format as the query-param syntax. 1369 More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors 1370 type: string 1371 type: object 1372 type: object 1373 served: true 1374 storage: true 1375 subresources: 1376 scale: 1377 labelSelectorPath: .status.selector 1378 specReplicasPath: .spec.replicas 1379 statusReplicasPath: .status.replicas 1380 status: {}