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