github.com/giantswarm/apiextensions/v6@v6.6.0/config/crd/exp.cluster.x-k8s.io_machinepools.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: machinepools.exp.cluster.x-k8s.io 10 spec: 11 group: exp.cluster.x-k8s.io 12 names: 13 categories: 14 - azure 15 - cluster-api 16 - giantswarm 17 kind: MachinePool 18 listKind: MachinePoolList 19 plural: machinepools 20 shortNames: 21 - mp 22 singular: machinepool 23 scope: Namespaced 24 versions: 25 - additionalPrinterColumns: 26 - description: MachinePool replicas count 27 jsonPath: .status.replicas 28 name: Replicas 29 type: string 30 - description: MachinePool status such as Terminating/Pending/Provisioning/Running/Failed 31 etc 32 jsonPath: .status.phase 33 name: Phase 34 type: string 35 - description: Kubernetes version associated with this MachinePool 36 jsonPath: .spec.template.spec.version 37 name: Version 38 type: string 39 name: v1alpha3 40 schema: 41 openAPIV3Schema: 42 description: MachinePool is the Schema for the machinepools API 43 properties: 44 apiVersion: 45 description: 'APIVersion defines the versioned schema of this representation 46 of an object. Servers should convert recognized schemas to the latest 47 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 48 type: string 49 kind: 50 description: 'Kind is a string value representing the REST resource this 51 object represents. Servers may infer this from the endpoint the client 52 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 53 type: string 54 metadata: 55 type: object 56 spec: 57 description: MachinePoolSpec defines the desired state of MachinePool 58 properties: 59 clusterName: 60 description: ClusterName is the name of the Cluster this object belongs 61 to. 62 minLength: 1 63 type: string 64 failureDomains: 65 description: FailureDomains is the list of failure domains this MachinePool 66 should be attached to. 67 items: 68 type: string 69 type: array 70 minReadySeconds: 71 description: Minimum number of seconds for which a newly created machine 72 instances should be ready. Defaults to 0 (machine instance will 73 be considered available as soon as it is ready) 74 format: int32 75 type: integer 76 providerIDList: 77 description: ProviderIDList are the identification IDs of machine 78 instances provided by the provider. This field must match the provider 79 IDs as seen on the node objects corresponding to a machine pool's 80 machine instances. 81 items: 82 type: string 83 type: array 84 replicas: 85 description: Number of desired machines. Defaults to 1. This is a 86 pointer to distinguish between explicit zero and not specified. 87 format: int32 88 type: integer 89 strategy: 90 description: The deployment strategy to use to replace existing machine 91 instances with new ones. 92 properties: 93 rollingUpdate: 94 description: Rolling update config params. Present only if MachineDeploymentStrategyType 95 = RollingUpdate. 96 properties: 97 maxSurge: 98 anyOf: 99 - type: integer 100 - type: string 101 description: 'The maximum number of machines that can be scheduled 102 above the desired number of machines. Value can be an absolute 103 number (ex: 5) or a percentage of desired machines (ex: 104 10%). This can not be 0 if MaxUnavailable is 0. Absolute 105 number is calculated from percentage by rounding up. Defaults 106 to 1. Example: when this is set to 30%, the new MachineSet 107 can be scaled up immediately when the rolling update starts, 108 such that the total number of old and new machines do not 109 exceed 130% of desired machines. Once old machines have 110 been killed, new MachineSet can be scaled up further, ensuring 111 that total number of machines running at any time during 112 the update is at most 130% of desired machines.' 113 x-kubernetes-int-or-string: true 114 maxUnavailable: 115 anyOf: 116 - type: integer 117 - type: string 118 description: 'The maximum number of machines that can be unavailable 119 during the update. Value can be an absolute number (ex: 120 5) or a percentage of desired machines (ex: 10%). Absolute 121 number is calculated from percentage by rounding down. This 122 can not be 0 if MaxSurge is 0. Defaults to 0. Example: when 123 this is set to 30%, the old MachineSet can be scaled down 124 to 70% of desired machines immediately when the rolling 125 update starts. Once new machines are ready, old MachineSet 126 can be scaled down further, followed by scaling up the new 127 MachineSet, ensuring that the total number of machines available 128 at all times during the update is at least 70% of desired 129 machines.' 130 x-kubernetes-int-or-string: true 131 type: object 132 type: 133 description: Type of deployment. Currently the only supported 134 strategy is "RollingUpdate". Default is RollingUpdate. 135 type: string 136 type: object 137 template: 138 description: Template describes the machines that will be created. 139 properties: 140 metadata: 141 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' 142 properties: 143 annotations: 144 additionalProperties: 145 type: string 146 description: 'Annotations is an unstructured key value map 147 stored with a resource that may be set by external tools 148 to store and retrieve arbitrary metadata. They are not queryable 149 and should be preserved when modifying objects. More info: 150 http://kubernetes.io/docs/user-guide/annotations' 151 type: object 152 generateName: 153 description: "GenerateName is an optional prefix, used by 154 the server, to generate a unique name ONLY IF the Name field 155 has not been provided. If this field is used, the name returned 156 to the client will be different than the name passed. This 157 value will also be combined with a unique suffix. The provided 158 value has the same validation rules as the Name field, and 159 may be truncated by the length of the suffix required to 160 make the value unique on the server. \n If this field is 161 specified and the generated name exists, the server will 162 NOT return a 409 - instead, it will either return 201 Created 163 or 500 with Reason ServerTimeout indicating a unique name 164 could not be found in the time allotted, and the client 165 should retry (optionally after the time indicated in the 166 Retry-After header). \n Applied only if Name is not specified. 167 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency 168 \n Deprecated: This field has no function and is going to 169 be removed in a next release." 170 type: string 171 labels: 172 additionalProperties: 173 type: string 174 description: 'Map of string keys and values that can be used 175 to organize and categorize (scope and select) objects. May 176 match selectors of replication controllers and services. 177 More info: http://kubernetes.io/docs/user-guide/labels' 178 type: object 179 name: 180 description: "Name must be unique within a namespace. Is required 181 when creating resources, although some resources may allow 182 a client to request the generation of an appropriate name 183 automatically. Name is primarily intended for creation idempotence 184 and configuration definition. Cannot be updated. More info: 185 http://kubernetes.io/docs/user-guide/identifiers#names \n 186 Deprecated: This field has no function and is going to be 187 removed in a next release." 188 type: string 189 namespace: 190 description: "Namespace defines the space within each name 191 must be unique. An empty namespace is equivalent to the 192 \"default\" namespace, but \"default\" is the canonical 193 representation. Not all objects are required to be scoped 194 to a namespace - the value of this field for those objects 195 will be empty. \n Must be a DNS_LABEL. Cannot be updated. 196 More info: http://kubernetes.io/docs/user-guide/namespaces 197 \n Deprecated: This field has no function and is going to 198 be removed in a next release." 199 type: string 200 ownerReferences: 201 description: "List of objects depended by this object. If 202 ALL objects in the list have been deleted, this object will 203 be garbage collected. If this object is managed by a controller, 204 then an entry in this list will point to this controller, 205 with the controller field set to true. There cannot be more 206 than one managing controller. \n Deprecated: This field 207 has no function and is going to be removed in a next release." 208 items: 209 description: OwnerReference contains enough information 210 to let you identify an owning object. An owning object 211 must be in the same namespace as the dependent, or be 212 cluster-scoped, so there is no namespace field. 213 properties: 214 apiVersion: 215 description: API version of the referent. 216 type: string 217 blockOwnerDeletion: 218 description: If true, AND if the owner has the "foregroundDeletion" 219 finalizer, then the owner cannot be deleted from the 220 key-value store until this reference is removed. See 221 https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion 222 for how the garbage collector interacts with this 223 field and enforces the foreground deletion. Defaults 224 to false. To set this field, a user needs "delete" 225 permission of the owner, otherwise 422 (Unprocessable 226 Entity) will be returned. 227 type: boolean 228 controller: 229 description: If true, this reference points to the managing 230 controller. 231 type: boolean 232 kind: 233 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 234 type: string 235 name: 236 description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' 237 type: string 238 uid: 239 description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' 240 type: string 241 required: 242 - apiVersion 243 - kind 244 - name 245 - uid 246 type: object 247 type: array 248 type: object 249 spec: 250 description: 'Specification of the desired behavior of the machine. 251 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' 252 properties: 253 bootstrap: 254 description: Bootstrap is a reference to a local struct which 255 encapsulates fields to configure the Machine’s bootstrapping 256 mechanism. 257 properties: 258 configRef: 259 description: ConfigRef is a reference to a bootstrap provider-specific 260 resource that holds configuration details. The reference 261 is optional to allow users/operators to specify Bootstrap.Data 262 without the need of a controller. 263 properties: 264 apiVersion: 265 description: API version of the referent. 266 type: string 267 fieldPath: 268 description: 'If referring to a piece of an object 269 instead of an entire object, this string should 270 contain a valid JSON/Go field access statement, 271 such as desiredState.manifest.containers[2]. For 272 example, if the object reference is to a container 273 within a pod, this would take on a value like: "spec.containers{name}" 274 (where "name" refers to the name of the container 275 that triggered the event) or if no container name 276 is specified "spec.containers[2]" (container with 277 index 2 in this pod). This syntax is chosen only 278 to have some well-defined way of referencing a part 279 of an object. TODO: this design is not final and 280 this field is subject to change in the future.' 281 type: string 282 kind: 283 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 284 type: string 285 name: 286 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 287 type: string 288 namespace: 289 description: 'Namespace of the referent. More info: 290 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 291 type: string 292 resourceVersion: 293 description: 'Specific resourceVersion to which this 294 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 295 type: string 296 uid: 297 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 298 type: string 299 type: object 300 data: 301 description: "Data contains the bootstrap data, such as 302 cloud-init details scripts. If nil, the Machine should 303 remain in the Pending state. \n Deprecated: Switch to 304 DataSecretName." 305 type: string 306 dataSecretName: 307 description: DataSecretName is the name of the secret 308 that stores the bootstrap data script. If nil, the Machine 309 should remain in the Pending state. 310 type: string 311 type: object 312 clusterName: 313 description: ClusterName is the name of the Cluster this object 314 belongs to. 315 minLength: 1 316 type: string 317 failureDomain: 318 description: FailureDomain is the failure domain the machine 319 will be created in. Must match a key in the FailureDomains 320 map stored on the cluster object. 321 type: string 322 infrastructureRef: 323 description: InfrastructureRef is a required reference to 324 a custom resource offered by an infrastructure provider. 325 properties: 326 apiVersion: 327 description: API version of the referent. 328 type: string 329 fieldPath: 330 description: 'If referring to a piece of an object instead 331 of an entire object, this string should contain a valid 332 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 333 For example, if the object reference is to a container 334 within a pod, this would take on a value like: "spec.containers{name}" 335 (where "name" refers to the name of the container that 336 triggered the event) or if no container name is specified 337 "spec.containers[2]" (container with index 2 in this 338 pod). This syntax is chosen only to have some well-defined 339 way of referencing a part of an object. TODO: this design 340 is not final and this field is subject to change in 341 the future.' 342 type: string 343 kind: 344 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 345 type: string 346 name: 347 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 348 type: string 349 namespace: 350 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 351 type: string 352 resourceVersion: 353 description: 'Specific resourceVersion to which this reference 354 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 355 type: string 356 uid: 357 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 358 type: string 359 type: object 360 nodeDrainTimeout: 361 description: 'NodeDrainTimeout is the total amount of time 362 that the controller will spend on draining a node. The default 363 value is 0, meaning that the node can be drained without 364 any time limitations. NOTE: NodeDrainTimeout is different 365 from `kubectl drain --timeout`' 366 type: string 367 providerID: 368 description: ProviderID is the identification ID of the machine 369 provided by the provider. This field must match the provider 370 ID as seen on the node object corresponding to this machine. 371 This field is required by higher level consumers of cluster-api. 372 Example use case is cluster autoscaler with cluster-api 373 as provider. Clean-up logic in the autoscaler compares machines 374 to nodes to find out machines at provider which could not 375 get registered as Kubernetes nodes. With cluster-api as 376 a generic out-of-tree provider for autoscaler, this field 377 is required by autoscaler to be able to have a provider 378 view of the list of machines. Another list of nodes is queried 379 from the k8s apiserver and then a comparison is done to 380 find out unregistered machines and are marked for delete. 381 This field will be set by the actuators and consumed by 382 higher level entities like autoscaler that will be interfacing 383 with cluster-api as generic provider. 384 type: string 385 version: 386 description: Version defines the desired Kubernetes version. 387 This field is meant to be optionally used by bootstrap providers. 388 type: string 389 required: 390 - bootstrap 391 - clusterName 392 - infrastructureRef 393 type: object 394 type: object 395 required: 396 - clusterName 397 - template 398 type: object 399 status: 400 description: MachinePoolStatus defines the observed state of MachinePool 401 properties: 402 availableReplicas: 403 description: The number of available replicas (ready for at least 404 minReadySeconds) for this MachinePool. 405 format: int32 406 type: integer 407 bootstrapReady: 408 description: BootstrapReady is the state of the bootstrap provider. 409 type: boolean 410 conditions: 411 description: Conditions define the current service state of the MachinePool. 412 items: 413 description: Condition defines an observation of a Cluster API resource 414 operational state. 415 properties: 416 lastTransitionTime: 417 description: Last time the condition transitioned from one status 418 to another. This should be when the underlying condition changed. 419 If that is not known, then using the time when the API field 420 changed is acceptable. 421 format: date-time 422 type: string 423 message: 424 description: A human readable message indicating details about 425 the transition. This field may be empty. 426 type: string 427 reason: 428 description: The reason for the condition's last transition 429 in CamelCase. The specific API may choose whether or not this 430 field is considered a guaranteed API. This field may not be 431 empty. 432 type: string 433 severity: 434 description: Severity provides an explicit classification of 435 Reason code, so the users or machines can immediately understand 436 the current situation and act accordingly. The Severity field 437 MUST be set only when Status=False. 438 type: string 439 status: 440 description: Status of the condition, one of True, False, Unknown. 441 type: string 442 type: 443 description: Type of condition in CamelCase or in foo.example.com/CamelCase. 444 Many .condition.type values are consistent across resources 445 like Available, but because arbitrary conditions can be useful 446 (see .node.status.conditions), the ability to deconflict is 447 important. 448 type: string 449 required: 450 - status 451 - type 452 type: object 453 type: array 454 failureMessage: 455 description: FailureMessage indicates that there is a problem reconciling 456 the state, and will be set to a descriptive error message. 457 type: string 458 failureReason: 459 description: FailureReason indicates that there is a problem reconciling 460 the state, and will be set to a token value suitable for programmatic 461 interpretation. 462 type: string 463 infrastructureReady: 464 description: InfrastructureReady is the state of the infrastructure 465 provider. 466 type: boolean 467 nodeRefs: 468 description: NodeRefs will point to the corresponding Nodes if it 469 they exist. 470 items: 471 description: 'ObjectReference contains enough information to let 472 you inspect or modify the referred object. --- New uses of this 473 type are discouraged because of difficulty describing its usage 474 when embedded in APIs. 1. Ignored fields. It includes many fields 475 which are not generally honored. For instance, ResourceVersion 476 and FieldPath are both very rarely valid in actual usage. 2. 477 Invalid usage help. It is impossible to add specific help for 478 individual usage. In most embedded usages, there are particular restrictions 479 like, "must refer only to types A and B" or "UID not honored" 480 or "name must be restricted". Those cannot be well described 481 when embedded. 3. Inconsistent validation. Because the usages 482 are different, the validation rules are different by usage, which 483 makes it hard for users to predict what will happen. 4. The fields 484 are both imprecise and overly precise. Kind is not a precise 485 mapping to a URL. This can produce ambiguity during interpretation 486 and require a REST mapping. In most cases, the dependency is 487 on the group,resource tuple and the version of the actual 488 struct is irrelevant. 5. We cannot easily change it. Because 489 this type is embedded in many locations, updates to this type will 490 affect numerous schemas. Don''t make new APIs embed an underspecified 491 API type they do not control. Instead of using this type, create 492 a locally provided and used type that is well-focused on your 493 reference. For example, ServiceReferences for admission registration: 494 https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 495 .' 496 properties: 497 apiVersion: 498 description: API version of the referent. 499 type: string 500 fieldPath: 501 description: 'If referring to a piece of an object instead of 502 an entire object, this string should contain a valid JSON/Go 503 field access statement, such as desiredState.manifest.containers[2]. 504 For example, if the object reference is to a container within 505 a pod, this would take on a value like: "spec.containers{name}" 506 (where "name" refers to the name of the container that triggered 507 the event) or if no container name is specified "spec.containers[2]" 508 (container with index 2 in this pod). This syntax is chosen 509 only to have some well-defined way of referencing a part of 510 an object. TODO: this design is not final and this field is 511 subject to change in the future.' 512 type: string 513 kind: 514 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 515 type: string 516 name: 517 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 518 type: string 519 namespace: 520 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 521 type: string 522 resourceVersion: 523 description: 'Specific resourceVersion to which this reference 524 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 525 type: string 526 uid: 527 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 528 type: string 529 type: object 530 type: array 531 observedGeneration: 532 description: ObservedGeneration is the latest generation observed 533 by the controller. 534 format: int64 535 type: integer 536 phase: 537 description: Phase represents the current phase of cluster actuation. 538 E.g. Pending, Running, Terminating, Failed etc. 539 type: string 540 readyReplicas: 541 description: The number of ready replicas for this MachinePool. A 542 machine is considered ready when the node has been created and is 543 "Ready". 544 format: int32 545 type: integer 546 replicas: 547 description: Replicas is the most recently observed number of replicas. 548 format: int32 549 type: integer 550 unavailableReplicas: 551 description: Total number of unavailable machine instances targeted 552 by this machine pool. This is the total number of machine instances 553 that are still required for the machine pool to have 100% available 554 capacity. They may either be machine instances that are running 555 but not yet available or machine instances that still have not been 556 created. 557 format: int32 558 type: integer 559 type: object 560 type: object 561 served: true 562 storage: true 563 subresources: 564 scale: 565 specReplicasPath: .spec.replicas 566 statusReplicasPath: .status.replicas 567 status: {} 568 status: 569 acceptedNames: 570 kind: "" 571 plural: "" 572 conditions: [] 573 storedVersions: []