github.com/giantswarm/apiextensions/v2@v2.6.2/config/crd/v1/cluster.x-k8s.io_machinedeployments.yaml (about) 1 2 --- 3 apiVersion: apiextensions.k8s.io/v1 4 kind: CustomResourceDefinition 5 metadata: 6 annotations: 7 controller-gen.kubebuilder.io/version: v0.2.4 8 creationTimestamp: null 9 name: machinedeployments.cluster.x-k8s.io 10 spec: 11 group: cluster.x-k8s.io 12 names: 13 categories: 14 - cluster-api 15 kind: MachineDeployment 16 listKind: MachineDeploymentList 17 plural: machinedeployments 18 shortNames: 19 - md 20 singular: machinedeployment 21 scope: Namespaced 22 versions: 23 - name: v1alpha2 24 schema: 25 openAPIV3Schema: 26 description: MachineDeployment is the Schema for the machinedeployments API 27 properties: 28 apiVersion: 29 description: 'APIVersion defines the versioned schema of this representation 30 of an object. Servers should convert recognized schemas to the latest 31 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 32 type: string 33 kind: 34 description: 'Kind is a string value representing the REST resource this 35 object represents. Servers may infer this from the endpoint the client 36 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 37 type: string 38 metadata: 39 type: object 40 spec: 41 description: MachineDeploymentSpec defines the desired state of MachineDeployment 42 properties: 43 minReadySeconds: 44 description: Minimum number of seconds for which a newly created machine 45 should be ready. Defaults to 0 (machine will be considered available 46 as soon as it is ready) 47 format: int32 48 type: integer 49 paused: 50 description: Indicates that the deployment is paused. 51 type: boolean 52 progressDeadlineSeconds: 53 description: The maximum time in seconds for a deployment to make 54 progress before it is considered to be failed. The deployment controller 55 will continue to process failed deployments and a condition with 56 a ProgressDeadlineExceeded reason will be surfaced in the deployment 57 status. Note that progress will not be estimated during the time 58 a deployment is paused. Defaults to 600s. 59 format: int32 60 type: integer 61 replicas: 62 description: Number of desired machines. Defaults to 1. This is a 63 pointer to distinguish between explicit zero and not specified. 64 format: int32 65 type: integer 66 revisionHistoryLimit: 67 description: The number of old MachineSets to retain to allow rollback. 68 This is a pointer to distinguish between explicit zero and not specified. 69 Defaults to 1. 70 format: int32 71 type: integer 72 selector: 73 description: Label selector for machines. Existing MachineSets whose 74 machines are selected by this will be the ones affected by this 75 deployment. It must match the machine template's labels. 76 properties: 77 matchExpressions: 78 description: matchExpressions is a list of label selector requirements. 79 The requirements are ANDed. 80 items: 81 description: A label selector requirement is a selector that 82 contains values, a key, and an operator that relates the key 83 and values. 84 properties: 85 key: 86 description: key is the label key that the selector applies 87 to. 88 type: string 89 operator: 90 description: operator represents a key's relationship to 91 a set of values. Valid operators are In, NotIn, Exists 92 and DoesNotExist. 93 type: string 94 values: 95 description: values is an array of string values. If the 96 operator is In or NotIn, the values array must be non-empty. 97 If the operator is Exists or DoesNotExist, the values 98 array must be empty. This array is replaced during a strategic 99 merge patch. 100 items: 101 type: string 102 type: array 103 required: 104 - key 105 - operator 106 type: object 107 type: array 108 matchLabels: 109 additionalProperties: 110 type: string 111 description: matchLabels is a map of {key,value} pairs. A single 112 {key,value} in the matchLabels map is equivalent to an element 113 of matchExpressions, whose key field is "key", the operator 114 is "In", and the values array contains only "value". The requirements 115 are ANDed. 116 type: object 117 type: object 118 strategy: 119 description: The deployment strategy to use to replace existing machines 120 with new ones. 121 properties: 122 rollingUpdate: 123 description: Rolling update config params. Present only if MachineDeploymentStrategyType 124 = RollingUpdate. 125 properties: 126 maxSurge: 127 anyOf: 128 - type: integer 129 - type: string 130 description: 'The maximum number of machines that can be scheduled 131 above the desired number of machines. Value can be an absolute 132 number (ex: 5) or a percentage of desired machines (ex: 133 10%). This can not be 0 if MaxUnavailable is 0. Absolute 134 number is calculated from percentage by rounding up. Defaults 135 to 1. Example: when this is set to 30%, the new MachineSet 136 can be scaled up immediately when the rolling update starts, 137 such that the total number of old and new machines do not 138 exceed 130% of desired machines. Once old machines have 139 been killed, new MachineSet can be scaled up further, ensuring 140 that total number of machines running at any time during 141 the update is at most 130% of desired machines.' 142 x-kubernetes-int-or-string: true 143 maxUnavailable: 144 anyOf: 145 - type: integer 146 - type: string 147 description: 'The maximum number of machines that can be unavailable 148 during the update. Value can be an absolute number (ex: 149 5) or a percentage of desired machines (ex: 10%). Absolute 150 number is calculated from percentage by rounding down. This 151 can not be 0 if MaxSurge is 0. Defaults to 0. Example: when 152 this is set to 30%, the old MachineSet can be scaled down 153 to 70% of desired machines immediately when the rolling 154 update starts. Once new machines are ready, old MachineSet 155 can be scaled down further, followed by scaling up the new 156 MachineSet, ensuring that the total number of machines available 157 at all times during the update is at least 70% of desired 158 machines.' 159 x-kubernetes-int-or-string: true 160 type: object 161 type: 162 description: Type of deployment. Currently the only supported 163 strategy is "RollingUpdate". Default is RollingUpdate. 164 type: string 165 type: object 166 template: 167 description: Template describes the machines that will be created. 168 properties: 169 metadata: 170 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' 171 properties: 172 annotations: 173 additionalProperties: 174 type: string 175 description: 'Annotations is an unstructured key value map 176 stored with a resource that may be set by external tools 177 to store and retrieve arbitrary metadata. They are not queryable 178 and should be preserved when modifying objects. More info: 179 http://kubernetes.io/docs/user-guide/annotations' 180 type: object 181 generateName: 182 description: "GenerateName is an optional prefix, used by 183 the server, to generate a unique name ONLY IF the Name field 184 has not been provided. If this field is used, the name returned 185 to the client will be different than the name passed. This 186 value will also be combined with a unique suffix. The provided 187 value has the same validation rules as the Name field, and 188 may be truncated by the length of the suffix required to 189 make the value unique on the server. \n If this field is 190 specified and the generated name exists, the server will 191 NOT return a 409 - instead, it will either return 201 Created 192 or 500 with Reason ServerTimeout indicating a unique name 193 could not be found in the time allotted, and the client 194 should retry (optionally after the time indicated in the 195 Retry-After header). \n Applied only if Name is not specified. 196 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" 197 type: string 198 labels: 199 additionalProperties: 200 type: string 201 description: 'Map of string keys and values that can be used 202 to organize and categorize (scope and select) objects. May 203 match selectors of replication controllers and services. 204 More info: http://kubernetes.io/docs/user-guide/labels' 205 type: object 206 name: 207 description: 'Name must be unique within a namespace. Is required 208 when creating resources, although some resources may allow 209 a client to request the generation of an appropriate name 210 automatically. Name is primarily intended for creation idempotence 211 and configuration definition. Cannot be updated. More info: 212 http://kubernetes.io/docs/user-guide/identifiers#names' 213 type: string 214 namespace: 215 description: "Namespace defines the space within each name 216 must be unique. An empty namespace is equivalent to the 217 \"default\" namespace, but \"default\" is the canonical 218 representation. Not all objects are required to be scoped 219 to a namespace - the value of this field for those objects 220 will be empty. \n Must be a DNS_LABEL. Cannot be updated. 221 More info: http://kubernetes.io/docs/user-guide/namespaces" 222 type: string 223 ownerReferences: 224 description: List of objects depended by this object. If ALL 225 objects in the list have been deleted, this object will 226 be garbage collected. If this object is managed by a controller, 227 then an entry in this list will point to this controller, 228 with the controller field set to true. There cannot be more 229 than one managing controller. 230 items: 231 description: OwnerReference contains enough information 232 to let you identify an owning object. An owning object 233 must be in the same namespace as the dependent, or be 234 cluster-scoped, so there is no namespace field. 235 properties: 236 apiVersion: 237 description: API version of the referent. 238 type: string 239 blockOwnerDeletion: 240 description: If true, AND if the owner has the "foregroundDeletion" 241 finalizer, then the owner cannot be deleted from the 242 key-value store until this reference is removed. Defaults 243 to false. To set this field, a user needs "delete" 244 permission of the owner, otherwise 422 (Unprocessable 245 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: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 253 type: string 254 name: 255 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 256 type: string 257 uid: 258 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 259 type: string 260 required: 261 - apiVersion 262 - kind 263 - name 264 - uid 265 type: object 266 type: array 267 type: object 268 spec: 269 description: 'Specification of the desired behavior of the machine. 270 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' 271 properties: 272 bootstrap: 273 description: Bootstrap is a reference to a local struct which 274 encapsulates fields to configure the Machine’s bootstrapping 275 mechanism. 276 properties: 277 configRef: 278 description: ConfigRef is a reference to a bootstrap provider-specific 279 resource that holds configuration details. The reference 280 is optional to allow users/operators to specify Bootstrap.Data 281 without the need of a controller. 282 properties: 283 apiVersion: 284 description: API version of the referent. 285 type: string 286 fieldPath: 287 description: 'If referring to a piece of an object 288 instead of an entire object, this string should 289 contain a valid JSON/Go field access statement, 290 such as desiredState.manifest.containers[2]. For 291 example, if the object reference is to a container 292 within a pod, this would take on a value like: "spec.containers{name}" 293 (where "name" refers to the name of the container 294 that triggered the event) or if no container name 295 is specified "spec.containers[2]" (container with 296 index 2 in this pod). This syntax is chosen only 297 to have some well-defined way of referencing a part 298 of an object. TODO: this design is not final and 299 this field is subject to change in the future.' 300 type: string 301 kind: 302 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 303 type: string 304 name: 305 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 306 type: string 307 namespace: 308 description: 'Namespace of the referent. More info: 309 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 310 type: string 311 resourceVersion: 312 description: 'Specific resourceVersion to which this 313 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 314 type: string 315 uid: 316 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 317 type: string 318 type: object 319 data: 320 description: Data contains the bootstrap data, such as 321 cloud-init details scripts. If nil, the Machine should 322 remain in the Pending state. 323 type: string 324 type: object 325 infrastructureRef: 326 description: InfrastructureRef is a required reference to 327 a custom resource offered by an infrastructure provider. 328 properties: 329 apiVersion: 330 description: API version of the referent. 331 type: string 332 fieldPath: 333 description: 'If referring to a piece of an object instead 334 of an entire object, this string should contain a valid 335 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 336 For example, if the object reference is to a container 337 within a pod, this would take on a value like: "spec.containers{name}" 338 (where "name" refers to the name of the container that 339 triggered the event) or if no container name is specified 340 "spec.containers[2]" (container with index 2 in this 341 pod). This syntax is chosen only to have some well-defined 342 way of referencing a part of an object. TODO: this design 343 is not final and this field is subject to change in 344 the future.' 345 type: string 346 kind: 347 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 348 type: string 349 name: 350 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 351 type: string 352 namespace: 353 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 354 type: string 355 resourceVersion: 356 description: 'Specific resourceVersion to which this reference 357 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 358 type: string 359 uid: 360 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 361 type: string 362 type: object 363 metadata: 364 description: 'DEPRECATED: ObjectMeta has no function and isn''t 365 used anywhere.' 366 properties: 367 annotations: 368 additionalProperties: 369 type: string 370 description: 'Annotations is an unstructured key value 371 map stored with a resource that may be set by external 372 tools to store and retrieve arbitrary metadata. They 373 are not queryable and should be preserved when modifying 374 objects. More info: http://kubernetes.io/docs/user-guide/annotations' 375 type: object 376 generateName: 377 description: "GenerateName is an optional prefix, used 378 by the server, to generate a unique name ONLY IF the 379 Name field has not been provided. If this field is used, 380 the name returned to the client will be different than 381 the name passed. This value will also be combined with 382 a unique suffix. The provided value has the same validation 383 rules as the Name field, and may be truncated by the 384 length of the suffix required to make the value unique 385 on the server. \n If this field is specified and the 386 generated name exists, the server will NOT return a 387 409 - instead, it will either return 201 Created or 388 500 with Reason ServerTimeout indicating a unique name 389 could not be found in the time allotted, and the client 390 should retry (optionally after the time indicated in 391 the Retry-After header). \n Applied only if Name is 392 not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" 393 type: string 394 labels: 395 additionalProperties: 396 type: string 397 description: 'Map of string keys and values that can be 398 used to organize and categorize (scope and select) objects. 399 May match selectors of replication controllers and services. 400 More info: http://kubernetes.io/docs/user-guide/labels' 401 type: object 402 name: 403 description: 'Name must be unique within a namespace. 404 Is required when creating resources, although some resources 405 may allow a client to request the generation of an appropriate 406 name automatically. Name is primarily intended for creation 407 idempotence and configuration definition. Cannot be 408 updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 409 type: string 410 namespace: 411 description: "Namespace defines the space within each 412 name must be unique. An empty namespace is equivalent 413 to the \"default\" namespace, but \"default\" is the 414 canonical representation. Not all objects are required 415 to be scoped to a namespace - the value of this field 416 for those objects will be empty. \n Must be a DNS_LABEL. 417 Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" 418 type: string 419 ownerReferences: 420 description: List of objects depended by this object. 421 If ALL objects in the list have been deleted, this object 422 will be garbage collected. If this object is managed 423 by a controller, then an entry in this list will point 424 to this controller, with the controller field set to 425 true. There cannot be more than one managing controller. 426 items: 427 description: OwnerReference contains enough information 428 to let you identify an owning object. An owning object 429 must be in the same namespace as the dependent, or 430 be cluster-scoped, so there is no namespace field. 431 properties: 432 apiVersion: 433 description: API version of the referent. 434 type: string 435 blockOwnerDeletion: 436 description: If true, AND if the owner has the "foregroundDeletion" 437 finalizer, then the owner cannot be deleted from 438 the key-value store until this reference is removed. 439 Defaults to false. To set this field, a user needs 440 "delete" permission of the owner, otherwise 422 441 (Unprocessable Entity) will be returned. 442 type: boolean 443 controller: 444 description: If true, this reference points to the 445 managing controller. 446 type: boolean 447 kind: 448 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 449 type: string 450 name: 451 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 452 type: string 453 uid: 454 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 455 type: string 456 required: 457 - apiVersion 458 - kind 459 - name 460 - uid 461 type: object 462 type: array 463 type: object 464 providerID: 465 description: ProviderID is the identification ID of the machine 466 provided by the provider. This field must match the provider 467 ID as seen on the node object corresponding to this machine. 468 This field is required by higher level consumers of cluster-api. 469 Example use case is cluster autoscaler with cluster-api 470 as provider. Clean-up logic in the autoscaler compares machines 471 to nodes to find out machines at provider which could not 472 get registered as Kubernetes nodes. With cluster-api as 473 a generic out-of-tree provider for autoscaler, this field 474 is required by autoscaler to be able to have a provider 475 view of the list of machines. Another list of nodes is queried 476 from the k8s apiserver and then a comparison is done to 477 find out unregistered machines and are marked for delete. 478 This field will be set by the actuators and consumed by 479 higher level entities like autoscaler that will be interfacing 480 with cluster-api as generic provider. 481 type: string 482 version: 483 description: Version defines the desired Kubernetes version. 484 This field is meant to be optionally used by bootstrap providers. 485 type: string 486 required: 487 - bootstrap 488 - infrastructureRef 489 type: object 490 type: object 491 required: 492 - selector 493 - template 494 type: object 495 status: 496 description: MachineDeploymentStatus defines the observed state of MachineDeployment 497 properties: 498 availableReplicas: 499 description: Total number of available machines (ready for at least 500 minReadySeconds) targeted by this deployment. 501 format: int32 502 type: integer 503 observedGeneration: 504 description: The generation observed by the deployment controller. 505 format: int64 506 type: integer 507 readyReplicas: 508 description: Total number of ready machines targeted by this deployment. 509 format: int32 510 type: integer 511 replicas: 512 description: Total number of non-terminated machines targeted by this 513 deployment (their labels match the selector). 514 format: int32 515 type: integer 516 selector: 517 description: 'Selector is the same as the label selector but in the 518 string format to avoid introspection by clients. The string will 519 be in the same format as the query-param syntax. More info about 520 label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' 521 type: string 522 unavailableReplicas: 523 description: Total number of unavailable machines targeted by this 524 deployment. This is the total number of machines that are still 525 required for the deployment to have 100% available capacity. They 526 may either be machines that are running but not yet available or 527 machines that still have not been created. 528 format: int32 529 type: integer 530 updatedReplicas: 531 description: Total number of non-terminated machines targeted by this 532 deployment that have the desired template spec. 533 format: int32 534 type: integer 535 type: object 536 type: object 537 served: true 538 storage: false 539 subresources: 540 scale: 541 labelSelectorPath: .status.selector 542 specReplicasPath: .spec.replicas 543 statusReplicasPath: .status.replicas 544 status: {} 545 - additionalPrinterColumns: 546 - description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown 547 jsonPath: .status.phase 548 name: Phase 549 type: string 550 - description: Total number of non-terminated machines targeted by this MachineDeployment 551 jsonPath: .status.replicas 552 name: Replicas 553 type: integer 554 - description: Total number of ready machines targeted by this MachineDeployment 555 jsonPath: .status.readyReplicas 556 name: Ready 557 type: integer 558 - description: Total number of non-terminated machines targeted by this deployment 559 that have the desired template spec 560 jsonPath: .status.updatedReplicas 561 name: Updated 562 type: integer 563 - description: Total number of unavailable machines targeted by this MachineDeployment 564 jsonPath: .status.unavailableReplicas 565 name: Unavailable 566 type: integer 567 name: v1alpha3 568 schema: 569 openAPIV3Schema: 570 description: MachineDeployment is the Schema for the machinedeployments API 571 properties: 572 apiVersion: 573 description: 'APIVersion defines the versioned schema of this representation 574 of an object. Servers should convert recognized schemas to the latest 575 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 576 type: string 577 kind: 578 description: 'Kind is a string value representing the REST resource this 579 object represents. Servers may infer this from the endpoint the client 580 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 581 type: string 582 metadata: 583 type: object 584 spec: 585 description: MachineDeploymentSpec defines the desired state of MachineDeployment 586 properties: 587 clusterName: 588 description: ClusterName is the name of the Cluster this object belongs 589 to. 590 minLength: 1 591 type: string 592 minReadySeconds: 593 description: Minimum number of seconds for which a newly created machine 594 should be ready. Defaults to 0 (machine will be considered available 595 as soon as it is ready) 596 format: int32 597 type: integer 598 paused: 599 description: Indicates that the deployment is paused. 600 type: boolean 601 progressDeadlineSeconds: 602 description: The maximum time in seconds for a deployment to make 603 progress before it is considered to be failed. The deployment controller 604 will continue to process failed deployments and a condition with 605 a ProgressDeadlineExceeded reason will be surfaced in the deployment 606 status. Note that progress will not be estimated during the time 607 a deployment is paused. Defaults to 600s. 608 format: int32 609 type: integer 610 replicas: 611 description: Number of desired machines. Defaults to 1. This is a 612 pointer to distinguish between explicit zero and not specified. 613 format: int32 614 type: integer 615 revisionHistoryLimit: 616 description: The number of old MachineSets to retain to allow rollback. 617 This is a pointer to distinguish between explicit zero and not specified. 618 Defaults to 1. 619 format: int32 620 type: integer 621 selector: 622 description: Label selector for machines. Existing MachineSets whose 623 machines are selected by this will be the ones affected by this 624 deployment. It must match the machine template's labels. 625 properties: 626 matchExpressions: 627 description: matchExpressions is a list of label selector requirements. 628 The requirements are ANDed. 629 items: 630 description: A label selector requirement is a selector that 631 contains values, a key, and an operator that relates the key 632 and values. 633 properties: 634 key: 635 description: key is the label key that the selector applies 636 to. 637 type: string 638 operator: 639 description: operator represents a key's relationship to 640 a set of values. Valid operators are In, NotIn, Exists 641 and DoesNotExist. 642 type: string 643 values: 644 description: values is an array of string values. If the 645 operator is In or NotIn, the values array must be non-empty. 646 If the operator is Exists or DoesNotExist, the values 647 array must be empty. This array is replaced during a strategic 648 merge patch. 649 items: 650 type: string 651 type: array 652 required: 653 - key 654 - operator 655 type: object 656 type: array 657 matchLabels: 658 additionalProperties: 659 type: string 660 description: matchLabels is a map of {key,value} pairs. A single 661 {key,value} in the matchLabels map is equivalent to an element 662 of matchExpressions, whose key field is "key", the operator 663 is "In", and the values array contains only "value". The requirements 664 are ANDed. 665 type: object 666 type: object 667 strategy: 668 description: The deployment strategy to use to replace existing machines 669 with new ones. 670 properties: 671 rollingUpdate: 672 description: Rolling update config params. Present only if MachineDeploymentStrategyType 673 = RollingUpdate. 674 properties: 675 maxSurge: 676 anyOf: 677 - type: integer 678 - type: string 679 description: 'The maximum number of machines that can be scheduled 680 above the desired number of machines. Value can be an absolute 681 number (ex: 5) or a percentage of desired machines (ex: 682 10%). This can not be 0 if MaxUnavailable is 0. Absolute 683 number is calculated from percentage by rounding up. Defaults 684 to 1. Example: when this is set to 30%, the new MachineSet 685 can be scaled up immediately when the rolling update starts, 686 such that the total number of old and new machines do not 687 exceed 130% of desired machines. Once old machines have 688 been killed, new MachineSet can be scaled up further, ensuring 689 that total number of machines running at any time during 690 the update is at most 130% of desired machines.' 691 x-kubernetes-int-or-string: true 692 maxUnavailable: 693 anyOf: 694 - type: integer 695 - type: string 696 description: 'The maximum number of machines that can be unavailable 697 during the update. Value can be an absolute number (ex: 698 5) or a percentage of desired machines (ex: 10%). Absolute 699 number is calculated from percentage by rounding down. This 700 can not be 0 if MaxSurge is 0. Defaults to 0. Example: when 701 this is set to 30%, the old MachineSet can be scaled down 702 to 70% of desired machines immediately when the rolling 703 update starts. Once new machines are ready, old MachineSet 704 can be scaled down further, followed by scaling up the new 705 MachineSet, ensuring that the total number of machines available 706 at all times during the update is at least 70% of desired 707 machines.' 708 x-kubernetes-int-or-string: true 709 type: object 710 type: 711 description: Type of deployment. Currently the only supported 712 strategy is "RollingUpdate". Default is RollingUpdate. 713 type: string 714 type: object 715 template: 716 description: Template describes the machines that will be created. 717 properties: 718 metadata: 719 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' 720 properties: 721 annotations: 722 additionalProperties: 723 type: string 724 description: 'Annotations is an unstructured key value map 725 stored with a resource that may be set by external tools 726 to store and retrieve arbitrary metadata. They are not queryable 727 and should be preserved when modifying objects. More info: 728 http://kubernetes.io/docs/user-guide/annotations' 729 type: object 730 generateName: 731 description: "GenerateName is an optional prefix, used by 732 the server, to generate a unique name ONLY IF the Name field 733 has not been provided. If this field is used, the name returned 734 to the client will be different than the name passed. This 735 value will also be combined with a unique suffix. The provided 736 value has the same validation rules as the Name field, and 737 may be truncated by the length of the suffix required to 738 make the value unique on the server. \n If this field is 739 specified and the generated name exists, the server will 740 NOT return a 409 - instead, it will either return 201 Created 741 or 500 with Reason ServerTimeout indicating a unique name 742 could not be found in the time allotted, and the client 743 should retry (optionally after the time indicated in the 744 Retry-After header). \n Applied only if Name is not specified. 745 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" 746 type: string 747 labels: 748 additionalProperties: 749 type: string 750 description: 'Map of string keys and values that can be used 751 to organize and categorize (scope and select) objects. May 752 match selectors of replication controllers and services. 753 More info: http://kubernetes.io/docs/user-guide/labels' 754 type: object 755 name: 756 description: 'Name must be unique within a namespace. Is required 757 when creating resources, although some resources may allow 758 a client to request the generation of an appropriate name 759 automatically. Name is primarily intended for creation idempotence 760 and configuration definition. Cannot be updated. More info: 761 http://kubernetes.io/docs/user-guide/identifiers#names' 762 type: string 763 namespace: 764 description: "Namespace defines the space within each name 765 must be unique. An empty namespace is equivalent to the 766 \"default\" namespace, but \"default\" is the canonical 767 representation. Not all objects are required to be scoped 768 to a namespace - the value of this field for those objects 769 will be empty. \n Must be a DNS_LABEL. Cannot be updated. 770 More info: http://kubernetes.io/docs/user-guide/namespaces" 771 type: string 772 ownerReferences: 773 description: List of objects depended by this object. If ALL 774 objects in the list have been deleted, this object will 775 be garbage collected. If this object is managed by a controller, 776 then an entry in this list will point to this controller, 777 with the controller field set to true. There cannot be more 778 than one managing controller. 779 items: 780 description: OwnerReference contains enough information 781 to let you identify an owning object. An owning object 782 must be in the same namespace as the dependent, or be 783 cluster-scoped, so there is no namespace field. 784 properties: 785 apiVersion: 786 description: API version of the referent. 787 type: string 788 blockOwnerDeletion: 789 description: If true, AND if the owner has the "foregroundDeletion" 790 finalizer, then the owner cannot be deleted from the 791 key-value store until this reference is removed. Defaults 792 to false. To set this field, a user needs "delete" 793 permission of the owner, otherwise 422 (Unprocessable 794 Entity) will be returned. 795 type: boolean 796 controller: 797 description: If true, this reference points to the managing 798 controller. 799 type: boolean 800 kind: 801 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 802 type: string 803 name: 804 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 805 type: string 806 uid: 807 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 808 type: string 809 required: 810 - apiVersion 811 - kind 812 - name 813 - uid 814 type: object 815 type: array 816 type: object 817 spec: 818 description: 'Specification of the desired behavior of the machine. 819 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' 820 properties: 821 bootstrap: 822 description: Bootstrap is a reference to a local struct which 823 encapsulates fields to configure the Machine’s bootstrapping 824 mechanism. 825 properties: 826 configRef: 827 description: ConfigRef is a reference to a bootstrap provider-specific 828 resource that holds configuration details. The reference 829 is optional to allow users/operators to specify Bootstrap.Data 830 without the need of a controller. 831 properties: 832 apiVersion: 833 description: API version of the referent. 834 type: string 835 fieldPath: 836 description: 'If referring to a piece of an object 837 instead of an entire object, this string should 838 contain a valid JSON/Go field access statement, 839 such as desiredState.manifest.containers[2]. For 840 example, if the object reference is to a container 841 within a pod, this would take on a value like: "spec.containers{name}" 842 (where "name" refers to the name of the container 843 that triggered the event) or if no container name 844 is specified "spec.containers[2]" (container with 845 index 2 in this pod). This syntax is chosen only 846 to have some well-defined way of referencing a part 847 of an object. TODO: this design is not final and 848 this field is subject to change in the future.' 849 type: string 850 kind: 851 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 852 type: string 853 name: 854 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 855 type: string 856 namespace: 857 description: 'Namespace of the referent. More info: 858 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 859 type: string 860 resourceVersion: 861 description: 'Specific resourceVersion to which this 862 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 863 type: string 864 uid: 865 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 866 type: string 867 type: object 868 data: 869 description: "Data contains the bootstrap data, such as 870 cloud-init details scripts. If nil, the Machine should 871 remain in the Pending state. \n Deprecated: This field 872 has been deprecated in v1alpha3 and will be removed 873 in a future version. Switch to DataSecretName." 874 type: string 875 dataSecretName: 876 description: DataSecretName is the name of the secret 877 that stores the bootstrap data script. If nil, the Machine 878 should remain in the Pending state. 879 type: string 880 type: object 881 clusterName: 882 description: ClusterName is the name of the Cluster this object 883 belongs to. 884 minLength: 1 885 type: string 886 failureDomain: 887 description: FailureDomain is the failure domain the machine 888 will be created in. Must match a key in the FailureDomains 889 map stored on the cluster object. 890 type: string 891 infrastructureRef: 892 description: InfrastructureRef is a required reference to 893 a custom resource offered by an infrastructure provider. 894 properties: 895 apiVersion: 896 description: API version of the referent. 897 type: string 898 fieldPath: 899 description: 'If referring to a piece of an object instead 900 of an entire object, this string should contain a valid 901 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 902 For example, if the object reference is to a container 903 within a pod, this would take on a value like: "spec.containers{name}" 904 (where "name" refers to the name of the container that 905 triggered the event) or if no container name is specified 906 "spec.containers[2]" (container with index 2 in this 907 pod). This syntax is chosen only to have some well-defined 908 way of referencing a part of an object. TODO: this design 909 is not final and this field is subject to change in 910 the future.' 911 type: string 912 kind: 913 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 914 type: string 915 name: 916 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 917 type: string 918 namespace: 919 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 920 type: string 921 resourceVersion: 922 description: 'Specific resourceVersion to which this reference 923 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 924 type: string 925 uid: 926 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 927 type: string 928 type: object 929 providerID: 930 description: ProviderID is the identification ID of the machine 931 provided by the provider. This field must match the provider 932 ID as seen on the node object corresponding to this machine. 933 This field is required by higher level consumers of cluster-api. 934 Example use case is cluster autoscaler with cluster-api 935 as provider. Clean-up logic in the autoscaler compares machines 936 to nodes to find out machines at provider which could not 937 get registered as Kubernetes nodes. With cluster-api as 938 a generic out-of-tree provider for autoscaler, this field 939 is required by autoscaler to be able to have a provider 940 view of the list of machines. Another list of nodes is queried 941 from the k8s apiserver and then a comparison is done to 942 find out unregistered machines and are marked for delete. 943 This field will be set by the actuators and consumed by 944 higher level entities like autoscaler that will be interfacing 945 with cluster-api as generic provider. 946 type: string 947 version: 948 description: 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: Total number of available machines (ready for at least 967 minReadySeconds) targeted by this deployment. 968 format: int32 969 type: integer 970 observedGeneration: 971 description: The generation observed by the deployment controller. 972 format: int64 973 type: integer 974 phase: 975 description: Phase represents the current phase of a MachineDeployment 976 (ScalingUp, ScalingDown, Running, Failed, or Unknown). 977 type: string 978 readyReplicas: 979 description: Total number of ready machines targeted by this deployment. 980 format: int32 981 type: integer 982 replicas: 983 description: Total number of non-terminated machines targeted by this 984 deployment (their labels match the selector). 985 format: int32 986 type: integer 987 selector: 988 description: 'Selector is the same as the label selector but in the 989 string format to avoid introspection by clients. The string will 990 be in the same format as the query-param syntax. More info about 991 label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' 992 type: string 993 unavailableReplicas: 994 description: Total number of unavailable machines targeted by this 995 deployment. This is the total number of machines that are still 996 required for the deployment to have 100% available capacity. They 997 may either be machines that are running but not yet available or 998 machines that still have not been created. 999 format: int32 1000 type: integer 1001 updatedReplicas: 1002 description: Total number of non-terminated machines targeted by this 1003 deployment that have the desired template spec. 1004 format: int32 1005 type: integer 1006 type: object 1007 type: object 1008 served: true 1009 storage: true 1010 subresources: 1011 scale: 1012 labelSelectorPath: .status.selector 1013 specReplicasPath: .spec.replicas 1014 statusReplicasPath: .status.replicas 1015 status: {} 1016 status: 1017 acceptedNames: 1018 kind: "" 1019 plural: "" 1020 conditions: [] 1021 storedVersions: []