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