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