Created
February 13, 2024 09:57
-
-
Save sbueringer/4301e6160e3cfc35b57ff517599efe10 to your computer and use it in GitHub Desktop.
Files to reproduce Cluster API issue #10051
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: cluster.x-k8s.io/v1beta1 | |
kind: MachineDeployment | |
metadata: | |
name: capi-quickstart-md-0 | |
namespace: default | |
annotations: | |
cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "1" | |
cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "3" | |
spec: | |
clusterName: capi-quickstart | |
replicas: 1 | |
selector: | |
matchLabels: null | |
template: | |
spec: | |
bootstrap: | |
configRef: | |
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 | |
kind: KubeadmConfigTemplate | |
name: capi-quickstart-md-0 | |
namespace: default | |
clusterName: capi-quickstart | |
infrastructureRef: | |
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 | |
kind: DockerMachineTemplate | |
name: capi-quickstart-md-0 | |
namespace: default | |
version: v1.25.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: cluster.x-k8s.io/v1beta1 | |
kind: Cluster | |
metadata: | |
name: capi-quickstart | |
namespace: default | |
spec: | |
clusterNetwork: | |
pods: | |
cidrBlocks: | |
- 192.168.0.0/16 | |
serviceDomain: cluster.local | |
services: | |
cidrBlocks: | |
- 10.128.0.0/12 | |
controlPlaneRef: | |
apiVersion: controlplane.cluster.x-k8s.io/v1beta1 | |
kind: KubeadmControlPlane | |
name: capi-quickstart-control-plane | |
namespace: default | |
infrastructureRef: | |
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 | |
kind: DockerCluster | |
name: capi-quickstart | |
namespace: default | |
--- | |
apiVersion: cluster.x-k8s.io/v1alpha4 | |
kind: MachineDeployment | |
metadata: | |
name: capi-quickstart-md-0 | |
namespace: default | |
annotations: | |
cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "1" | |
cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "3" | |
spec: | |
clusterName: capi-quickstart | |
replicas: 1 | |
selector: | |
matchLabels: null | |
template: | |
spec: | |
bootstrap: | |
configRef: | |
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 | |
kind: KubeadmConfigTemplate | |
name: capi-quickstart-md-0 | |
namespace: default | |
clusterName: capi-quickstart | |
infrastructureRef: | |
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 | |
kind: DockerMachineTemplate | |
name: capi-quickstart-md-0 | |
namespace: default | |
version: v1.25.0 | |
--- | |
apiVersion: controlplane.cluster.x-k8s.io/v1beta1 | |
kind: KubeadmControlPlane | |
metadata: | |
name: capi-quickstart-control-plane | |
namespace: default | |
spec: | |
kubeadmConfigSpec: | |
clusterConfiguration: | |
apiServer: | |
certSANs: | |
- localhost | |
- 127.0.0.1 | |
- 0.0.0.0 | |
- host.docker.internal | |
controllerManager: | |
extraArgs: | |
enable-hostpath-provisioner: "true" | |
initConfiguration: | |
nodeRegistration: | |
imagePullPolicy: Always | |
criSocket: unix:///var/run/containerd/containerd.sock | |
taints: [ ] | |
kubeletExtraArgs: | |
eviction-hard: nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0% | |
joinConfiguration: | |
nodeRegistration: | |
imagePullPolicy: Always | |
criSocket: unix:///var/run/containerd/containerd.sock | |
taints: [ ] | |
kubeletExtraArgs: | |
eviction-hard: nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0% | |
machineTemplate: | |
infrastructureRef: | |
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 | |
kind: DockerMachineTemplate | |
name: capi-quickstart-control-plane | |
namespace: default | |
replicas: 1 | |
version: v1.25.0 | |
rolloutBefore: | |
certificatesExpiryDays: 14 | |
--- | |
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 | |
kind: DockerCluster | |
metadata: | |
name: capi-quickstart | |
namespace: default | |
--- | |
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 | |
kind: DockerMachineTemplate | |
metadata: | |
name: capi-quickstart-control-plane | |
namespace: default | |
spec: | |
template: | |
spec: | |
extraMounts: | |
- containerPath: /var/run/docker.sock | |
hostPath: /var/run/docker.sock | |
--- | |
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 | |
kind: DockerMachineTemplate | |
metadata: | |
name: capi-quickstart-md-0 | |
namespace: default | |
spec: | |
template: | |
spec: | |
extraMounts: | |
- containerPath: /var/run/docker.sock | |
hostPath: /var/run/docker.sock | |
--- | |
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 | |
kind: KubeadmConfigTemplate | |
metadata: | |
name: capi-quickstart-md-0 | |
namespace: default | |
spec: | |
template: | |
spec: | |
joinConfiguration: | |
nodeRegistration: | |
criSocket: unix:///var/run/containerd/containerd.sock | |
kubeletExtraArgs: | |
eviction-hard: nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apiextensions.k8s.io/v1 | |
kind: CustomResourceDefinition | |
metadata: | |
annotations: | |
cert-manager.io/inject-ca-from: capi-system/capi-serving-cert | |
controller-gen.kubebuilder.io/version: v0.13.0 | |
labels: | |
cluster.x-k8s.io/provider: cluster-api | |
clusterctl.cluster.x-k8s.io: "" | |
name: machinedeployments.cluster.x-k8s.io | |
spec: | |
conversion: | |
strategy: Webhook | |
webhook: | |
clientConfig: | |
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURXakNDQWtLZ0F3SUJBZ0lSQUxBKzM1UGU1dEZxTzdERWpyaGVoSWN3RFFZSktvWklodmNOQVFFTEJRQXcKSkRFaU1DQUdBMVVFQ2hNWmF6aHpMWE5wWnkxamJIVnpkR1Z5TFd4cFptVmplV05zWlRBZUZ3MHlOREF5TVRJeApOVE14TVRsYUZ3MHlOREExTVRJeE5UTXhNVGxhTUNReElqQWdCZ05WQkFvVEdXczRjeTF6YVdjdFkyeDFjM1JsCmNpMXNhV1psWTNsamJHVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDc0lFeWwKRkFJdnZzTHl2MThkd2VINXRHZkRZSzViZlBMa3dQbXREUThjTnRvZXdsVklLYTlXUTR2RzVwWDB4TlUwZzhCbApqRG1rVFoyZGcxd3l1SWhRNmVGWjdaSDREL0EzM0ZLbkJTMXpSS3Z3S1g3dm9pSm9QTCtuOE43YTgzN0JieHlvCnhXRGdKVWVzSHE2alU3b2I5SUdPTUd6Ylk1Qmd3dVgwaCtNVytOZ3UySDdRdzRPWS9CQjBoN25manlFRHVleXUKK0g3Zis5c0VUS0NIbUNxVllQMjhoS1hlWUtUL3VJUGtvT2F0U1Q5T0xLZ3NocXo5L1J1MStmNm9XdDB5dHhaMQp3bHVleWxublFzbXd6bWtucFBOSkdMVmZUMmc3YmY4YWZOYWl3K2JKYzdJeVVFSFMyRVpzcUlJenYwa2FNM0FYCnJmaDlqN1NGSlpXWjYxamxBZ01CQUFHamdZWXdnWU13RGdZRFZSMFBBUUgvQkFRREFnV2dNQXdHQTFVZEV3RUIKL3dRQ01BQXdZd1lEVlIwUkJGd3dXb0lrWTJGd2FTMTNaV0pvYjI5ckxYTmxjblpwWTJVdVkyRndhUzF6ZVhOMApaVzB1YzNaamdqSmpZWEJwTFhkbFltaHZiMnN0YzJWeWRtbGpaUzVqWVhCcExYTjVjM1JsYlM1emRtTXVZMngxCmMzUmxjaTVzYjJOaGJEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFOcVpRTU1CcDdkYXAxdVVyODVpRkp3cU4KSWp2YlViL3pPVkR0TkJHU2YrVjJFYnhkN25SanpQMkhUajUveE5RaTZGVm05WXZ6bEhVYXNaeWpHcEhPeWpsUgpHQzJoU0JyM1VqSytkbUdpdUowM0tiZ0NhbjkvUE5hZ2RLeG5WVEF4T005L3dCQ0Q4Qm5DNW14bTFlMnBvZXVLCkc3d3BBTlU4UkxrYUMwSlp4cDNhaUc4aGRzdnV5eFJIWkZyYnZ4eEhqWElTQ2hjUnhFMFk1VXkyS2tVZ2ZxK0UKUGViR1NKVEE5TjhuMjY0Wm0zdTBhZVR6UzNVNWkzR0RlcHVDcEdCcVRNeTBjSklpVmRqNUovMkVTcCtnelNQUwptdlFRMVJ1QUc2a0FHQ3hjbytlTE5LbUI0Sy9hS2p1aURpN2cvMzF5YVNTaitUSDRlZndjTzFoVE1WcHM4dz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K | |
service: | |
name: capi-webhook-service | |
namespace: capi-system | |
path: /convert | |
port: 443 | |
conversionReviewVersions: | |
- v1 | |
- v1beta1 | |
group: cluster.x-k8s.io | |
names: | |
categories: | |
- cluster-api | |
kind: MachineDeployment | |
listKind: MachineDeploymentList | |
plural: machinedeployments | |
shortNames: | |
- md | |
singular: machinedeployment | |
scope: Namespaced | |
versions: | |
- additionalPrinterColumns: | |
- description: Cluster | |
jsonPath: .spec.clusterName | |
name: Cluster | |
type: string | |
- description: Time duration since creation of MachineDeployment | |
jsonPath: .metadata.creationTimestamp | |
name: Age | |
type: date | |
- description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown | |
jsonPath: .status.phase | |
name: Phase | |
type: string | |
- description: Total number of non-terminated machines targeted by this MachineDeployment | |
jsonPath: .status.replicas | |
name: Replicas | |
type: integer | |
- description: Total number of ready machines targeted by this MachineDeployment | |
jsonPath: .status.readyReplicas | |
name: Ready | |
type: integer | |
- description: Total number of non-terminated machines targeted by this deployment | |
that have the desired template spec | |
jsonPath: .status.updatedReplicas | |
name: Updated | |
type: integer | |
- description: Total number of unavailable machines targeted by this MachineDeployment | |
jsonPath: .status.unavailableReplicas | |
name: Unavailable | |
type: integer | |
deprecated: true | |
name: v1alpha4 | |
schema: | |
openAPIV3Schema: | |
description: "MachineDeployment is the Schema for the machinedeployments API. | |
\n Deprecated: This type will be removed in one of the next releases." | |
properties: | |
apiVersion: | |
description: 'APIVersion defines the versioned schema of this representation | |
of an object. Servers should convert recognized schemas to the latest | |
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | |
type: string | |
kind: | |
description: 'Kind is a string value representing the REST resource this | |
object represents. Servers may infer this from the endpoint the client | |
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
metadata: | |
type: object | |
spec: | |
description: MachineDeploymentSpec defines the desired state of MachineDeployment. | |
properties: | |
clusterName: | |
description: ClusterName is the name of the Cluster this object belongs | |
to. | |
minLength: 1 | |
type: string | |
minReadySeconds: | |
description: Minimum number of seconds for which a newly created machine | |
should be ready. Defaults to 0 (machine will be considered available | |
as soon as it is ready) | |
format: int32 | |
type: integer | |
paused: | |
description: Indicates that the deployment is paused. | |
type: boolean | |
progressDeadlineSeconds: | |
description: The maximum time in seconds for a deployment to make | |
progress before it is considered to be failed. The deployment controller | |
will continue to process failed deployments and a condition with | |
a ProgressDeadlineExceeded reason will be surfaced in the deployment | |
status. Note that progress will not be estimated during the time | |
a deployment is paused. Defaults to 600s. | |
format: int32 | |
type: integer | |
replicas: | |
default: 1 | |
description: Number of desired machines. Defaults to 1. This is a | |
pointer to distinguish between explicit zero and not specified. | |
format: int32 | |
type: integer | |
revisionHistoryLimit: | |
description: The number of old MachineSets to retain to allow rollback. | |
This is a pointer to distinguish between explicit zero and not specified. | |
Defaults to 1. | |
format: int32 | |
type: integer | |
selector: | |
description: Label selector for machines. Existing MachineSets whose | |
machines are selected by this will be the ones affected by this | |
deployment. It must match the machine template's labels. | |
properties: | |
matchExpressions: | |
description: matchExpressions is a list of label selector requirements. | |
The requirements are ANDed. | |
items: | |
description: A label selector requirement is a selector that | |
contains values, a key, and an operator that relates the key | |
and values. | |
properties: | |
key: | |
description: key is the label key that the selector applies | |
to. | |
type: string | |
operator: | |
description: operator represents a key's relationship to | |
a set of values. Valid operators are In, NotIn, Exists | |
and DoesNotExist. | |
type: string | |
values: | |
description: values is an array of string values. If the | |
operator is In or NotIn, the values array must be non-empty. | |
If the operator is Exists or DoesNotExist, the values | |
array must be empty. This array is replaced during a strategic | |
merge patch. | |
items: | |
type: string | |
type: array | |
required: | |
- key | |
- operator | |
type: object | |
type: array | |
matchLabels: | |
additionalProperties: | |
type: string | |
description: matchLabels is a map of {key,value} pairs. A single | |
{key,value} in the matchLabels map is equivalent to an element | |
of matchExpressions, whose key field is "key", the operator | |
is "In", and the values array contains only "value". The requirements | |
are ANDed. | |
type: object | |
type: object | |
x-kubernetes-map-type: atomic | |
strategy: | |
description: The deployment strategy to use to replace existing machines | |
with new ones. | |
properties: | |
rollingUpdate: | |
description: Rolling update config params. Present only if MachineDeploymentStrategyType | |
= RollingUpdate. | |
properties: | |
deletePolicy: | |
description: DeletePolicy defines the policy used by the MachineDeployment | |
to identify nodes to delete when downscaling. Valid values | |
are "Random, "Newest", "Oldest" When no value is supplied, | |
the default DeletePolicy of MachineSet is used | |
enum: | |
- Random | |
- Newest | |
- Oldest | |
type: string | |
maxSurge: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be scheduled | |
above the desired number of machines. Value can be an absolute | |
number (ex: 5) or a percentage of desired machines (ex: | |
10%). This can not be 0 if MaxUnavailable is 0. Absolute | |
number is calculated from percentage by rounding up. Defaults | |
to 1. Example: when this is set to 30%, the new MachineSet | |
can be scaled up immediately when the rolling update starts, | |
such that the total number of old and new machines do not | |
exceed 130% of desired machines. Once old machines have | |
been killed, new MachineSet can be scaled up further, ensuring | |
that total number of machines running at any time during | |
the update is at most 130% of desired machines.' | |
x-kubernetes-int-or-string: true | |
maxUnavailable: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be unavailable | |
during the update. Value can be an absolute number (ex: | |
5) or a percentage of desired machines (ex: 10%). Absolute | |
number is calculated from percentage by rounding down. This | |
can not be 0 if MaxSurge is 0. Defaults to 0. Example: when | |
this is set to 30%, the old MachineSet can be scaled down | |
to 70% of desired machines immediately when the rolling | |
update starts. Once new machines are ready, old MachineSet | |
can be scaled down further, followed by scaling up the new | |
MachineSet, ensuring that the total number of machines available | |
at all times during the update is at least 70% of desired | |
machines.' | |
x-kubernetes-int-or-string: true | |
type: object | |
type: | |
description: Type of deployment. Default is RollingUpdate. | |
enum: | |
- RollingUpdate | |
- OnDelete | |
type: string | |
type: object | |
template: | |
description: Template describes the machines that will be created. | |
properties: | |
metadata: | |
description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' | |
properties: | |
annotations: | |
additionalProperties: | |
type: string | |
description: 'Annotations is an unstructured key value map | |
stored with a resource that may be set by external tools | |
to store and retrieve arbitrary metadata. They are not queryable | |
and should be preserved when modifying objects. More info: | |
http://kubernetes.io/docs/user-guide/annotations' | |
type: object | |
labels: | |
additionalProperties: | |
type: string | |
description: 'Map of string keys and values that can be used | |
to organize and categorize (scope and select) objects. May | |
match selectors of replication controllers and services. | |
More info: http://kubernetes.io/docs/user-guide/labels' | |
type: object | |
type: object | |
spec: | |
description: 'Specification of the desired behavior of the machine. | |
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' | |
properties: | |
bootstrap: | |
description: Bootstrap is a reference to a local struct which | |
encapsulates fields to configure the Machine’s bootstrapping | |
mechanism. | |
properties: | |
configRef: | |
description: ConfigRef is a reference to a bootstrap provider-specific | |
resource that holds configuration details. The reference | |
is optional to allow users/operators to specify Bootstrap.DataSecretName | |
without the need of a controller. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object | |
instead of an entire object, this string should | |
contain a valid JSON/Go field access statement, | |
such as desiredState.manifest.containers[2]. For | |
example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container | |
that triggered the event) or if no container name | |
is specified "spec.containers[2]" (container with | |
index 2 in this pod). This syntax is chosen only | |
to have some well-defined way of referencing a part | |
of an object. TODO: this design is not final and | |
this field is subject to change in the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: | |
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this | |
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
dataSecretName: | |
description: DataSecretName is the name of the secret | |
that stores the bootstrap data script. If nil, the Machine | |
should remain in the Pending state. | |
type: string | |
type: object | |
clusterName: | |
description: ClusterName is the name of the Cluster this object | |
belongs to. | |
minLength: 1 | |
type: string | |
failureDomain: | |
description: FailureDomain is the failure domain the machine | |
will be created in. Must match a key in the FailureDomains | |
map stored on the cluster object. | |
type: string | |
infrastructureRef: | |
description: InfrastructureRef is a required reference to | |
a custom resource offered by an infrastructure provider. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object instead | |
of an entire object, this string should contain a valid | |
JSON/Go field access statement, such as desiredState.manifest.containers[2]. | |
For example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container that | |
triggered the event) or if no container name is specified | |
"spec.containers[2]" (container with index 2 in this | |
pod). This syntax is chosen only to have some well-defined | |
way of referencing a part of an object. TODO: this design | |
is not final and this field is subject to change in | |
the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this reference | |
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
nodeDrainTimeout: | |
description: 'NodeDrainTimeout is the total amount of time | |
that the controller will spend on draining a node. The default | |
value is 0, meaning that the node can be drained without | |
any time limitations. NOTE: NodeDrainTimeout is different | |
from `kubectl drain --timeout`' | |
type: string | |
providerID: | |
description: ProviderID is the identification ID of the machine | |
provided by the provider. This field must match the provider | |
ID as seen on the node object corresponding to this machine. | |
This field is required by higher level consumers of cluster-api. | |
Example use case is cluster autoscaler with cluster-api | |
as provider. Clean-up logic in the autoscaler compares machines | |
to nodes to find out machines at provider which could not | |
get registered as Kubernetes nodes. With cluster-api as | |
a generic out-of-tree provider for autoscaler, this field | |
is required by autoscaler to be able to have a provider | |
view of the list of machines. Another list of nodes is queried | |
from the k8s apiserver and then a comparison is done to | |
find out unregistered machines and are marked for delete. | |
This field will be set by the actuators and consumed by | |
higher level entities like autoscaler that will be interfacing | |
with cluster-api as generic provider. | |
type: string | |
version: | |
description: Version defines the desired Kubernetes version. | |
This field is meant to be optionally used by bootstrap providers. | |
type: string | |
required: | |
- bootstrap | |
- clusterName | |
- infrastructureRef | |
type: object | |
type: object | |
required: | |
- clusterName | |
- selector | |
- template | |
type: object | |
status: | |
description: MachineDeploymentStatus defines the observed state of MachineDeployment. | |
properties: | |
availableReplicas: | |
description: Total number of available machines (ready for at least | |
minReadySeconds) targeted by this deployment. | |
format: int32 | |
type: integer | |
conditions: | |
description: Conditions defines current service state of the MachineDeployment. | |
items: | |
description: Condition defines an observation of a Cluster API resource | |
operational state. | |
properties: | |
lastTransitionTime: | |
description: Last time the condition transitioned from one status | |
to another. This should be when the underlying condition changed. | |
If that is not known, then using the time when the API field | |
changed is acceptable. | |
format: date-time | |
type: string | |
message: | |
description: A human readable message indicating details about | |
the transition. This field may be empty. | |
type: string | |
reason: | |
description: The reason for the condition's last transition | |
in CamelCase. The specific API may choose whether or not this | |
field is considered a guaranteed API. This field may not be | |
empty. | |
type: string | |
severity: | |
description: Severity provides an explicit classification of | |
Reason code, so the users or machines can immediately understand | |
the current situation and act accordingly. The Severity field | |
MUST be set only when Status=False. | |
type: string | |
status: | |
description: Status of the condition, one of True, False, Unknown. | |
type: string | |
type: | |
description: Type of condition in CamelCase or in foo.example.com/CamelCase. | |
Many .condition.type values are consistent across resources | |
like Available, but because arbitrary conditions can be useful | |
(see .node.status.conditions), the ability to deconflict is | |
important. | |
type: string | |
required: | |
- status | |
- type | |
type: object | |
type: array | |
observedGeneration: | |
description: The generation observed by the deployment controller. | |
format: int64 | |
type: integer | |
phase: | |
description: Phase represents the current phase of a MachineDeployment | |
(ScalingUp, ScalingDown, Running, Failed, or Unknown). | |
type: string | |
readyReplicas: | |
description: Total number of ready machines targeted by this deployment. | |
format: int32 | |
type: integer | |
replicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment (their labels match the selector). | |
format: int32 | |
type: integer | |
selector: | |
description: 'Selector is the same as the label selector but in the | |
string format to avoid introspection by clients. The string will | |
be in the same format as the query-param syntax. More info about | |
label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' | |
type: string | |
unavailableReplicas: | |
description: Total number of unavailable machines targeted by this | |
deployment. This is the total number of machines that are still | |
required for the deployment to have 100% available capacity. They | |
may either be machines that are running but not yet available or | |
machines that still have not been created. | |
format: int32 | |
type: integer | |
updatedReplicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment that have the desired template spec. | |
format: int32 | |
type: integer | |
type: object | |
type: object | |
served: true | |
storage: true | |
subresources: | |
scale: | |
labelSelectorPath: .status.selector | |
specReplicasPath: .spec.replicas | |
statusReplicasPath: .status.replicas | |
status: {} | |
- additionalPrinterColumns: | |
- description: Cluster | |
jsonPath: .spec.clusterName | |
name: Cluster | |
type: string | |
- description: Total number of machines desired by this MachineDeployment | |
jsonPath: .spec.replicas | |
name: Desired | |
priority: 10 | |
type: integer | |
- description: Total number of non-terminated machines targeted by this MachineDeployment | |
jsonPath: .status.replicas | |
name: Replicas | |
type: integer | |
- description: Total number of ready machines targeted by this MachineDeployment | |
jsonPath: .status.readyReplicas | |
name: Ready | |
type: integer | |
- description: Total number of non-terminated machines targeted by this deployment | |
that have the desired template spec | |
jsonPath: .status.updatedReplicas | |
name: Updated | |
type: integer | |
- description: Total number of unavailable machines targeted by this MachineDeployment | |
jsonPath: .status.unavailableReplicas | |
name: Unavailable | |
type: integer | |
- description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown | |
jsonPath: .status.phase | |
name: Phase | |
type: string | |
- description: Time duration since creation of MachineDeployment | |
jsonPath: .metadata.creationTimestamp | |
name: Age | |
type: date | |
- description: Kubernetes version associated with this MachineDeployment | |
jsonPath: .spec.template.spec.version | |
name: Version | |
type: string | |
name: v1beta1 | |
schema: | |
openAPIV3Schema: | |
description: MachineDeployment is the Schema for the machinedeployments API. | |
properties: | |
apiVersion: | |
description: 'APIVersion defines the versioned schema of this representation | |
of an object. Servers should convert recognized schemas to the latest | |
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | |
type: string | |
kind: | |
description: 'Kind is a string value representing the REST resource this | |
object represents. Servers may infer this from the endpoint the client | |
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
metadata: | |
type: object | |
spec: | |
description: MachineDeploymentSpec defines the desired state of MachineDeployment. | |
properties: | |
clusterName: | |
description: ClusterName is the name of the Cluster this object belongs | |
to. | |
minLength: 1 | |
type: string | |
minReadySeconds: | |
description: MinReadySeconds is the minimum number of seconds for | |
which a Node for a newly created machine should be ready before | |
considering the replica available. Defaults to 0 (machine will be | |
considered available as soon as the Node is ready) | |
format: int32 | |
type: integer | |
paused: | |
description: Indicates that the deployment is paused. | |
type: boolean | |
progressDeadlineSeconds: | |
description: The maximum time in seconds for a deployment to make | |
progress before it is considered to be failed. The deployment controller | |
will continue to process failed deployments and a condition with | |
a ProgressDeadlineExceeded reason will be surfaced in the deployment | |
status. Note that progress will not be estimated during the time | |
a deployment is paused. Defaults to 600s. | |
format: int32 | |
type: integer | |
replicas: | |
description: "Number of desired machines. This is a pointer to distinguish | |
between explicit zero and not specified. \n Defaults to: * if the | |
Kubernetes autoscaler min size and max size annotations are set: | |
- if it's a new MachineDeployment, use min size - if the replicas | |
field of the old MachineDeployment is < min size, use min size - | |
if the replicas field of the old MachineDeployment is > max size, | |
use max size - if the replicas field of the old MachineDeployment | |
is in the (min size, max size) range, keep the value from the oldMD | |
* otherwise use 1 Note: Defaulting will be run whenever the replicas | |
field is not set: * A new MachineDeployment is created with replicas | |
not set. * On an existing MachineDeployment the replicas field was | |
first set and is now unset. Those cases are especially relevant | |
for the following Kubernetes autoscaler use cases: * A new MachineDeployment | |
is created and replicas should be managed by the autoscaler * An | |
existing MachineDeployment which initially wasn't controlled by | |
the autoscaler should be later controlled by the autoscaler" | |
format: int32 | |
type: integer | |
revisionHistoryLimit: | |
description: The number of old MachineSets to retain to allow rollback. | |
This is a pointer to distinguish between explicit zero and not specified. | |
Defaults to 1. | |
format: int32 | |
type: integer | |
rolloutAfter: | |
description: 'RolloutAfter is a field to indicate a rollout should | |
be performed after the specified time even if no changes have been | |
made to the MachineDeployment. Example: In the YAML the time can | |
be specified in the RFC3339 format. To specify the rolloutAfter | |
target as March 9, 2023, at 9 am UTC use "2023-03-09T09:00:00Z".' | |
format: date-time | |
type: string | |
selector: | |
description: Label selector for machines. Existing MachineSets whose | |
machines are selected by this will be the ones affected by this | |
deployment. It must match the machine template's labels. | |
properties: | |
matchExpressions: | |
description: matchExpressions is a list of label selector requirements. | |
The requirements are ANDed. | |
items: | |
description: A label selector requirement is a selector that | |
contains values, a key, and an operator that relates the key | |
and values. | |
properties: | |
key: | |
description: key is the label key that the selector applies | |
to. | |
type: string | |
operator: | |
description: operator represents a key's relationship to | |
a set of values. Valid operators are In, NotIn, Exists | |
and DoesNotExist. | |
type: string | |
values: | |
description: values is an array of string values. If the | |
operator is In or NotIn, the values array must be non-empty. | |
If the operator is Exists or DoesNotExist, the values | |
array must be empty. This array is replaced during a strategic | |
merge patch. | |
items: | |
type: string | |
type: array | |
required: | |
- key | |
- operator | |
type: object | |
type: array | |
matchLabels: | |
additionalProperties: | |
type: string | |
description: matchLabels is a map of {key,value} pairs. A single | |
{key,value} in the matchLabels map is equivalent to an element | |
of matchExpressions, whose key field is "key", the operator | |
is "In", and the values array contains only "value". The requirements | |
are ANDed. | |
type: object | |
type: object | |
x-kubernetes-map-type: atomic | |
strategy: | |
description: The deployment strategy to use to replace existing machines | |
with new ones. | |
properties: | |
rollingUpdate: | |
description: Rolling update config params. Present only if MachineDeploymentStrategyType | |
= RollingUpdate. | |
properties: | |
deletePolicy: | |
description: DeletePolicy defines the policy used by the MachineDeployment | |
to identify nodes to delete when downscaling. Valid values | |
are "Random, "Newest", "Oldest" When no value is supplied, | |
the default DeletePolicy of MachineSet is used | |
enum: | |
- Random | |
- Newest | |
- Oldest | |
type: string | |
maxSurge: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be scheduled | |
above the desired number of machines. Value can be an absolute | |
number (ex: 5) or a percentage of desired machines (ex: | |
10%). This can not be 0 if MaxUnavailable is 0. Absolute | |
number is calculated from percentage by rounding up. Defaults | |
to 1. Example: when this is set to 30%, the new MachineSet | |
can be scaled up immediately when the rolling update starts, | |
such that the total number of old and new machines do not | |
exceed 130% of desired machines. Once old machines have | |
been killed, new MachineSet can be scaled up further, ensuring | |
that total number of machines running at any time during | |
the update is at most 130% of desired machines.' | |
x-kubernetes-int-or-string: true | |
maxUnavailable: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be unavailable | |
during the update. Value can be an absolute number (ex: | |
5) or a percentage of desired machines (ex: 10%). Absolute | |
number is calculated from percentage by rounding down. This | |
can not be 0 if MaxSurge is 0. Defaults to 0. Example: when | |
this is set to 30%, the old MachineSet can be scaled down | |
to 70% of desired machines immediately when the rolling | |
update starts. Once new machines are ready, old MachineSet | |
can be scaled down further, followed by scaling up the new | |
MachineSet, ensuring that the total number of machines available | |
at all times during the update is at least 70% of desired | |
machines.' | |
x-kubernetes-int-or-string: true | |
type: object | |
type: | |
description: Type of deployment. Allowed values are RollingUpdate | |
and OnDelete. The default is RollingUpdate. | |
enum: | |
- RollingUpdate | |
- OnDelete | |
type: string | |
type: object | |
template: | |
description: Template describes the machines that will be created. | |
properties: | |
metadata: | |
description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' | |
properties: | |
annotations: | |
additionalProperties: | |
type: string | |
description: 'Annotations is an unstructured key value map | |
stored with a resource that may be set by external tools | |
to store and retrieve arbitrary metadata. They are not queryable | |
and should be preserved when modifying objects. More info: | |
http://kubernetes.io/docs/user-guide/annotations' | |
type: object | |
labels: | |
additionalProperties: | |
type: string | |
description: 'Map of string keys and values that can be used | |
to organize and categorize (scope and select) objects. May | |
match selectors of replication controllers and services. | |
More info: http://kubernetes.io/docs/user-guide/labels' | |
type: object | |
type: object | |
spec: | |
description: 'Specification of the desired behavior of the machine. | |
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' | |
properties: | |
bootstrap: | |
description: Bootstrap is a reference to a local struct which | |
encapsulates fields to configure the Machine’s bootstrapping | |
mechanism. | |
properties: | |
configRef: | |
description: ConfigRef is a reference to a bootstrap provider-specific | |
resource that holds configuration details. The reference | |
is optional to allow users/operators to specify Bootstrap.DataSecretName | |
without the need of a controller. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object | |
instead of an entire object, this string should | |
contain a valid JSON/Go field access statement, | |
such as desiredState.manifest.containers[2]. For | |
example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container | |
that triggered the event) or if no container name | |
is specified "spec.containers[2]" (container with | |
index 2 in this pod). This syntax is chosen only | |
to have some well-defined way of referencing a part | |
of an object. TODO: this design is not final and | |
this field is subject to change in the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: | |
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this | |
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
dataSecretName: | |
description: DataSecretName is the name of the secret | |
that stores the bootstrap data script. If nil, the Machine | |
should remain in the Pending state. | |
type: string | |
type: object | |
clusterName: | |
description: ClusterName is the name of the Cluster this object | |
belongs to. | |
minLength: 1 | |
type: string | |
failureDomain: | |
description: FailureDomain is the failure domain the machine | |
will be created in. Must match a key in the FailureDomains | |
map stored on the cluster object. | |
type: string | |
infrastructureRef: | |
description: InfrastructureRef is a required reference to | |
a custom resource offered by an infrastructure provider. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object instead | |
of an entire object, this string should contain a valid | |
JSON/Go field access statement, such as desiredState.manifest.containers[2]. | |
For example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container that | |
triggered the event) or if no container name is specified | |
"spec.containers[2]" (container with index 2 in this | |
pod). This syntax is chosen only to have some well-defined | |
way of referencing a part of an object. TODO: this design | |
is not final and this field is subject to change in | |
the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this reference | |
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
nodeDeletionTimeout: | |
description: NodeDeletionTimeout defines how long the controller | |
will attempt to delete the Node that the Machine hosts after | |
the Machine is marked for deletion. A duration of 0 will | |
retry deletion indefinitely. Defaults to 10 seconds. | |
type: string | |
nodeDrainTimeout: | |
description: 'NodeDrainTimeout is the total amount of time | |
that the controller will spend on draining a node. The default | |
value is 0, meaning that the node can be drained without | |
any time limitations. NOTE: NodeDrainTimeout is different | |
from `kubectl drain --timeout`' | |
type: string | |
nodeVolumeDetachTimeout: | |
description: NodeVolumeDetachTimeout is the total amount of | |
time that the controller will spend on waiting for all volumes | |
to be detached. The default value is 0, meaning that the | |
volumes can be detached without any time limitations. | |
type: string | |
providerID: | |
description: ProviderID is the identification ID of the machine | |
provided by the provider. This field must match the provider | |
ID as seen on the node object corresponding to this machine. | |
This field is required by higher level consumers of cluster-api. | |
Example use case is cluster autoscaler with cluster-api | |
as provider. Clean-up logic in the autoscaler compares machines | |
to nodes to find out machines at provider which could not | |
get registered as Kubernetes nodes. With cluster-api as | |
a generic out-of-tree provider for autoscaler, this field | |
is required by autoscaler to be able to have a provider | |
view of the list of machines. Another list of nodes is queried | |
from the k8s apiserver and then a comparison is done to | |
find out unregistered machines and are marked for delete. | |
This field will be set by the actuators and consumed by | |
higher level entities like autoscaler that will be interfacing | |
with cluster-api as generic provider. | |
type: string | |
version: | |
description: Version defines the desired Kubernetes version. | |
This field is meant to be optionally used by bootstrap providers. | |
type: string | |
required: | |
- bootstrap | |
- clusterName | |
- infrastructureRef | |
type: object | |
type: object | |
required: | |
- clusterName | |
- selector | |
- template | |
type: object | |
status: | |
description: MachineDeploymentStatus defines the observed state of MachineDeployment. | |
properties: | |
availableReplicas: | |
description: Total number of available machines (ready for at least | |
minReadySeconds) targeted by this deployment. | |
format: int32 | |
type: integer | |
conditions: | |
description: Conditions defines current service state of the MachineDeployment. | |
items: | |
description: Condition defines an observation of a Cluster API resource | |
operational state. | |
properties: | |
lastTransitionTime: | |
description: Last time the condition transitioned from one status | |
to another. This should be when the underlying condition changed. | |
If that is not known, then using the time when the API field | |
changed is acceptable. | |
format: date-time | |
type: string | |
message: | |
description: A human readable message indicating details about | |
the transition. This field may be empty. | |
type: string | |
reason: | |
description: The reason for the condition's last transition | |
in CamelCase. The specific API may choose whether or not this | |
field is considered a guaranteed API. This field may not be | |
empty. | |
type: string | |
severity: | |
description: Severity provides an explicit classification of | |
Reason code, so the users or machines can immediately understand | |
the current situation and act accordingly. The Severity field | |
MUST be set only when Status=False. | |
type: string | |
status: | |
description: Status of the condition, one of True, False, Unknown. | |
type: string | |
type: | |
description: Type of condition in CamelCase or in foo.example.com/CamelCase. | |
Many .condition.type values are consistent across resources | |
like Available, but because arbitrary conditions can be useful | |
(see .node.status.conditions), the ability to deconflict is | |
important. | |
type: string | |
required: | |
- lastTransitionTime | |
- status | |
- type | |
type: object | |
type: array | |
observedGeneration: | |
description: The generation observed by the deployment controller. | |
format: int64 | |
type: integer | |
phase: | |
description: Phase represents the current phase of a MachineDeployment | |
(ScalingUp, ScalingDown, Running, Failed, or Unknown). | |
type: string | |
readyReplicas: | |
description: Total number of ready machines targeted by this deployment. | |
format: int32 | |
type: integer | |
replicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment (their labels match the selector). | |
format: int32 | |
type: integer | |
selector: | |
description: 'Selector is the same as the label selector but in the | |
string format to avoid introspection by clients. The string will | |
be in the same format as the query-param syntax. More info about | |
label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' | |
type: string | |
unavailableReplicas: | |
description: Total number of unavailable machines targeted by this | |
deployment. This is the total number of machines that are still | |
required for the deployment to have 100% available capacity. They | |
may either be machines that are running but not yet available or | |
machines that still have not been created. | |
format: int32 | |
type: integer | |
updatedReplicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment that have the desired template spec. | |
format: int32 | |
type: integer | |
type: object | |
type: object | |
served: true | |
storage: false | |
subresources: | |
scale: | |
labelSelectorPath: .status.selector | |
specReplicasPath: .spec.replicas | |
statusReplicasPath: .status.replicas | |
status: {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apiextensions.k8s.io/v1 | |
kind: CustomResourceDefinition | |
metadata: | |
annotations: | |
cert-manager.io/inject-ca-from: capi-system/capi-serving-cert | |
controller-gen.kubebuilder.io/version: v0.13.0 | |
labels: | |
cluster.x-k8s.io/provider: cluster-api | |
clusterctl.cluster.x-k8s.io: "" | |
name: machinedeployments.cluster.x-k8s.io | |
spec: | |
conversion: | |
strategy: Webhook | |
webhook: | |
clientConfig: | |
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURXakNDQWtLZ0F3SUJBZ0lSQUxBKzM1UGU1dEZxTzdERWpyaGVoSWN3RFFZSktvWklodmNOQVFFTEJRQXcKSkRFaU1DQUdBMVVFQ2hNWmF6aHpMWE5wWnkxamJIVnpkR1Z5TFd4cFptVmplV05zWlRBZUZ3MHlOREF5TVRJeApOVE14TVRsYUZ3MHlOREExTVRJeE5UTXhNVGxhTUNReElqQWdCZ05WQkFvVEdXczRjeTF6YVdjdFkyeDFjM1JsCmNpMXNhV1psWTNsamJHVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDc0lFeWwKRkFJdnZzTHl2MThkd2VINXRHZkRZSzViZlBMa3dQbXREUThjTnRvZXdsVklLYTlXUTR2RzVwWDB4TlUwZzhCbApqRG1rVFoyZGcxd3l1SWhRNmVGWjdaSDREL0EzM0ZLbkJTMXpSS3Z3S1g3dm9pSm9QTCtuOE43YTgzN0JieHlvCnhXRGdKVWVzSHE2alU3b2I5SUdPTUd6Ylk1Qmd3dVgwaCtNVytOZ3UySDdRdzRPWS9CQjBoN25manlFRHVleXUKK0g3Zis5c0VUS0NIbUNxVllQMjhoS1hlWUtUL3VJUGtvT2F0U1Q5T0xLZ3NocXo5L1J1MStmNm9XdDB5dHhaMQp3bHVleWxublFzbXd6bWtucFBOSkdMVmZUMmc3YmY4YWZOYWl3K2JKYzdJeVVFSFMyRVpzcUlJenYwa2FNM0FYCnJmaDlqN1NGSlpXWjYxamxBZ01CQUFHamdZWXdnWU13RGdZRFZSMFBBUUgvQkFRREFnV2dNQXdHQTFVZEV3RUIKL3dRQ01BQXdZd1lEVlIwUkJGd3dXb0lrWTJGd2FTMTNaV0pvYjI5ckxYTmxjblpwWTJVdVkyRndhUzF6ZVhOMApaVzB1YzNaamdqSmpZWEJwTFhkbFltaHZiMnN0YzJWeWRtbGpaUzVqWVhCcExYTjVjM1JsYlM1emRtTXVZMngxCmMzUmxjaTVzYjJOaGJEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFOcVpRTU1CcDdkYXAxdVVyODVpRkp3cU4KSWp2YlViL3pPVkR0TkJHU2YrVjJFYnhkN25SanpQMkhUajUveE5RaTZGVm05WXZ6bEhVYXNaeWpHcEhPeWpsUgpHQzJoU0JyM1VqSytkbUdpdUowM0tiZ0NhbjkvUE5hZ2RLeG5WVEF4T005L3dCQ0Q4Qm5DNW14bTFlMnBvZXVLCkc3d3BBTlU4UkxrYUMwSlp4cDNhaUc4aGRzdnV5eFJIWkZyYnZ4eEhqWElTQ2hjUnhFMFk1VXkyS2tVZ2ZxK0UKUGViR1NKVEE5TjhuMjY0Wm0zdTBhZVR6UzNVNWkzR0RlcHVDcEdCcVRNeTBjSklpVmRqNUovMkVTcCtnelNQUwptdlFRMVJ1QUc2a0FHQ3hjbytlTE5LbUI0Sy9hS2p1aURpN2cvMzF5YVNTaitUSDRlZndjTzFoVE1WcHM4dz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K | |
service: | |
name: capi-webhook-service | |
namespace: capi-system | |
path: /convert | |
port: 443 | |
conversionReviewVersions: | |
- v1 | |
- v1beta1 | |
group: cluster.x-k8s.io | |
names: | |
categories: | |
- cluster-api | |
kind: MachineDeployment | |
listKind: MachineDeploymentList | |
plural: machinedeployments | |
shortNames: | |
- md | |
singular: machinedeployment | |
scope: Namespaced | |
versions: | |
- additionalPrinterColumns: | |
- description: Cluster | |
jsonPath: .spec.clusterName | |
name: Cluster | |
type: string | |
- description: Time duration since creation of MachineDeployment | |
jsonPath: .metadata.creationTimestamp | |
name: Age | |
type: date | |
- description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown | |
jsonPath: .status.phase | |
name: Phase | |
type: string | |
- description: Total number of non-terminated machines targeted by this MachineDeployment | |
jsonPath: .status.replicas | |
name: Replicas | |
type: integer | |
- description: Total number of ready machines targeted by this MachineDeployment | |
jsonPath: .status.readyReplicas | |
name: Ready | |
type: integer | |
- description: Total number of non-terminated machines targeted by this deployment | |
that have the desired template spec | |
jsonPath: .status.updatedReplicas | |
name: Updated | |
type: integer | |
- description: Total number of unavailable machines targeted by this MachineDeployment | |
jsonPath: .status.unavailableReplicas | |
name: Unavailable | |
type: integer | |
deprecated: true | |
name: v1alpha4 | |
schema: | |
openAPIV3Schema: | |
description: "MachineDeployment is the Schema for the machinedeployments API. | |
\n Deprecated: This type will be removed in one of the next releases." | |
properties: | |
apiVersion: | |
description: 'APIVersion defines the versioned schema of this representation | |
of an object. Servers should convert recognized schemas to the latest | |
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | |
type: string | |
kind: | |
description: 'Kind is a string value representing the REST resource this | |
object represents. Servers may infer this from the endpoint the client | |
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
metadata: | |
type: object | |
spec: | |
description: MachineDeploymentSpec defines the desired state of MachineDeployment. | |
properties: | |
clusterName: | |
description: ClusterName is the name of the Cluster this object belongs | |
to. | |
minLength: 1 | |
type: string | |
minReadySeconds: | |
description: Minimum number of seconds for which a newly created machine | |
should be ready. Defaults to 0 (machine will be considered available | |
as soon as it is ready) | |
format: int32 | |
type: integer | |
paused: | |
description: Indicates that the deployment is paused. | |
type: boolean | |
progressDeadlineSeconds: | |
description: The maximum time in seconds for a deployment to make | |
progress before it is considered to be failed. The deployment controller | |
will continue to process failed deployments and a condition with | |
a ProgressDeadlineExceeded reason will be surfaced in the deployment | |
status. Note that progress will not be estimated during the time | |
a deployment is paused. Defaults to 600s. | |
format: int32 | |
type: integer | |
replicas: | |
default: 1 | |
description: Number of desired machines. Defaults to 1. This is a | |
pointer to distinguish between explicit zero and not specified. | |
format: int32 | |
type: integer | |
revisionHistoryLimit: | |
description: The number of old MachineSets to retain to allow rollback. | |
This is a pointer to distinguish between explicit zero and not specified. | |
Defaults to 1. | |
format: int32 | |
type: integer | |
selector: | |
description: Label selector for machines. Existing MachineSets whose | |
machines are selected by this will be the ones affected by this | |
deployment. It must match the machine template's labels. | |
properties: | |
matchExpressions: | |
description: matchExpressions is a list of label selector requirements. | |
The requirements are ANDed. | |
items: | |
description: A label selector requirement is a selector that | |
contains values, a key, and an operator that relates the key | |
and values. | |
properties: | |
key: | |
description: key is the label key that the selector applies | |
to. | |
type: string | |
operator: | |
description: operator represents a key's relationship to | |
a set of values. Valid operators are In, NotIn, Exists | |
and DoesNotExist. | |
type: string | |
values: | |
description: values is an array of string values. If the | |
operator is In or NotIn, the values array must be non-empty. | |
If the operator is Exists or DoesNotExist, the values | |
array must be empty. This array is replaced during a strategic | |
merge patch. | |
items: | |
type: string | |
type: array | |
required: | |
- key | |
- operator | |
type: object | |
type: array | |
matchLabels: | |
additionalProperties: | |
type: string | |
description: matchLabels is a map of {key,value} pairs. A single | |
{key,value} in the matchLabels map is equivalent to an element | |
of matchExpressions, whose key field is "key", the operator | |
is "In", and the values array contains only "value". The requirements | |
are ANDed. | |
type: object | |
type: object | |
x-kubernetes-map-type: atomic | |
strategy: | |
description: The deployment strategy to use to replace existing machines | |
with new ones. | |
properties: | |
rollingUpdate: | |
description: Rolling update config params. Present only if MachineDeploymentStrategyType | |
= RollingUpdate. | |
properties: | |
deletePolicy: | |
description: DeletePolicy defines the policy used by the MachineDeployment | |
to identify nodes to delete when downscaling. Valid values | |
are "Random, "Newest", "Oldest" When no value is supplied, | |
the default DeletePolicy of MachineSet is used | |
enum: | |
- Random | |
- Newest | |
- Oldest | |
type: string | |
maxSurge: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be scheduled | |
above the desired number of machines. Value can be an absolute | |
number (ex: 5) or a percentage of desired machines (ex: | |
10%). This can not be 0 if MaxUnavailable is 0. Absolute | |
number is calculated from percentage by rounding up. Defaults | |
to 1. Example: when this is set to 30%, the new MachineSet | |
can be scaled up immediately when the rolling update starts, | |
such that the total number of old and new machines do not | |
exceed 130% of desired machines. Once old machines have | |
been killed, new MachineSet can be scaled up further, ensuring | |
that total number of machines running at any time during | |
the update is at most 130% of desired machines.' | |
x-kubernetes-int-or-string: true | |
maxUnavailable: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be unavailable | |
during the update. Value can be an absolute number (ex: | |
5) or a percentage of desired machines (ex: 10%). Absolute | |
number is calculated from percentage by rounding down. This | |
can not be 0 if MaxSurge is 0. Defaults to 0. Example: when | |
this is set to 30%, the old MachineSet can be scaled down | |
to 70% of desired machines immediately when the rolling | |
update starts. Once new machines are ready, old MachineSet | |
can be scaled down further, followed by scaling up the new | |
MachineSet, ensuring that the total number of machines available | |
at all times during the update is at least 70% of desired | |
machines.' | |
x-kubernetes-int-or-string: true | |
type: object | |
type: | |
description: Type of deployment. Default is RollingUpdate. | |
enum: | |
- RollingUpdate | |
- OnDelete | |
type: string | |
type: object | |
template: | |
description: Template describes the machines that will be created. | |
properties: | |
metadata: | |
description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' | |
properties: | |
annotations: | |
additionalProperties: | |
type: string | |
description: 'Annotations is an unstructured key value map | |
stored with a resource that may be set by external tools | |
to store and retrieve arbitrary metadata. They are not queryable | |
and should be preserved when modifying objects. More info: | |
http://kubernetes.io/docs/user-guide/annotations' | |
type: object | |
labels: | |
additionalProperties: | |
type: string | |
description: 'Map of string keys and values that can be used | |
to organize and categorize (scope and select) objects. May | |
match selectors of replication controllers and services. | |
More info: http://kubernetes.io/docs/user-guide/labels' | |
type: object | |
type: object | |
spec: | |
description: 'Specification of the desired behavior of the machine. | |
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' | |
properties: | |
bootstrap: | |
description: Bootstrap is a reference to a local struct which | |
encapsulates fields to configure the Machine’s bootstrapping | |
mechanism. | |
properties: | |
configRef: | |
description: ConfigRef is a reference to a bootstrap provider-specific | |
resource that holds configuration details. The reference | |
is optional to allow users/operators to specify Bootstrap.DataSecretName | |
without the need of a controller. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object | |
instead of an entire object, this string should | |
contain a valid JSON/Go field access statement, | |
such as desiredState.manifest.containers[2]. For | |
example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container | |
that triggered the event) or if no container name | |
is specified "spec.containers[2]" (container with | |
index 2 in this pod). This syntax is chosen only | |
to have some well-defined way of referencing a part | |
of an object. TODO: this design is not final and | |
this field is subject to change in the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: | |
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this | |
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
dataSecretName: | |
description: DataSecretName is the name of the secret | |
that stores the bootstrap data script. If nil, the Machine | |
should remain in the Pending state. | |
type: string | |
type: object | |
clusterName: | |
description: ClusterName is the name of the Cluster this object | |
belongs to. | |
minLength: 1 | |
type: string | |
failureDomain: | |
description: FailureDomain is the failure domain the machine | |
will be created in. Must match a key in the FailureDomains | |
map stored on the cluster object. | |
type: string | |
infrastructureRef: | |
description: InfrastructureRef is a required reference to | |
a custom resource offered by an infrastructure provider. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object instead | |
of an entire object, this string should contain a valid | |
JSON/Go field access statement, such as desiredState.manifest.containers[2]. | |
For example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container that | |
triggered the event) or if no container name is specified | |
"spec.containers[2]" (container with index 2 in this | |
pod). This syntax is chosen only to have some well-defined | |
way of referencing a part of an object. TODO: this design | |
is not final and this field is subject to change in | |
the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this reference | |
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
nodeDrainTimeout: | |
description: 'NodeDrainTimeout is the total amount of time | |
that the controller will spend on draining a node. The default | |
value is 0, meaning that the node can be drained without | |
any time limitations. NOTE: NodeDrainTimeout is different | |
from `kubectl drain --timeout`' | |
type: string | |
providerID: | |
description: ProviderID is the identification ID of the machine | |
provided by the provider. This field must match the provider | |
ID as seen on the node object corresponding to this machine. | |
This field is required by higher level consumers of cluster-api. | |
Example use case is cluster autoscaler with cluster-api | |
as provider. Clean-up logic in the autoscaler compares machines | |
to nodes to find out machines at provider which could not | |
get registered as Kubernetes nodes. With cluster-api as | |
a generic out-of-tree provider for autoscaler, this field | |
is required by autoscaler to be able to have a provider | |
view of the list of machines. Another list of nodes is queried | |
from the k8s apiserver and then a comparison is done to | |
find out unregistered machines and are marked for delete. | |
This field will be set by the actuators and consumed by | |
higher level entities like autoscaler that will be interfacing | |
with cluster-api as generic provider. | |
type: string | |
version: | |
description: Version defines the desired Kubernetes version. | |
This field is meant to be optionally used by bootstrap providers. | |
type: string | |
required: | |
- bootstrap | |
- clusterName | |
- infrastructureRef | |
type: object | |
type: object | |
required: | |
- clusterName | |
- selector | |
- template | |
type: object | |
status: | |
description: MachineDeploymentStatus defines the observed state of MachineDeployment. | |
properties: | |
availableReplicas: | |
description: Total number of available machines (ready for at least | |
minReadySeconds) targeted by this deployment. | |
format: int32 | |
type: integer | |
conditions: | |
description: Conditions defines current service state of the MachineDeployment. | |
items: | |
description: Condition defines an observation of a Cluster API resource | |
operational state. | |
properties: | |
lastTransitionTime: | |
description: Last time the condition transitioned from one status | |
to another. This should be when the underlying condition changed. | |
If that is not known, then using the time when the API field | |
changed is acceptable. | |
format: date-time | |
type: string | |
message: | |
description: A human readable message indicating details about | |
the transition. This field may be empty. | |
type: string | |
reason: | |
description: The reason for the condition's last transition | |
in CamelCase. The specific API may choose whether or not this | |
field is considered a guaranteed API. This field may not be | |
empty. | |
type: string | |
severity: | |
description: Severity provides an explicit classification of | |
Reason code, so the users or machines can immediately understand | |
the current situation and act accordingly. The Severity field | |
MUST be set only when Status=False. | |
type: string | |
status: | |
description: Status of the condition, one of True, False, Unknown. | |
type: string | |
type: | |
description: Type of condition in CamelCase or in foo.example.com/CamelCase. | |
Many .condition.type values are consistent across resources | |
like Available, but because arbitrary conditions can be useful | |
(see .node.status.conditions), the ability to deconflict is | |
important. | |
type: string | |
required: | |
- status | |
- type | |
type: object | |
type: array | |
observedGeneration: | |
description: The generation observed by the deployment controller. | |
format: int64 | |
type: integer | |
phase: | |
description: Phase represents the current phase of a MachineDeployment | |
(ScalingUp, ScalingDown, Running, Failed, or Unknown). | |
type: string | |
readyReplicas: | |
description: Total number of ready machines targeted by this deployment. | |
format: int32 | |
type: integer | |
replicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment (their labels match the selector). | |
format: int32 | |
type: integer | |
selector: | |
description: 'Selector is the same as the label selector but in the | |
string format to avoid introspection by clients. The string will | |
be in the same format as the query-param syntax. More info about | |
label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' | |
type: string | |
unavailableReplicas: | |
description: Total number of unavailable machines targeted by this | |
deployment. This is the total number of machines that are still | |
required for the deployment to have 100% available capacity. They | |
may either be machines that are running but not yet available or | |
machines that still have not been created. | |
format: int32 | |
type: integer | |
updatedReplicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment that have the desired template spec. | |
format: int32 | |
type: integer | |
type: object | |
type: object | |
served: true | |
storage: false | |
subresources: | |
scale: | |
labelSelectorPath: .status.selector | |
specReplicasPath: .spec.replicas | |
statusReplicasPath: .status.replicas | |
status: {} | |
- additionalPrinterColumns: | |
- description: Cluster | |
jsonPath: .spec.clusterName | |
name: Cluster | |
type: string | |
- description: Total number of machines desired by this MachineDeployment | |
jsonPath: .spec.replicas | |
name: Desired | |
priority: 10 | |
type: integer | |
- description: Total number of non-terminated machines targeted by this MachineDeployment | |
jsonPath: .status.replicas | |
name: Replicas | |
type: integer | |
- description: Total number of ready machines targeted by this MachineDeployment | |
jsonPath: .status.readyReplicas | |
name: Ready | |
type: integer | |
- description: Total number of non-terminated machines targeted by this deployment | |
that have the desired template spec | |
jsonPath: .status.updatedReplicas | |
name: Updated | |
type: integer | |
- description: Total number of unavailable machines targeted by this MachineDeployment | |
jsonPath: .status.unavailableReplicas | |
name: Unavailable | |
type: integer | |
- description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown | |
jsonPath: .status.phase | |
name: Phase | |
type: string | |
- description: Time duration since creation of MachineDeployment | |
jsonPath: .metadata.creationTimestamp | |
name: Age | |
type: date | |
- description: Kubernetes version associated with this MachineDeployment | |
jsonPath: .spec.template.spec.version | |
name: Version | |
type: string | |
name: v1beta1 | |
schema: | |
openAPIV3Schema: | |
description: MachineDeployment is the Schema for the machinedeployments API. | |
properties: | |
apiVersion: | |
description: 'APIVersion defines the versioned schema of this representation | |
of an object. Servers should convert recognized schemas to the latest | |
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | |
type: string | |
kind: | |
description: 'Kind is a string value representing the REST resource this | |
object represents. Servers may infer this from the endpoint the client | |
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
metadata: | |
type: object | |
spec: | |
description: MachineDeploymentSpec defines the desired state of MachineDeployment. | |
properties: | |
clusterName: | |
description: ClusterName is the name of the Cluster this object belongs | |
to. | |
minLength: 1 | |
type: string | |
minReadySeconds: | |
description: MinReadySeconds is the minimum number of seconds for | |
which a Node for a newly created machine should be ready before | |
considering the replica available. Defaults to 0 (machine will be | |
considered available as soon as the Node is ready) | |
format: int32 | |
type: integer | |
paused: | |
description: Indicates that the deployment is paused. | |
type: boolean | |
progressDeadlineSeconds: | |
description: The maximum time in seconds for a deployment to make | |
progress before it is considered to be failed. The deployment controller | |
will continue to process failed deployments and a condition with | |
a ProgressDeadlineExceeded reason will be surfaced in the deployment | |
status. Note that progress will not be estimated during the time | |
a deployment is paused. Defaults to 600s. | |
format: int32 | |
type: integer | |
replicas: | |
description: "Number of desired machines. This is a pointer to distinguish | |
between explicit zero and not specified. \n Defaults to: * if the | |
Kubernetes autoscaler min size and max size annotations are set: | |
- if it's a new MachineDeployment, use min size - if the replicas | |
field of the old MachineDeployment is < min size, use min size - | |
if the replicas field of the old MachineDeployment is > max size, | |
use max size - if the replicas field of the old MachineDeployment | |
is in the (min size, max size) range, keep the value from the oldMD | |
* otherwise use 1 Note: Defaulting will be run whenever the replicas | |
field is not set: * A new MachineDeployment is created with replicas | |
not set. * On an existing MachineDeployment the replicas field was | |
first set and is now unset. Those cases are especially relevant | |
for the following Kubernetes autoscaler use cases: * A new MachineDeployment | |
is created and replicas should be managed by the autoscaler * An | |
existing MachineDeployment which initially wasn't controlled by | |
the autoscaler should be later controlled by the autoscaler" | |
format: int32 | |
type: integer | |
revisionHistoryLimit: | |
description: The number of old MachineSets to retain to allow rollback. | |
This is a pointer to distinguish between explicit zero and not specified. | |
Defaults to 1. | |
format: int32 | |
type: integer | |
rolloutAfter: | |
description: 'RolloutAfter is a field to indicate a rollout should | |
be performed after the specified time even if no changes have been | |
made to the MachineDeployment. Example: In the YAML the time can | |
be specified in the RFC3339 format. To specify the rolloutAfter | |
target as March 9, 2023, at 9 am UTC use "2023-03-09T09:00:00Z".' | |
format: date-time | |
type: string | |
selector: | |
description: Label selector for machines. Existing MachineSets whose | |
machines are selected by this will be the ones affected by this | |
deployment. It must match the machine template's labels. | |
properties: | |
matchExpressions: | |
description: matchExpressions is a list of label selector requirements. | |
The requirements are ANDed. | |
items: | |
description: A label selector requirement is a selector that | |
contains values, a key, and an operator that relates the key | |
and values. | |
properties: | |
key: | |
description: key is the label key that the selector applies | |
to. | |
type: string | |
operator: | |
description: operator represents a key's relationship to | |
a set of values. Valid operators are In, NotIn, Exists | |
and DoesNotExist. | |
type: string | |
values: | |
description: values is an array of string values. If the | |
operator is In or NotIn, the values array must be non-empty. | |
If the operator is Exists or DoesNotExist, the values | |
array must be empty. This array is replaced during a strategic | |
merge patch. | |
items: | |
type: string | |
type: array | |
required: | |
- key | |
- operator | |
type: object | |
type: array | |
matchLabels: | |
additionalProperties: | |
type: string | |
description: matchLabels is a map of {key,value} pairs. A single | |
{key,value} in the matchLabels map is equivalent to an element | |
of matchExpressions, whose key field is "key", the operator | |
is "In", and the values array contains only "value". The requirements | |
are ANDed. | |
type: object | |
type: object | |
x-kubernetes-map-type: atomic | |
strategy: | |
description: The deployment strategy to use to replace existing machines | |
with new ones. | |
properties: | |
rollingUpdate: | |
description: Rolling update config params. Present only if MachineDeploymentStrategyType | |
= RollingUpdate. | |
properties: | |
deletePolicy: | |
description: DeletePolicy defines the policy used by the MachineDeployment | |
to identify nodes to delete when downscaling. Valid values | |
are "Random, "Newest", "Oldest" When no value is supplied, | |
the default DeletePolicy of MachineSet is used | |
enum: | |
- Random | |
- Newest | |
- Oldest | |
type: string | |
maxSurge: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be scheduled | |
above the desired number of machines. Value can be an absolute | |
number (ex: 5) or a percentage of desired machines (ex: | |
10%). This can not be 0 if MaxUnavailable is 0. Absolute | |
number is calculated from percentage by rounding up. Defaults | |
to 1. Example: when this is set to 30%, the new MachineSet | |
can be scaled up immediately when the rolling update starts, | |
such that the total number of old and new machines do not | |
exceed 130% of desired machines. Once old machines have | |
been killed, new MachineSet can be scaled up further, ensuring | |
that total number of machines running at any time during | |
the update is at most 130% of desired machines.' | |
x-kubernetes-int-or-string: true | |
maxUnavailable: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be unavailable | |
during the update. Value can be an absolute number (ex: | |
5) or a percentage of desired machines (ex: 10%). Absolute | |
number is calculated from percentage by rounding down. This | |
can not be 0 if MaxSurge is 0. Defaults to 0. Example: when | |
this is set to 30%, the old MachineSet can be scaled down | |
to 70% of desired machines immediately when the rolling | |
update starts. Once new machines are ready, old MachineSet | |
can be scaled down further, followed by scaling up the new | |
MachineSet, ensuring that the total number of machines available | |
at all times during the update is at least 70% of desired | |
machines.' | |
x-kubernetes-int-or-string: true | |
type: object | |
type: | |
description: Type of deployment. Allowed values are RollingUpdate | |
and OnDelete. The default is RollingUpdate. | |
enum: | |
- RollingUpdate | |
- OnDelete | |
type: string | |
type: object | |
template: | |
description: Template describes the machines that will be created. | |
properties: | |
metadata: | |
description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' | |
properties: | |
annotations: | |
additionalProperties: | |
type: string | |
description: 'Annotations is an unstructured key value map | |
stored with a resource that may be set by external tools | |
to store and retrieve arbitrary metadata. They are not queryable | |
and should be preserved when modifying objects. More info: | |
http://kubernetes.io/docs/user-guide/annotations' | |
type: object | |
labels: | |
additionalProperties: | |
type: string | |
description: 'Map of string keys and values that can be used | |
to organize and categorize (scope and select) objects. May | |
match selectors of replication controllers and services. | |
More info: http://kubernetes.io/docs/user-guide/labels' | |
type: object | |
type: object | |
spec: | |
description: 'Specification of the desired behavior of the machine. | |
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' | |
properties: | |
bootstrap: | |
description: Bootstrap is a reference to a local struct which | |
encapsulates fields to configure the Machine’s bootstrapping | |
mechanism. | |
properties: | |
configRef: | |
description: ConfigRef is a reference to a bootstrap provider-specific | |
resource that holds configuration details. The reference | |
is optional to allow users/operators to specify Bootstrap.DataSecretName | |
without the need of a controller. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object | |
instead of an entire object, this string should | |
contain a valid JSON/Go field access statement, | |
such as desiredState.manifest.containers[2]. For | |
example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container | |
that triggered the event) or if no container name | |
is specified "spec.containers[2]" (container with | |
index 2 in this pod). This syntax is chosen only | |
to have some well-defined way of referencing a part | |
of an object. TODO: this design is not final and | |
this field is subject to change in the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: | |
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this | |
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
dataSecretName: | |
description: DataSecretName is the name of the secret | |
that stores the bootstrap data script. If nil, the Machine | |
should remain in the Pending state. | |
type: string | |
type: object | |
clusterName: | |
description: ClusterName is the name of the Cluster this object | |
belongs to. | |
minLength: 1 | |
type: string | |
failureDomain: | |
description: FailureDomain is the failure domain the machine | |
will be created in. Must match a key in the FailureDomains | |
map stored on the cluster object. | |
type: string | |
infrastructureRef: | |
description: InfrastructureRef is a required reference to | |
a custom resource offered by an infrastructure provider. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object instead | |
of an entire object, this string should contain a valid | |
JSON/Go field access statement, such as desiredState.manifest.containers[2]. | |
For example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container that | |
triggered the event) or if no container name is specified | |
"spec.containers[2]" (container with index 2 in this | |
pod). This syntax is chosen only to have some well-defined | |
way of referencing a part of an object. TODO: this design | |
is not final and this field is subject to change in | |
the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this reference | |
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
nodeDeletionTimeout: | |
description: NodeDeletionTimeout defines how long the controller | |
will attempt to delete the Node that the Machine hosts after | |
the Machine is marked for deletion. A duration of 0 will | |
retry deletion indefinitely. Defaults to 10 seconds. | |
type: string | |
nodeDrainTimeout: | |
description: 'NodeDrainTimeout is the total amount of time | |
that the controller will spend on draining a node. The default | |
value is 0, meaning that the node can be drained without | |
any time limitations. NOTE: NodeDrainTimeout is different | |
from `kubectl drain --timeout`' | |
type: string | |
nodeVolumeDetachTimeout: | |
description: NodeVolumeDetachTimeout is the total amount of | |
time that the controller will spend on waiting for all volumes | |
to be detached. The default value is 0, meaning that the | |
volumes can be detached without any time limitations. | |
type: string | |
providerID: | |
description: ProviderID is the identification ID of the machine | |
provided by the provider. This field must match the provider | |
ID as seen on the node object corresponding to this machine. | |
This field is required by higher level consumers of cluster-api. | |
Example use case is cluster autoscaler with cluster-api | |
as provider. Clean-up logic in the autoscaler compares machines | |
to nodes to find out machines at provider which could not | |
get registered as Kubernetes nodes. With cluster-api as | |
a generic out-of-tree provider for autoscaler, this field | |
is required by autoscaler to be able to have a provider | |
view of the list of machines. Another list of nodes is queried | |
from the k8s apiserver and then a comparison is done to | |
find out unregistered machines and are marked for delete. | |
This field will be set by the actuators and consumed by | |
higher level entities like autoscaler that will be interfacing | |
with cluster-api as generic provider. | |
type: string | |
version: | |
description: Version defines the desired Kubernetes version. | |
This field is meant to be optionally used by bootstrap providers. | |
type: string | |
required: | |
- bootstrap | |
- clusterName | |
- infrastructureRef | |
type: object | |
type: object | |
required: | |
- clusterName | |
- selector | |
- template | |
type: object | |
status: | |
description: MachineDeploymentStatus defines the observed state of MachineDeployment. | |
properties: | |
availableReplicas: | |
description: Total number of available machines (ready for at least | |
minReadySeconds) targeted by this deployment. | |
format: int32 | |
type: integer | |
conditions: | |
description: Conditions defines current service state of the MachineDeployment. | |
items: | |
description: Condition defines an observation of a Cluster API resource | |
operational state. | |
properties: | |
lastTransitionTime: | |
description: Last time the condition transitioned from one status | |
to another. This should be when the underlying condition changed. | |
If that is not known, then using the time when the API field | |
changed is acceptable. | |
format: date-time | |
type: string | |
message: | |
description: A human readable message indicating details about | |
the transition. This field may be empty. | |
type: string | |
reason: | |
description: The reason for the condition's last transition | |
in CamelCase. The specific API may choose whether or not this | |
field is considered a guaranteed API. This field may not be | |
empty. | |
type: string | |
severity: | |
description: Severity provides an explicit classification of | |
Reason code, so the users or machines can immediately understand | |
the current situation and act accordingly. The Severity field | |
MUST be set only when Status=False. | |
type: string | |
status: | |
description: Status of the condition, one of True, False, Unknown. | |
type: string | |
type: | |
description: Type of condition in CamelCase or in foo.example.com/CamelCase. | |
Many .condition.type values are consistent across resources | |
like Available, but because arbitrary conditions can be useful | |
(see .node.status.conditions), the ability to deconflict is | |
important. | |
type: string | |
required: | |
- lastTransitionTime | |
- status | |
- type | |
type: object | |
type: array | |
observedGeneration: | |
description: The generation observed by the deployment controller. | |
format: int64 | |
type: integer | |
phase: | |
description: Phase represents the current phase of a MachineDeployment | |
(ScalingUp, ScalingDown, Running, Failed, or Unknown). | |
type: string | |
readyReplicas: | |
description: Total number of ready machines targeted by this deployment. | |
format: int32 | |
type: integer | |
replicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment (their labels match the selector). | |
format: int32 | |
type: integer | |
selector: | |
description: 'Selector is the same as the label selector but in the | |
string format to avoid introspection by clients. The string will | |
be in the same format as the query-param syntax. More info about | |
label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' | |
type: string | |
unavailableReplicas: | |
description: Total number of unavailable machines targeted by this | |
deployment. This is the total number of machines that are still | |
required for the deployment to have 100% available capacity. They | |
may either be machines that are running but not yet available or | |
machines that still have not been created. | |
format: int32 | |
type: integer | |
updatedReplicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment that have the desired template spec. | |
format: int32 | |
type: integer | |
type: object | |
type: object | |
served: true | |
storage: true | |
subresources: | |
scale: | |
labelSelectorPath: .status.selector | |
specReplicasPath: .spec.replicas | |
statusReplicasPath: .status.replicas | |
status: {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apiextensions.k8s.io/v1 | |
kind: CustomResourceDefinition | |
metadata: | |
annotations: | |
cert-manager.io/inject-ca-from: capi-system/capi-serving-cert | |
controller-gen.kubebuilder.io/version: v0.13.0 | |
labels: | |
cluster.x-k8s.io/provider: cluster-api | |
clusterctl.cluster.x-k8s.io: "" | |
name: machinedeployments.cluster.x-k8s.io | |
spec: | |
conversion: | |
strategy: Webhook | |
webhook: | |
clientConfig: | |
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURXakNDQWtLZ0F3SUJBZ0lSQUxBKzM1UGU1dEZxTzdERWpyaGVoSWN3RFFZSktvWklodmNOQVFFTEJRQXcKSkRFaU1DQUdBMVVFQ2hNWmF6aHpMWE5wWnkxamJIVnpkR1Z5TFd4cFptVmplV05zWlRBZUZ3MHlOREF5TVRJeApOVE14TVRsYUZ3MHlOREExTVRJeE5UTXhNVGxhTUNReElqQWdCZ05WQkFvVEdXczRjeTF6YVdjdFkyeDFjM1JsCmNpMXNhV1psWTNsamJHVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDc0lFeWwKRkFJdnZzTHl2MThkd2VINXRHZkRZSzViZlBMa3dQbXREUThjTnRvZXdsVklLYTlXUTR2RzVwWDB4TlUwZzhCbApqRG1rVFoyZGcxd3l1SWhRNmVGWjdaSDREL0EzM0ZLbkJTMXpSS3Z3S1g3dm9pSm9QTCtuOE43YTgzN0JieHlvCnhXRGdKVWVzSHE2alU3b2I5SUdPTUd6Ylk1Qmd3dVgwaCtNVytOZ3UySDdRdzRPWS9CQjBoN25manlFRHVleXUKK0g3Zis5c0VUS0NIbUNxVllQMjhoS1hlWUtUL3VJUGtvT2F0U1Q5T0xLZ3NocXo5L1J1MStmNm9XdDB5dHhaMQp3bHVleWxublFzbXd6bWtucFBOSkdMVmZUMmc3YmY4YWZOYWl3K2JKYzdJeVVFSFMyRVpzcUlJenYwa2FNM0FYCnJmaDlqN1NGSlpXWjYxamxBZ01CQUFHamdZWXdnWU13RGdZRFZSMFBBUUgvQkFRREFnV2dNQXdHQTFVZEV3RUIKL3dRQ01BQXdZd1lEVlIwUkJGd3dXb0lrWTJGd2FTMTNaV0pvYjI5ckxYTmxjblpwWTJVdVkyRndhUzF6ZVhOMApaVzB1YzNaamdqSmpZWEJwTFhkbFltaHZiMnN0YzJWeWRtbGpaUzVqWVhCcExYTjVjM1JsYlM1emRtTXVZMngxCmMzUmxjaTVzYjJOaGJEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFOcVpRTU1CcDdkYXAxdVVyODVpRkp3cU4KSWp2YlViL3pPVkR0TkJHU2YrVjJFYnhkN25SanpQMkhUajUveE5RaTZGVm05WXZ6bEhVYXNaeWpHcEhPeWpsUgpHQzJoU0JyM1VqSytkbUdpdUowM0tiZ0NhbjkvUE5hZ2RLeG5WVEF4T005L3dCQ0Q4Qm5DNW14bTFlMnBvZXVLCkc3d3BBTlU4UkxrYUMwSlp4cDNhaUc4aGRzdnV5eFJIWkZyYnZ4eEhqWElTQ2hjUnhFMFk1VXkyS2tVZ2ZxK0UKUGViR1NKVEE5TjhuMjY0Wm0zdTBhZVR6UzNVNWkzR0RlcHVDcEdCcVRNeTBjSklpVmRqNUovMkVTcCtnelNQUwptdlFRMVJ1QUc2a0FHQ3hjbytlTE5LbUI0Sy9hS2p1aURpN2cvMzF5YVNTaitUSDRlZndjTzFoVE1WcHM4dz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K | |
service: | |
name: capi-webhook-service | |
namespace: capi-system | |
path: /convert | |
port: 443 | |
conversionReviewVersions: | |
- v1 | |
- v1beta1 | |
group: cluster.x-k8s.io | |
names: | |
categories: | |
- cluster-api | |
kind: MachineDeployment | |
listKind: MachineDeploymentList | |
plural: machinedeployments | |
shortNames: | |
- md | |
singular: machinedeployment | |
scope: Namespaced | |
versions: | |
- additionalPrinterColumns: | |
- description: Cluster | |
jsonPath: .spec.clusterName | |
name: Cluster | |
type: string | |
- description: Total number of machines desired by this MachineDeployment | |
jsonPath: .spec.replicas | |
name: Desired | |
priority: 10 | |
type: integer | |
- description: Total number of non-terminated machines targeted by this MachineDeployment | |
jsonPath: .status.replicas | |
name: Replicas | |
type: integer | |
- description: Total number of ready machines targeted by this MachineDeployment | |
jsonPath: .status.readyReplicas | |
name: Ready | |
type: integer | |
- description: Total number of non-terminated machines targeted by this deployment | |
that have the desired template spec | |
jsonPath: .status.updatedReplicas | |
name: Updated | |
type: integer | |
- description: Total number of unavailable machines targeted by this MachineDeployment | |
jsonPath: .status.unavailableReplicas | |
name: Unavailable | |
type: integer | |
- description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown | |
jsonPath: .status.phase | |
name: Phase | |
type: string | |
- description: Time duration since creation of MachineDeployment | |
jsonPath: .metadata.creationTimestamp | |
name: Age | |
type: date | |
- description: Kubernetes version associated with this MachineDeployment | |
jsonPath: .spec.template.spec.version | |
name: Version | |
type: string | |
name: v1beta1 | |
schema: | |
openAPIV3Schema: | |
description: MachineDeployment is the Schema for the machinedeployments API. | |
properties: | |
apiVersion: | |
description: 'APIVersion defines the versioned schema of this representation | |
of an object. Servers should convert recognized schemas to the latest | |
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | |
type: string | |
kind: | |
description: 'Kind is a string value representing the REST resource this | |
object represents. Servers may infer this from the endpoint the client | |
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
metadata: | |
type: object | |
spec: | |
description: MachineDeploymentSpec defines the desired state of MachineDeployment. | |
properties: | |
clusterName: | |
description: ClusterName is the name of the Cluster this object belongs | |
to. | |
minLength: 1 | |
type: string | |
minReadySeconds: | |
description: MinReadySeconds is the minimum number of seconds for | |
which a Node for a newly created machine should be ready before | |
considering the replica available. Defaults to 0 (machine will be | |
considered available as soon as the Node is ready) | |
format: int32 | |
type: integer | |
paused: | |
description: Indicates that the deployment is paused. | |
type: boolean | |
progressDeadlineSeconds: | |
description: The maximum time in seconds for a deployment to make | |
progress before it is considered to be failed. The deployment controller | |
will continue to process failed deployments and a condition with | |
a ProgressDeadlineExceeded reason will be surfaced in the deployment | |
status. Note that progress will not be estimated during the time | |
a deployment is paused. Defaults to 600s. | |
format: int32 | |
type: integer | |
replicas: | |
description: "Number of desired machines. This is a pointer to distinguish | |
between explicit zero and not specified. \n Defaults to: * if the | |
Kubernetes autoscaler min size and max size annotations are set: | |
- if it's a new MachineDeployment, use min size - if the replicas | |
field of the old MachineDeployment is < min size, use min size - | |
if the replicas field of the old MachineDeployment is > max size, | |
use max size - if the replicas field of the old MachineDeployment | |
is in the (min size, max size) range, keep the value from the oldMD | |
* otherwise use 1 Note: Defaulting will be run whenever the replicas | |
field is not set: * A new MachineDeployment is created with replicas | |
not set. * On an existing MachineDeployment the replicas field was | |
first set and is now unset. Those cases are especially relevant | |
for the following Kubernetes autoscaler use cases: * A new MachineDeployment | |
is created and replicas should be managed by the autoscaler * An | |
existing MachineDeployment which initially wasn't controlled by | |
the autoscaler should be later controlled by the autoscaler" | |
format: int32 | |
type: integer | |
revisionHistoryLimit: | |
description: The number of old MachineSets to retain to allow rollback. | |
This is a pointer to distinguish between explicit zero and not specified. | |
Defaults to 1. | |
format: int32 | |
type: integer | |
rolloutAfter: | |
description: 'RolloutAfter is a field to indicate a rollout should | |
be performed after the specified time even if no changes have been | |
made to the MachineDeployment. Example: In the YAML the time can | |
be specified in the RFC3339 format. To specify the rolloutAfter | |
target as March 9, 2023, at 9 am UTC use "2023-03-09T09:00:00Z".' | |
format: date-time | |
type: string | |
selector: | |
description: Label selector for machines. Existing MachineSets whose | |
machines are selected by this will be the ones affected by this | |
deployment. It must match the machine template's labels. | |
properties: | |
matchExpressions: | |
description: matchExpressions is a list of label selector requirements. | |
The requirements are ANDed. | |
items: | |
description: A label selector requirement is a selector that | |
contains values, a key, and an operator that relates the key | |
and values. | |
properties: | |
key: | |
description: key is the label key that the selector applies | |
to. | |
type: string | |
operator: | |
description: operator represents a key's relationship to | |
a set of values. Valid operators are In, NotIn, Exists | |
and DoesNotExist. | |
type: string | |
values: | |
description: values is an array of string values. If the | |
operator is In or NotIn, the values array must be non-empty. | |
If the operator is Exists or DoesNotExist, the values | |
array must be empty. This array is replaced during a strategic | |
merge patch. | |
items: | |
type: string | |
type: array | |
required: | |
- key | |
- operator | |
type: object | |
type: array | |
matchLabels: | |
additionalProperties: | |
type: string | |
description: matchLabels is a map of {key,value} pairs. A single | |
{key,value} in the matchLabels map is equivalent to an element | |
of matchExpressions, whose key field is "key", the operator | |
is "In", and the values array contains only "value". The requirements | |
are ANDed. | |
type: object | |
type: object | |
x-kubernetes-map-type: atomic | |
strategy: | |
description: The deployment strategy to use to replace existing machines | |
with new ones. | |
properties: | |
rollingUpdate: | |
description: Rolling update config params. Present only if MachineDeploymentStrategyType | |
= RollingUpdate. | |
properties: | |
deletePolicy: | |
description: DeletePolicy defines the policy used by the MachineDeployment | |
to identify nodes to delete when downscaling. Valid values | |
are "Random, "Newest", "Oldest" When no value is supplied, | |
the default DeletePolicy of MachineSet is used | |
enum: | |
- Random | |
- Newest | |
- Oldest | |
type: string | |
maxSurge: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be scheduled | |
above the desired number of machines. Value can be an absolute | |
number (ex: 5) or a percentage of desired machines (ex: | |
10%). This can not be 0 if MaxUnavailable is 0. Absolute | |
number is calculated from percentage by rounding up. Defaults | |
to 1. Example: when this is set to 30%, the new MachineSet | |
can be scaled up immediately when the rolling update starts, | |
such that the total number of old and new machines do not | |
exceed 130% of desired machines. Once old machines have | |
been killed, new MachineSet can be scaled up further, ensuring | |
that total number of machines running at any time during | |
the update is at most 130% of desired machines.' | |
x-kubernetes-int-or-string: true | |
maxUnavailable: | |
anyOf: | |
- type: integer | |
- type: string | |
description: 'The maximum number of machines that can be unavailable | |
during the update. Value can be an absolute number (ex: | |
5) or a percentage of desired machines (ex: 10%). Absolute | |
number is calculated from percentage by rounding down. This | |
can not be 0 if MaxSurge is 0. Defaults to 0. Example: when | |
this is set to 30%, the old MachineSet can be scaled down | |
to 70% of desired machines immediately when the rolling | |
update starts. Once new machines are ready, old MachineSet | |
can be scaled down further, followed by scaling up the new | |
MachineSet, ensuring that the total number of machines available | |
at all times during the update is at least 70% of desired | |
machines.' | |
x-kubernetes-int-or-string: true | |
type: object | |
type: | |
description: Type of deployment. Allowed values are RollingUpdate | |
and OnDelete. The default is RollingUpdate. | |
enum: | |
- RollingUpdate | |
- OnDelete | |
type: string | |
type: object | |
template: | |
description: Template describes the machines that will be created. | |
properties: | |
metadata: | |
description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' | |
properties: | |
annotations: | |
additionalProperties: | |
type: string | |
description: 'Annotations is an unstructured key value map | |
stored with a resource that may be set by external tools | |
to store and retrieve arbitrary metadata. They are not queryable | |
and should be preserved when modifying objects. More info: | |
http://kubernetes.io/docs/user-guide/annotations' | |
type: object | |
labels: | |
additionalProperties: | |
type: string | |
description: 'Map of string keys and values that can be used | |
to organize and categorize (scope and select) objects. May | |
match selectors of replication controllers and services. | |
More info: http://kubernetes.io/docs/user-guide/labels' | |
type: object | |
type: object | |
spec: | |
description: 'Specification of the desired behavior of the machine. | |
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' | |
properties: | |
bootstrap: | |
description: Bootstrap is a reference to a local struct which | |
encapsulates fields to configure the Machine’s bootstrapping | |
mechanism. | |
properties: | |
configRef: | |
description: ConfigRef is a reference to a bootstrap provider-specific | |
resource that holds configuration details. The reference | |
is optional to allow users/operators to specify Bootstrap.DataSecretName | |
without the need of a controller. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object | |
instead of an entire object, this string should | |
contain a valid JSON/Go field access statement, | |
such as desiredState.manifest.containers[2]. For | |
example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container | |
that triggered the event) or if no container name | |
is specified "spec.containers[2]" (container with | |
index 2 in this pod). This syntax is chosen only | |
to have some well-defined way of referencing a part | |
of an object. TODO: this design is not final and | |
this field is subject to change in the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: | |
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this | |
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
dataSecretName: | |
description: DataSecretName is the name of the secret | |
that stores the bootstrap data script. If nil, the Machine | |
should remain in the Pending state. | |
type: string | |
type: object | |
clusterName: | |
description: ClusterName is the name of the Cluster this object | |
belongs to. | |
minLength: 1 | |
type: string | |
failureDomain: | |
description: FailureDomain is the failure domain the machine | |
will be created in. Must match a key in the FailureDomains | |
map stored on the cluster object. | |
type: string | |
infrastructureRef: | |
description: InfrastructureRef is a required reference to | |
a custom resource offered by an infrastructure provider. | |
properties: | |
apiVersion: | |
description: API version of the referent. | |
type: string | |
fieldPath: | |
description: 'If referring to a piece of an object instead | |
of an entire object, this string should contain a valid | |
JSON/Go field access statement, such as desiredState.manifest.containers[2]. | |
For example, if the object reference is to a container | |
within a pod, this would take on a value like: "spec.containers{name}" | |
(where "name" refers to the name of the container that | |
triggered the event) or if no container name is specified | |
"spec.containers[2]" (container with index 2 in this | |
pod). This syntax is chosen only to have some well-defined | |
way of referencing a part of an object. TODO: this design | |
is not final and this field is subject to change in | |
the future.' | |
type: string | |
kind: | |
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | |
type: string | |
name: | |
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' | |
type: string | |
namespace: | |
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' | |
type: string | |
resourceVersion: | |
description: 'Specific resourceVersion to which this reference | |
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' | |
type: string | |
uid: | |
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' | |
type: string | |
type: object | |
x-kubernetes-map-type: atomic | |
nodeDeletionTimeout: | |
description: NodeDeletionTimeout defines how long the controller | |
will attempt to delete the Node that the Machine hosts after | |
the Machine is marked for deletion. A duration of 0 will | |
retry deletion indefinitely. Defaults to 10 seconds. | |
type: string | |
nodeDrainTimeout: | |
description: 'NodeDrainTimeout is the total amount of time | |
that the controller will spend on draining a node. The default | |
value is 0, meaning that the node can be drained without | |
any time limitations. NOTE: NodeDrainTimeout is different | |
from `kubectl drain --timeout`' | |
type: string | |
nodeVolumeDetachTimeout: | |
description: NodeVolumeDetachTimeout is the total amount of | |
time that the controller will spend on waiting for all volumes | |
to be detached. The default value is 0, meaning that the | |
volumes can be detached without any time limitations. | |
type: string | |
providerID: | |
description: ProviderID is the identification ID of the machine | |
provided by the provider. This field must match the provider | |
ID as seen on the node object corresponding to this machine. | |
This field is required by higher level consumers of cluster-api. | |
Example use case is cluster autoscaler with cluster-api | |
as provider. Clean-up logic in the autoscaler compares machines | |
to nodes to find out machines at provider which could not | |
get registered as Kubernetes nodes. With cluster-api as | |
a generic out-of-tree provider for autoscaler, this field | |
is required by autoscaler to be able to have a provider | |
view of the list of machines. Another list of nodes is queried | |
from the k8s apiserver and then a comparison is done to | |
find out unregistered machines and are marked for delete. | |
This field will be set by the actuators and consumed by | |
higher level entities like autoscaler that will be interfacing | |
with cluster-api as generic provider. | |
type: string | |
version: | |
description: Version defines the desired Kubernetes version. | |
This field is meant to be optionally used by bootstrap providers. | |
type: string | |
required: | |
- bootstrap | |
- clusterName | |
- infrastructureRef | |
type: object | |
type: object | |
required: | |
- clusterName | |
- selector | |
- template | |
type: object | |
status: | |
description: MachineDeploymentStatus defines the observed state of MachineDeployment. | |
properties: | |
availableReplicas: | |
description: Total number of available machines (ready for at least | |
minReadySeconds) targeted by this deployment. | |
format: int32 | |
type: integer | |
conditions: | |
description: Conditions defines current service state of the MachineDeployment. | |
items: | |
description: Condition defines an observation of a Cluster API resource | |
operational state. | |
properties: | |
lastTransitionTime: | |
description: Last time the condition transitioned from one status | |
to another. This should be when the underlying condition changed. | |
If that is not known, then using the time when the API field | |
changed is acceptable. | |
format: date-time | |
type: string | |
message: | |
description: A human readable message indicating details about | |
the transition. This field may be empty. | |
type: string | |
reason: | |
description: The reason for the condition's last transition | |
in CamelCase. The specific API may choose whether or not this | |
field is considered a guaranteed API. This field may not be | |
empty. | |
type: string | |
severity: | |
description: Severity provides an explicit classification of | |
Reason code, so the users or machines can immediately understand | |
the current situation and act accordingly. The Severity field | |
MUST be set only when Status=False. | |
type: string | |
status: | |
description: Status of the condition, one of True, False, Unknown. | |
type: string | |
type: | |
description: Type of condition in CamelCase or in foo.example.com/CamelCase. | |
Many .condition.type values are consistent across resources | |
like Available, but because arbitrary conditions can be useful | |
(see .node.status.conditions), the ability to deconflict is | |
important. | |
type: string | |
required: | |
- lastTransitionTime | |
- status | |
- type | |
type: object | |
type: array | |
observedGeneration: | |
description: The generation observed by the deployment controller. | |
format: int64 | |
type: integer | |
phase: | |
description: Phase represents the current phase of a MachineDeployment | |
(ScalingUp, ScalingDown, Running, Failed, or Unknown). | |
type: string | |
readyReplicas: | |
description: Total number of ready machines targeted by this deployment. | |
format: int32 | |
type: integer | |
replicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment (their labels match the selector). | |
format: int32 | |
type: integer | |
selector: | |
description: 'Selector is the same as the label selector but in the | |
string format to avoid introspection by clients. The string will | |
be in the same format as the query-param syntax. More info about | |
label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' | |
type: string | |
unavailableReplicas: | |
description: Total number of unavailable machines targeted by this | |
deployment. This is the total number of machines that are still | |
required for the deployment to have 100% available capacity. They | |
may either be machines that are running but not yet available or | |
machines that still have not been created. | |
format: int32 | |
type: integer | |
updatedReplicas: | |
description: Total number of non-terminated machines targeted by this | |
deployment that have the desired template spec. | |
format: int32 | |
type: integer | |
type: object | |
type: object | |
served: true | |
storage: true | |
subresources: | |
scale: | |
labelSelectorPath: .status.selector | |
specReplicasPath: .spec.replicas | |
statusReplicasPath: .status.replicas | |
status: {} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment