sigs.k8s.io/cluster-api/bootstrap/kubeadm@v0.0.0-20191016155141-23a891785b60/config-capi/crd/bases/cluster.x-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.x-k8s.io 8 spec: 9 group: cluster.x-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 status: {} 22 validation: 23 openAPIV3Schema: 24 description: / [MachineDeployment] MachineDeployment is the Schema for the machinedeployments 25 API 26 properties: 27 apiVersion: 28 description: 'APIVersion defines the versioned schema of this representation 29 of an object. Servers should convert recognized schemas to the latest 30 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' 31 type: string 32 kind: 33 description: 'Kind is a string value representing the REST resource this 34 object represents. Servers may infer this from the endpoint the client 35 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 36 type: string 37 metadata: 38 type: object 39 spec: 40 description: / [MachineDeploymentSpec] MachineDeploymentSpec defines the 41 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 progress 54 before it is considered to be failed. The deployment controller will 55 continue to process failed deployments and a condition with a ProgressDeadlineExceeded 56 reason will be surfaced in the deployment status. Note that progress 57 will not be estimated during the time a deployment is paused. Defaults 58 to 600s. 59 format: int32 60 type: integer 61 replicas: 62 description: Number of desired machines. Defaults to 1. This is a pointer 63 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 deployment. 75 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 contains 82 values, a key, and an operator that relates the key and values. 83 properties: 84 key: 85 description: key is the label key that the selector applies 86 to. 87 type: string 88 operator: 89 description: operator represents a key's relationship to a 90 set of values. Valid operators are In, NotIn, Exists and 91 DoesNotExist. 92 type: string 93 values: 94 description: values is an array of string values. If the operator 95 is In or NotIn, the values array must be non-empty. If the 96 operator is Exists or DoesNotExist, the values array must 97 be empty. This array is replaced during a strategic merge 98 patch. 99 items: 100 type: string 101 type: array 102 required: 103 - key 104 - operator 105 type: object 106 type: array 107 matchLabels: 108 additionalProperties: 109 type: string 110 description: matchLabels is a map of {key,value} pairs. A single 111 {key,value} in the matchLabels map is equivalent to an element 112 of matchExpressions, whose key field is "key", the operator is 113 "In", and the values array contains only "value". The requirements 114 are ANDed. 115 type: object 116 type: object 117 strategy: 118 description: The deployment strategy to use to replace existing machines 119 with new ones. 120 properties: 121 rollingUpdate: 122 description: Rolling update config params. Present only if MachineDeploymentStrategyType 123 = RollingUpdate. 124 properties: 125 maxSurge: 126 anyOf: 127 - type: string 128 - type: integer 129 description: 'The maximum number of machines that can be scheduled 130 above the desired number of machines. Value can be an absolute 131 number (ex: 5) or a percentage of desired machines (ex: 10%). 132 This can not be 0 if MaxUnavailable is 0. Absolute number 133 is calculated from percentage by rounding up. Defaults to 134 1. Example: when this is set to 30%, the new MachineSet can 135 be scaled up immediately when the rolling update starts, such 136 that the total number of old and new machines do not exceed 137 130% of desired machines. Once old machines have been killed, 138 new MachineSet can be scaled up further, ensuring that total 139 number of machines running at any time during the update is 140 at most 130% of desired machines.' 141 maxUnavailable: 142 anyOf: 143 - type: string 144 - type: integer 145 description: 'The maximum number of machines that can be unavailable 146 during the update. Value can be an absolute number (ex: 5) 147 or a percentage of desired machines (ex: 10%). Absolute number 148 is calculated from percentage by rounding down. This can not 149 be 0 if MaxSurge is 0. Defaults to 0. Example: when this is 150 set to 30%, the old MachineSet can be scaled down to 70% of 151 desired machines immediately when the rolling update starts. 152 Once new machines are ready, old MachineSet can be scaled 153 down further, followed by scaling up the new MachineSet, ensuring 154 that the total number of machines available at all times during 155 the update is at least 70% of desired machines.' 156 type: object 157 type: 158 description: Type of deployment. Currently the only supported strategy 159 is "RollingUpdate". Default is RollingUpdate. 160 type: string 161 type: object 162 template: 163 description: Template describes the machines that will be created. 164 properties: 165 metadata: 166 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' 167 properties: 168 annotations: 169 additionalProperties: 170 type: string 171 description: 'Annotations is an unstructured key value map stored 172 with a resource that may be set by external tools to store 173 and retrieve arbitrary metadata. They are not queryable and 174 should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' 175 type: object 176 generateName: 177 description: "GenerateName is an optional prefix, used by the 178 server, to generate a unique name ONLY IF the Name field has 179 not been provided. If this field is used, the name returned 180 to the client will be different than the name passed. This 181 value will also be combined with a unique suffix. The provided 182 value has the same validation rules as the Name field, and 183 may be truncated by the length of the suffix required to make 184 the value unique on the server. \n If this field is specified 185 and the generated name exists, the server will NOT return 186 a 409 - instead, it will either return 201 Created or 500 187 with Reason ServerTimeout indicating a unique name could not 188 be found in the time allotted, and the client should retry 189 (optionally after the time indicated in the Retry-After header). 190 \n Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" 191 type: string 192 labels: 193 additionalProperties: 194 type: string 195 description: 'Map of string keys and values that can be used 196 to organize and categorize (scope and select) objects. May 197 match selectors of replication controllers and services. More 198 info: http://kubernetes.io/docs/user-guide/labels' 199 type: object 200 name: 201 description: 'Name must be unique within a namespace. Is required 202 when creating resources, although some resources may allow 203 a client to request the generation of an appropriate name 204 automatically. Name is primarily intended for creation idempotence 205 and configuration definition. Cannot be updated. More info: 206 http://kubernetes.io/docs/user-guide/identifiers#names' 207 type: string 208 namespace: 209 description: "Namespace defines the space within each name must 210 be unique. An empty namespace is equivalent to the \"default\" 211 namespace, but \"default\" is the canonical representation. 212 Not all objects are required to be scoped to a namespace - 213 the value of this field for those objects will be empty. \n 214 Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" 215 type: string 216 ownerReferences: 217 description: List of objects depended by this object. If ALL 218 objects in the list have been deleted, this object will be 219 garbage collected. If this object is managed by a controller, 220 then an entry in this list will point to this controller, 221 with the controller field set to true. There cannot be more 222 than one managing controller. 223 items: 224 description: OwnerReference contains enough information to 225 let you identify an owning object. An owning object must 226 be in the same namespace as the dependent, or be cluster-scoped, 227 so there is no namespace field. 228 properties: 229 apiVersion: 230 description: API version of the referent. 231 type: string 232 blockOwnerDeletion: 233 description: If true, AND if the owner has the "foregroundDeletion" 234 finalizer, then the owner cannot be deleted from the 235 key-value store until this reference is removed. Defaults 236 to false. To set this field, a user needs "delete" permission 237 of the owner, otherwise 422 (Unprocessable Entity) will 238 be returned. 239 type: boolean 240 controller: 241 description: If true, this reference points to the managing 242 controller. 243 type: boolean 244 kind: 245 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 246 type: string 247 name: 248 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 249 type: string 250 uid: 251 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 252 type: string 253 required: 254 - apiVersion 255 - kind 256 - name 257 - uid 258 type: object 259 type: array 260 type: object 261 spec: 262 description: 'Specification of the desired behavior of the machine. 263 More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' 264 properties: 265 bootstrap: 266 description: Bootstrap is a reference to a local struct which 267 encapsulates fields to configure the Machine’s bootstrapping 268 mechanism. 269 properties: 270 configRef: 271 description: ConfigRef is a reference to a bootstrap provider-specific 272 resource that holds configuration details. The reference 273 is optional to allow users/operators to specify Bootstrap.Data 274 without the need of a controller. 275 properties: 276 apiVersion: 277 description: API version of the referent. 278 type: string 279 fieldPath: 280 description: 'If referring to a piece of an object instead 281 of an entire object, this string should contain a 282 valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 283 For example, if the object reference is to a container 284 within a pod, this would take on a value like: "spec.containers{name}" 285 (where "name" refers to the name of the container 286 that triggered the event) or if no container name 287 is specified "spec.containers[2]" (container with 288 index 2 in this pod). This syntax is chosen only to 289 have some well-defined way of referencing a part of 290 an object. TODO: this design is not final and this 291 field is subject to change in the future.' 292 type: string 293 kind: 294 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 295 type: string 296 name: 297 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 298 type: string 299 namespace: 300 description: 'Namespace of the referent. More info: 301 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 302 type: string 303 resourceVersion: 304 description: 'Specific resourceVersion to which this 305 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' 306 type: string 307 uid: 308 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 309 type: string 310 type: object 311 data: 312 description: Data contains the bootstrap data, such as cloud-init 313 details scripts. If nil, the Machine should remain in 314 the Pending state. 315 type: string 316 type: object 317 infrastructureRef: 318 description: InfrastructureRef is a required reference to a 319 custom resource offered by an infrastructure provider. 320 properties: 321 apiVersion: 322 description: API version of the referent. 323 type: string 324 fieldPath: 325 description: 'If referring to a piece of an object instead 326 of an entire object, this string should contain a valid 327 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 328 For example, if the object reference is to a container 329 within a pod, this would take on a value like: "spec.containers{name}" 330 (where "name" refers to the name of the container that 331 triggered the event) or if no container name is specified 332 "spec.containers[2]" (container with index 2 in this pod). 333 This syntax is chosen only to have some well-defined way 334 of referencing a part of an object. TODO: this design 335 is not final and this field is subject to change in the 336 future.' 337 type: string 338 kind: 339 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 340 type: string 341 name: 342 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 343 type: string 344 namespace: 345 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 346 type: string 347 resourceVersion: 348 description: 'Specific resourceVersion to which this reference 349 is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' 350 type: string 351 uid: 352 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 353 type: string 354 type: object 355 metadata: 356 description: ObjectMeta will autopopulate the Node created. 357 Use this to indicate what labels, annotations, name prefix, 358 etc., should be used when creating the Node. 359 properties: 360 annotations: 361 additionalProperties: 362 type: string 363 description: 'Annotations is an unstructured key value map 364 stored with a resource that may be set by external tools 365 to store and retrieve arbitrary metadata. They are not 366 queryable and should be preserved when modifying objects. 367 More info: http://kubernetes.io/docs/user-guide/annotations' 368 type: object 369 generateName: 370 description: "GenerateName is an optional prefix, used by 371 the server, to generate a unique name ONLY IF the Name 372 field has not been provided. If this field is used, the 373 name returned to the client will be different than the 374 name passed. This value will also be combined with a unique 375 suffix. The provided value has the same validation rules 376 as the Name field, and may be truncated by the length 377 of the suffix required to make the value unique on the 378 server. \n If this field is specified and the generated 379 name exists, the server will NOT return a 409 - instead, 380 it will either return 201 Created or 500 with Reason ServerTimeout 381 indicating a unique name could not be found in the time 382 allotted, and the client should retry (optionally after 383 the time indicated in the Retry-After header). \n Applied 384 only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" 385 type: string 386 labels: 387 additionalProperties: 388 type: string 389 description: 'Map of string keys and values that can be 390 used to organize and categorize (scope and select) objects. 391 May match selectors of replication controllers and services. 392 More info: http://kubernetes.io/docs/user-guide/labels' 393 type: object 394 name: 395 description: 'Name must be unique within a namespace. Is 396 required when creating resources, although some resources 397 may allow a client to request the generation of an appropriate 398 name automatically. Name is primarily intended for creation 399 idempotence and configuration definition. Cannot be updated. 400 More info: http://kubernetes.io/docs/user-guide/identifiers#names' 401 type: string 402 namespace: 403 description: "Namespace defines the space within each name 404 must be unique. An empty namespace is equivalent to the 405 \"default\" namespace, but \"default\" is the canonical 406 representation. Not all objects are required to be scoped 407 to a namespace - the value of this field for those objects 408 will be empty. \n Must be a DNS_LABEL. Cannot be updated. 409 More info: http://kubernetes.io/docs/user-guide/namespaces" 410 type: string 411 ownerReferences: 412 description: List of objects depended by this object. If 413 ALL objects in the list have been deleted, this object 414 will be garbage collected. If this object is managed by 415 a controller, then an entry in this list will point to 416 this controller, with the controller field set to true. 417 There cannot be more than one managing controller. 418 items: 419 description: OwnerReference contains enough information 420 to let you identify an owning object. An owning object 421 must be in the same namespace as the dependent, or be 422 cluster-scoped, so there is no namespace field. 423 properties: 424 apiVersion: 425 description: API version of the referent. 426 type: string 427 blockOwnerDeletion: 428 description: If true, AND if the owner has the "foregroundDeletion" 429 finalizer, then the owner cannot be deleted from 430 the key-value store until this reference is removed. 431 Defaults to false. To set this field, a user needs 432 "delete" permission of the owner, otherwise 422 433 (Unprocessable Entity) will be returned. 434 type: boolean 435 controller: 436 description: If true, this reference points to the 437 managing controller. 438 type: boolean 439 kind: 440 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 441 type: string 442 name: 443 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 444 type: string 445 uid: 446 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 447 type: string 448 required: 449 - apiVersion 450 - kind 451 - name 452 - uid 453 type: object 454 type: array 455 type: object 456 providerID: 457 description: ProviderID is the identification ID of the machine 458 provided by the provider. This field must match the provider 459 ID as seen on the node object corresponding to this machine. 460 This field is required by higher level consumers of cluster-api. 461 Example use case is cluster autoscaler with cluster-api as 462 provider. Clean-up logic in the autoscaler compares machines 463 to nodes to find out machines at provider which could not 464 get registered as Kubernetes nodes. With cluster-api as a 465 generic out-of-tree provider for autoscaler, this field is 466 required by autoscaler to be able to have a provider view 467 of the list of machines. Another list of nodes is queried 468 from the k8s apiserver and then a comparison is done to find 469 out unregistered machines and are marked for delete. This 470 field will be set by the actuators and consumed by higher 471 level entities like autoscaler that will be interfacing with 472 cluster-api as generic provider. 473 type: string 474 version: 475 description: Version defines the desired Kubernetes version. 476 This field is meant to be optionally used by bootstrap providers. 477 type: string 478 required: 479 - bootstrap 480 - infrastructureRef 481 type: object 482 type: object 483 required: 484 - selector 485 - template 486 type: object 487 status: 488 description: / [MachineDeploymentStatus] MachineDeploymentStatus defines 489 the observed state of MachineDeployment 490 properties: 491 availableReplicas: 492 description: Total number of available machines (ready for at least 493 minReadySeconds) targeted by this deployment. 494 format: int32 495 type: integer 496 observedGeneration: 497 description: The generation observed by the deployment controller. 498 format: int64 499 type: integer 500 readyReplicas: 501 description: Total number of ready machines targeted by this deployment. 502 format: int32 503 type: integer 504 replicas: 505 description: Total number of non-terminated machines targeted by this 506 deployment (their labels match the selector). 507 format: int32 508 type: integer 509 unavailableReplicas: 510 description: Total number of unavailable machines targeted by this deployment. 511 This is the total number of machines that are still required for the 512 deployment to have 100% available capacity. They may either be machines 513 that are running but not yet available or machines that still have 514 not been created. 515 format: int32 516 type: integer 517 updatedReplicas: 518 description: Total number of non-terminated machines targeted by this 519 deployment that have the desired template spec. 520 format: int32 521 type: integer 522 type: object 523 type: object 524 version: v1alpha2 525 versions: 526 - name: v1alpha2 527 served: true 528 storage: true 529 status: 530 acceptedNames: 531 kind: "" 532 plural: "" 533 conditions: [] 534 storedVersions: []