sigs.k8s.io/cluster-api/bootstrap/kubeadm@v0.0.0-20191016155141-23a891785b60/config-capi/crds/cluster.k8s.io_machinedeployments.yaml (about) 1 2 --- 3 apiVersion: apiextensions.k8s.io/v1beta1 4 kind: CustomResourceDefinition 5 metadata: 6 creationTimestamp: null 7 name: machinedeployments.cluster.k8s.io 8 spec: 9 group: cluster.k8s.io 10 names: 11 kind: MachineDeployment 12 plural: machinedeployments 13 shortNames: 14 - md 15 scope: Namespaced 16 subresources: 17 scale: 18 labelSelectorPath: .status.labelSelector 19 specReplicasPath: .spec.replicas 20 statusReplicasPath: .status.replicas 21 validation: 22 openAPIV3Schema: 23 description: / [MachineDeployment] MachineDeployment is the Schema for the machinedeployments 24 API 25 properties: 26 apiVersion: 27 description: 'APIVersion defines the versioned schema of this representation 28 of an object. Servers should convert recognized schemas to the latest 29 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' 30 type: string 31 kind: 32 description: 'Kind is a string value representing the REST resource this 33 object represents. Servers may infer this from the endpoint the client 34 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 35 type: string 36 metadata: 37 type: object 38 spec: 39 description: / [MachineDeploymentSpec] MachineDeploymentSpec defines the 40 desired state of MachineDeployment 41 properties: 42 minReadySeconds: 43 description: Minimum number of seconds for which a newly created machine 44 should be ready. Defaults to 0 (machine will be considered available 45 as soon as it is ready) 46 format: int32 47 type: integer 48 paused: 49 description: Indicates that the deployment is paused. 50 type: boolean 51 progressDeadlineSeconds: 52 description: The maximum time in seconds for a deployment to make progress 53 before it is considered to be failed. The deployment controller will 54 continue to process failed deployments and a condition with a ProgressDeadlineExceeded 55 reason will be surfaced in the deployment status. Note that progress 56 will not be estimated during the time a deployment is paused. Defaults 57 to 600s. 58 format: int32 59 type: integer 60 replicas: 61 description: Number of desired machines. Defaults to 1. This is a pointer 62 to distinguish between explicit zero and not specified. 63 format: int32 64 type: integer 65 revisionHistoryLimit: 66 description: The number of old MachineSets to retain to allow rollback. 67 This is a pointer to distinguish between explicit zero and not specified. 68 Defaults to 1. 69 format: int32 70 type: integer 71 selector: 72 description: Label selector for machines. Existing MachineSets whose 73 machines are selected by this will be the ones affected by this deployment. 74 It must match the machine template's labels. 75 properties: 76 matchExpressions: 77 description: matchExpressions is a list of label selector requirements. 78 The requirements are ANDed. 79 items: 80 description: A label selector requirement is a selector that contains 81 values, a key, and an operator that relates the key and values. 82 properties: 83 key: 84 description: key is the label key that the selector applies 85 to. 86 type: string 87 operator: 88 description: operator represents a key's relationship to a 89 set of values. Valid operators are In, NotIn, Exists and 90 DoesNotExist. 91 type: string 92 values: 93 description: values is an array of string values. If the operator 94 is In or NotIn, the values array must be non-empty. If the 95 operator is Exists or DoesNotExist, the values array must 96 be empty. This array is replaced during a strategic merge 97 patch. 98 items: 99 type: string 100 type: array 101 required: 102 - key 103 - operator 104 type: object 105 type: array 106 matchLabels: 107 additionalProperties: 108 type: string 109 description: matchLabels is a map of {key,value} pairs. A single 110 {key,value} in the matchLabels map is equivalent to an element 111 of matchExpressions, whose key field is "key", the operator is 112 "In", and the values array contains only "value". The requirements 113 are ANDed. 114 type: object 115 type: object 116 strategy: 117 description: The deployment strategy to use to replace existing machines 118 with new ones. 119 properties: 120 rollingUpdate: 121 description: Rolling update config params. Present only if MachineDeploymentStrategyType 122 = RollingUpdate. 123 properties: 124 maxSurge: 125 anyOf: 126 - type: string 127 - type: integer 128 description: 'The maximum number of machines that can be scheduled 129 above the desired number of machines. Value can be an absolute 130 number (ex: 5) or a percentage of desired machines (ex: 10%). 131 This can not be 0 if MaxUnavailable is 0. Absolute number 132 is calculated from percentage by rounding up. Defaults to 133 1. Example: when this is set to 30%, the new MachineSet can 134 be scaled up immediately when the rolling update starts, such 135 that the total number of old and new machines do not exceed 136 130% of desired machines. Once old machines have been killed, 137 new MachineSet can be scaled up further, ensuring that total 138 number of machines running at any time during the update is 139 at most 130% of desired machines.' 140 maxUnavailable: 141 anyOf: 142 - type: string 143 - type: integer 144 description: 'The maximum number of machines that can be unavailable 145 during the update. Value can be an absolute number (ex: 5) 146 or a percentage of desired machines (ex: 10%). Absolute number 147 is calculated from percentage by rounding down. This can not 148 be 0 if MaxSurge is 0. Defaults to 0. Example: when this is 149 set to 30%, the old MachineSet can be scaled down to 70% of 150 desired machines immediately when the rolling update starts. 151 Once new machines are ready, old MachineSet can be scaled 152 down further, followed by scaling up the new MachineSet, ensuring 153 that the total number of machines available at all times during 154 the update is at least 70% of desired machines.' 155 type: object 156 type: 157 description: Type of deployment. Currently the only supported strategy 158 is "RollingUpdate". Default is RollingUpdate. 159 type: string 160 type: object 161 template: 162 description: Template describes the machines that will be created. 163 properties: 164 metadata: 165 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' 166 properties: 167 annotations: 168 additionalProperties: 169 type: string 170 description: 'Annotations is an unstructured key value map stored 171 with a resource that may be set by external tools to store 172 and retrieve arbitrary metadata. They are not queryable and 173 should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' 174 type: object 175 generateName: 176 description: "GenerateName is an optional prefix, used by the 177 server, to generate a unique name ONLY IF the Name field has 178 not been provided. If this field is used, the name returned 179 to the client will be different than the name passed. This 180 value will also be combined with a unique suffix. The provided 181 value has the same validation rules as the Name field, and 182 may be truncated by the length of the suffix required to make 183 the value unique on the server. \n If this field is specified 184 and the generated name exists, the server will NOT return 185 a 409 - instead, it will either return 201 Created or 500 186 with Reason ServerTimeout indicating a unique name could not 187 be found in the time allotted, and the client should retry 188 (optionally after the time indicated in the Retry-After header). 189 \n Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" 190 type: string 191 labels: 192 additionalProperties: 193 type: string 194 description: 'Map of string keys and values that can be used 195 to organize and categorize (scope and select) objects. May 196 match selectors of replication controllers and services. More 197 info: http://kubernetes.io/docs/user-guide/labels' 198 type: object 199 name: 200 description: 'Name must be unique within a namespace. Is required 201 when creating resources, although some resources may allow 202 a client to request the generation of an appropriate name 203 automatically. Name is primarily intended for creation idempotence 204 and configuration definition. Cannot be updated. More info: 205 http://kubernetes.io/docs/user-guide/identifiers#names' 206 type: string 207 namespace: 208 description: "Namespace defines the space within each name must 209 be unique. An empty namespace is equivalent to the \"default\" 210 namespace, but \"default\" is the canonical representation. 211 Not all objects are required to be scoped to a namespace - 212 the value of this field for those objects will be empty. \n 213 Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" 214 type: string 215 ownerReferences: 216 description: List of objects depended by this object. If ALL 217 objects in the list have been deleted, this object will be 218 garbage collected. If this object is managed by a controller, 219 then an entry in this list will point to this controller, 220 with the controller field set to true. There cannot be more 221 than one managing controller. 222 items: 223 description: OwnerReference contains enough information to 224 let you identify an owning object. An owning object must 225 be in the same namespace as the dependent, or be cluster-scoped, 226 so there is no namespace field. 227 properties: 228 apiVersion: 229 description: API version of the referent. 230 type: string 231 blockOwnerDeletion: 232 description: If true, AND if the owner has the "foregroundDeletion" 233 finalizer, then the owner cannot be deleted from the 234 key-value store until this reference is removed. Defaults 235 to false. To set this field, a user needs "delete" permission 236 of the owner, otherwise 422 (Unprocessable Entity) will 237 be returned. 238 type: boolean 239 controller: 240 description: If true, this reference points to the managing 241 controller. 242 type: boolean 243 kind: 244 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 245 type: string 246 name: 247 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 248 type: string 249 uid: 250 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 251 type: string 252 required: 253 - apiVersion 254 - kind 255 - name 256 - uid 257 type: object 258 type: array 259 type: object 260 spec: 261 description: 'Specification of the desired behavior of the machine. 262 More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' 263 properties: 264 configSource: 265 description: ConfigSource is used to populate in the associated 266 Node for dynamic kubelet config. This field already exists 267 in Node, so any updates to it in the Machine spec will be 268 automatically copied to the linked NodeRef from the status. 269 The rest of dynamic kubelet config support should then work 270 as-is. 271 properties: 272 configMap: 273 description: ConfigMap is a reference to a Node's ConfigMap 274 properties: 275 kubeletConfigKey: 276 description: KubeletConfigKey declares which key of 277 the referenced ConfigMap corresponds to the KubeletConfiguration 278 structure This field is required in all cases. 279 type: string 280 name: 281 description: Name is the metadata.name of the referenced 282 ConfigMap. This field is required in all cases. 283 type: string 284 namespace: 285 description: Namespace is the metadata.namespace of 286 the referenced ConfigMap. This field is required in 287 all cases. 288 type: string 289 resourceVersion: 290 description: ResourceVersion is the metadata.ResourceVersion 291 of the referenced ConfigMap. This field is forbidden 292 in Node.Spec, and required in Node.Status. 293 type: string 294 uid: 295 description: UID is the metadata.UID of the referenced 296 ConfigMap. This field is forbidden in Node.Spec, and 297 required in Node.Status. 298 type: string 299 required: 300 - kubeletConfigKey 301 - name 302 - namespace 303 type: object 304 type: object 305 metadata: 306 description: ObjectMeta will autopopulate the Node created. 307 Use this to indicate what labels, annotations, name prefix, 308 etc., should be used when creating the Node. 309 properties: 310 annotations: 311 additionalProperties: 312 type: string 313 description: 'Annotations is an unstructured key value map 314 stored with a resource that may be set by external tools 315 to store and retrieve arbitrary metadata. They are not 316 queryable and should be preserved when modifying objects. 317 More info: http://kubernetes.io/docs/user-guide/annotations' 318 type: object 319 generateName: 320 description: "GenerateName is an optional prefix, used by 321 the server, to generate a unique name ONLY IF the Name 322 field has not been provided. If this field is used, the 323 name returned to the client will be different than the 324 name passed. This value will also be combined with a unique 325 suffix. The provided value has the same validation rules 326 as the Name field, and may be truncated by the length 327 of the suffix required to make the value unique on the 328 server. \n If this field is specified and the generated 329 name exists, the server will NOT return a 409 - instead, 330 it will either return 201 Created or 500 with Reason ServerTimeout 331 indicating a unique name could not be found in the time 332 allotted, and the client should retry (optionally after 333 the time indicated in the Retry-After header). \n Applied 334 only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" 335 type: string 336 labels: 337 additionalProperties: 338 type: string 339 description: 'Map of string keys and values that can be 340 used to organize and categorize (scope and select) objects. 341 May match selectors of replication controllers and services. 342 More info: http://kubernetes.io/docs/user-guide/labels' 343 type: object 344 name: 345 description: 'Name must be unique within a namespace. Is 346 required when creating resources, although some resources 347 may allow a client to request the generation of an appropriate 348 name automatically. Name is primarily intended for creation 349 idempotence and configuration definition. Cannot be updated. 350 More info: http://kubernetes.io/docs/user-guide/identifiers#names' 351 type: string 352 namespace: 353 description: "Namespace defines the space within each name 354 must be unique. An empty namespace is equivalent to the 355 \"default\" namespace, but \"default\" is the canonical 356 representation. Not all objects are required to be scoped 357 to a namespace - the value of this field for those objects 358 will be empty. \n Must be a DNS_LABEL. Cannot be updated. 359 More info: http://kubernetes.io/docs/user-guide/namespaces" 360 type: string 361 ownerReferences: 362 description: List of objects depended by this object. If 363 ALL objects in the list have been deleted, this object 364 will be garbage collected. If this object is managed by 365 a controller, then an entry in this list will point to 366 this controller, with the controller field set to true. 367 There cannot be more than one managing controller. 368 items: 369 description: OwnerReference contains enough information 370 to let you identify an owning object. An owning object 371 must be in the same namespace as the dependent, or be 372 cluster-scoped, so there is no namespace field. 373 properties: 374 apiVersion: 375 description: API version of the referent. 376 type: string 377 blockOwnerDeletion: 378 description: If true, AND if the owner has the "foregroundDeletion" 379 finalizer, then the owner cannot be deleted from 380 the key-value store until this reference is removed. 381 Defaults to false. To set this field, a user needs 382 "delete" permission of the owner, otherwise 422 383 (Unprocessable Entity) will be returned. 384 type: boolean 385 controller: 386 description: If true, this reference points to the 387 managing controller. 388 type: boolean 389 kind: 390 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 391 type: string 392 name: 393 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 394 type: string 395 uid: 396 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 397 type: string 398 required: 399 - apiVersion 400 - kind 401 - name 402 - uid 403 type: object 404 type: array 405 type: object 406 providerID: 407 description: ProviderID is the identification ID of the machine 408 provided by the provider. This field must match the provider 409 ID as seen on the node object corresponding to this machine. 410 This field is required by higher level consumers of cluster-api. 411 Example use case is cluster autoscaler with cluster-api as 412 provider. Clean-up logic in the autoscaler compares machines 413 to nodes to find out machines at provider which could not 414 get registered as Kubernetes nodes. With cluster-api as a 415 generic out-of-tree provider for autoscaler, this field is 416 required by autoscaler to be able to have a provider view 417 of the list of machines. Another list of nodes is queried 418 from the k8s apiserver and then a comparison is done to find 419 out unregistered machines and are marked for delete. This 420 field will be set by the actuators and consumed by higher 421 level entities like autoscaler that will be interfacing with 422 cluster-api as generic provider. 423 type: string 424 providerSpec: 425 description: ProviderSpec details Provider-specific configuration 426 to use during node creation. 427 properties: 428 value: 429 description: Value is an inlined, serialized representation 430 of the resource configuration. It is recommended that 431 providers maintain their own versioned API types that 432 should be serialized/deserialized from this field, akin 433 to component config. 434 type: object 435 valueFrom: 436 description: Source for the provider configuration. Cannot 437 be used if value is not empty. 438 properties: 439 machineClass: 440 description: The machine class from which the provider 441 config should be sourced. 442 properties: 443 apiVersion: 444 description: API version of the referent. 445 type: string 446 fieldPath: 447 description: 'If referring to a piece of an object 448 instead of an entire object, this string should 449 contain a valid JSON/Go field access statement, 450 such as desiredState.manifest.containers[2]. For 451 example, if the object reference is to a container 452 within a pod, this would take on a value like: 453 "spec.containers{name}" (where "name" refers to 454 the name of the container that triggered the event) 455 or if no container name is specified "spec.containers[2]" 456 (container with index 2 in this pod). This syntax 457 is chosen only to have some well-defined way of 458 referencing a part of an object. TODO: this design 459 is not final and this field is subject to change 460 in the future.' 461 type: string 462 kind: 463 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 464 type: string 465 name: 466 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 467 type: string 468 namespace: 469 description: 'Namespace of the referent. More info: 470 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 471 type: string 472 provider: 473 description: Provider is the name of the cloud-provider 474 which MachineClass is intended for. 475 type: string 476 resourceVersion: 477 description: 'Specific resourceVersion to which 478 this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' 479 type: string 480 uid: 481 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 482 type: string 483 type: object 484 type: object 485 type: object 486 taints: 487 description: The list of the taints to be applied to the corresponding 488 Node in additive manner. This list will not overwrite any 489 other taints added to the Node on an ongoing basis by other 490 entities. These taints should be actively reconciled e.g. 491 if you ask the machine controller to apply a taint and then 492 manually remove the taint the machine controller will put 493 it back) but not have the machine controller remove any taints 494 items: 495 description: The node this Taint is attached to has the "effect" 496 on any pod that does not tolerate the Taint. 497 properties: 498 effect: 499 description: Required. The effect of the taint on pods 500 that do not tolerate the taint. Valid effects are NoSchedule, 501 PreferNoSchedule and NoExecute. 502 type: string 503 key: 504 description: Required. The taint key to be applied to 505 a node. 506 type: string 507 timeAdded: 508 description: TimeAdded represents the time at which the 509 taint was added. It is only written for NoExecute taints. 510 format: date-time 511 type: string 512 value: 513 description: Required. The taint value corresponding to 514 the taint key. 515 type: string 516 required: 517 - effect 518 - key 519 type: object 520 type: array 521 versions: 522 description: Versions of key software to use. This field is 523 optional at cluster creation time, and omitting the field 524 indicates that the cluster installation tool should select 525 defaults for the user. These defaults may differ based on 526 the cluster installer, but the tool should populate the values 527 it uses when persisting Machine objects. A Machine spec missing 528 this field at runtime is invalid. 529 properties: 530 controlPlane: 531 description: ControlPlane is the semantic version of the 532 Kubernetes control plane to run. This should only be populated 533 when the machine is a control plane. 534 type: string 535 kubelet: 536 description: Kubelet is the semantic version of kubelet 537 to run 538 type: string 539 required: 540 - kubelet 541 type: object 542 type: object 543 type: object 544 required: 545 - selector 546 - template 547 type: object 548 status: 549 description: / [MachineDeploymentStatus] MachineDeploymentStatus defines 550 the observed state of MachineDeployment 551 properties: 552 availableReplicas: 553 description: Total number of available machines (ready for at least 554 minReadySeconds) targeted by this deployment. 555 format: int32 556 type: integer 557 observedGeneration: 558 description: The generation observed by the deployment controller. 559 format: int64 560 type: integer 561 readyReplicas: 562 description: Total number of ready machines targeted by this deployment. 563 format: int32 564 type: integer 565 replicas: 566 description: Total number of non-terminated machines targeted by this 567 deployment (their labels match the selector). 568 format: int32 569 type: integer 570 unavailableReplicas: 571 description: Total number of unavailable machines targeted by this deployment. 572 This is the total number of machines that are still required for the 573 deployment to have 100% available capacity. They may either be machines 574 that are running but not yet available or machines that still have 575 not been created. 576 format: int32 577 type: integer 578 updatedReplicas: 579 description: Total number of non-terminated machines targeted by this 580 deployment that have the desired template spec. 581 format: int32 582 type: integer 583 type: object 584 type: object 585 version: v1alpha1 586 versions: 587 - name: v1alpha1 588 served: true 589 storage: true 590 status: 591 acceptedNames: 592 kind: "" 593 plural: "" 594 conditions: [] 595 storedVersions: []