sigs.k8s.io/cluster-api@v1.7.1/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml (about)

     1  ---
     2  apiVersion: apiextensions.k8s.io/v1
     3  kind: CustomResourceDefinition
     4  metadata:
     5    annotations:
     6      controller-gen.kubebuilder.io/version: v0.14.0
     7    name: machinedeployments.cluster.x-k8s.io
     8  spec:
     9    group: cluster.x-k8s.io
    10    names:
    11      categories:
    12      - cluster-api
    13      kind: MachineDeployment
    14      listKind: MachineDeploymentList
    15      plural: machinedeployments
    16      shortNames:
    17      - md
    18      singular: machinedeployment
    19    scope: Namespaced
    20    versions:
    21    - additionalPrinterColumns:
    22      - description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown
    23        jsonPath: .status.phase
    24        name: Phase
    25        type: string
    26      - description: Total number of non-terminated machines targeted by this MachineDeployment
    27        jsonPath: .status.replicas
    28        name: Replicas
    29        type: integer
    30      - description: Total number of ready machines targeted by this MachineDeployment
    31        jsonPath: .status.readyReplicas
    32        name: Ready
    33        type: integer
    34      - description: Total number of non-terminated machines targeted by this deployment
    35          that have the desired template spec
    36        jsonPath: .status.updatedReplicas
    37        name: Updated
    38        type: integer
    39      - description: Total number of unavailable machines targeted by this MachineDeployment
    40        jsonPath: .status.unavailableReplicas
    41        name: Unavailable
    42        type: integer
    43      deprecated: true
    44      name: v1alpha3
    45      schema:
    46        openAPIV3Schema:
    47          description: |-
    48            MachineDeployment is the Schema for the machinedeployments API.
    49  
    50  
    51            Deprecated: This type will be removed in one of the next releases.
    52          properties:
    53            apiVersion:
    54              description: |-
    55                APIVersion defines the versioned schema of this representation of an object.
    56                Servers should convert recognized schemas to the latest internal value, and
    57                may reject unrecognized values.
    58                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    59              type: string
    60            kind:
    61              description: |-
    62                Kind is a string value representing the REST resource this object represents.
    63                Servers may infer this from the endpoint the client submits requests to.
    64                Cannot be updated.
    65                In CamelCase.
    66                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    67              type: string
    68            metadata:
    69              type: object
    70            spec:
    71              description: MachineDeploymentSpec defines the desired state of MachineDeployment.
    72              properties:
    73                clusterName:
    74                  description: ClusterName is the name of the Cluster this object belongs
    75                    to.
    76                  minLength: 1
    77                  type: string
    78                minReadySeconds:
    79                  description: |-
    80                    Minimum number of seconds for which a newly created machine should
    81                    be ready.
    82                    Defaults to 0 (machine will be considered available as soon as it
    83                    is ready)
    84                  format: int32
    85                  type: integer
    86                paused:
    87                  description: Indicates that the deployment is paused.
    88                  type: boolean
    89                progressDeadlineSeconds:
    90                  description: |-
    91                    The maximum time in seconds for a deployment to make progress before it
    92                    is considered to be failed. The deployment controller will continue to
    93                    process failed deployments and a condition with a ProgressDeadlineExceeded
    94                    reason will be surfaced in the deployment status. Note that progress will
    95                    not be estimated during the time a deployment is paused. Defaults to 600s.
    96                  format: int32
    97                  type: integer
    98                replicas:
    99                  description: |-
   100                    Number of desired machines. Defaults to 1.
   101                    This is a pointer to distinguish between explicit zero and not specified.
   102                  format: int32
   103                  type: integer
   104                revisionHistoryLimit:
   105                  description: |-
   106                    The number of old MachineSets to retain to allow rollback.
   107                    This is a pointer to distinguish between explicit zero and not specified.
   108                    Defaults to 1.
   109                  format: int32
   110                  type: integer
   111                selector:
   112                  description: |-
   113                    Label selector for machines. Existing MachineSets whose machines are
   114                    selected by this will be the ones affected by this deployment.
   115                    It must match the machine template's labels.
   116                  properties:
   117                    matchExpressions:
   118                      description: matchExpressions is a list of label selector requirements.
   119                        The requirements are ANDed.
   120                      items:
   121                        description: |-
   122                          A label selector requirement is a selector that contains values, a key, and an operator that
   123                          relates the key and values.
   124                        properties:
   125                          key:
   126                            description: key is the label key that the selector applies
   127                              to.
   128                            type: string
   129                          operator:
   130                            description: |-
   131                              operator represents a key's relationship to a set of values.
   132                              Valid operators are In, NotIn, Exists and DoesNotExist.
   133                            type: string
   134                          values:
   135                            description: |-
   136                              values is an array of string values. If the operator is In or NotIn,
   137                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
   138                              the values array must be empty. This array is replaced during a strategic
   139                              merge patch.
   140                            items:
   141                              type: string
   142                            type: array
   143                        required:
   144                        - key
   145                        - operator
   146                        type: object
   147                      type: array
   148                    matchLabels:
   149                      additionalProperties:
   150                        type: string
   151                      description: |-
   152                        matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
   153                        map is equivalent to an element of matchExpressions, whose key field is "key", the
   154                        operator is "In", and the values array contains only "value". The requirements are ANDed.
   155                      type: object
   156                  type: object
   157                  x-kubernetes-map-type: atomic
   158                strategy:
   159                  description: |-
   160                    The deployment strategy to use to replace existing machines with
   161                    new ones.
   162                  properties:
   163                    rollingUpdate:
   164                      description: |-
   165                        Rolling update config params. Present only if
   166                        MachineDeploymentStrategyType = RollingUpdate.
   167                      properties:
   168                        maxSurge:
   169                          anyOf:
   170                          - type: integer
   171                          - type: string
   172                          description: |-
   173                            The maximum number of machines that can be scheduled above the
   174                            desired number of machines.
   175                            Value can be an absolute number (ex: 5) or a percentage of
   176                            desired machines (ex: 10%).
   177                            This can not be 0 if MaxUnavailable is 0.
   178                            Absolute number is calculated from percentage by rounding up.
   179                            Defaults to 1.
   180                            Example: when this is set to 30%, the new MachineSet can be scaled
   181                            up immediately when the rolling update starts, such that the total
   182                            number of old and new machines do not exceed 130% of desired
   183                            machines. Once old machines have been killed, new MachineSet can
   184                            be scaled up further, ensuring that total number of machines running
   185                            at any time during the update is at most 130% of desired machines.
   186                          x-kubernetes-int-or-string: true
   187                        maxUnavailable:
   188                          anyOf:
   189                          - type: integer
   190                          - type: string
   191                          description: |-
   192                            The maximum number of machines that can be unavailable during the update.
   193                            Value can be an absolute number (ex: 5) or a percentage of desired
   194                            machines (ex: 10%).
   195                            Absolute number is calculated from percentage by rounding down.
   196                            This can not be 0 if MaxSurge is 0.
   197                            Defaults to 0.
   198                            Example: when this is set to 30%, the old MachineSet can be scaled
   199                            down to 70% of desired machines immediately when the rolling update
   200                            starts. Once new machines are ready, old MachineSet can be scaled
   201                            down further, followed by scaling up the new MachineSet, ensuring
   202                            that the total number of machines available at all times
   203                            during the update is at least 70% of desired machines.
   204                          x-kubernetes-int-or-string: true
   205                      type: object
   206                    type:
   207                      description: |-
   208                        Type of deployment. Currently the only supported strategy is
   209                        "RollingUpdate".
   210                        Default is RollingUpdate.
   211                      type: string
   212                  type: object
   213                template:
   214                  description: Template describes the machines that will be created.
   215                  properties:
   216                    metadata:
   217                      description: |-
   218                        Standard object's metadata.
   219                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
   220                      properties:
   221                        annotations:
   222                          additionalProperties:
   223                            type: string
   224                          description: |-
   225                            Annotations is an unstructured key value map stored with a resource that may be
   226                            set by external tools to store and retrieve arbitrary metadata. They are not
   227                            queryable and should be preserved when modifying objects.
   228                            More info: http://kubernetes.io/docs/user-guide/annotations
   229                          type: object
   230                        generateName:
   231                          description: |-
   232                            GenerateName is an optional prefix, used by the server, to generate a unique
   233                            name ONLY IF the Name field has not been provided.
   234                            If this field is used, the name returned to the client will be different
   235                            than the name passed. This value will also be combined with a unique suffix.
   236                            The provided value has the same validation rules as the Name field,
   237                            and may be truncated by the length of the suffix required to make the value
   238                            unique on the server.
   239  
   240  
   241                            If this field is specified and the generated name exists, the server will
   242                            NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
   243                            ServerTimeout indicating a unique name could not be found in the time allotted, and the client
   244                            should retry (optionally after the time indicated in the Retry-After header).
   245  
   246  
   247                            Applied only if Name is not specified.
   248                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
   249  
   250  
   251                            Deprecated: This field has no function and is going to be removed in a next release.
   252                          type: string
   253                        labels:
   254                          additionalProperties:
   255                            type: string
   256                          description: |-
   257                            Map of string keys and values that can be used to organize and categorize
   258                            (scope and select) objects. May match selectors of replication controllers
   259                            and services.
   260                            More info: http://kubernetes.io/docs/user-guide/labels
   261                          type: object
   262                        name:
   263                          description: |-
   264                            Name must be unique within a namespace. Is required when creating resources, although
   265                            some resources may allow a client to request the generation of an appropriate name
   266                            automatically. Name is primarily intended for creation idempotence and configuration
   267                            definition.
   268                            Cannot be updated.
   269                            More info: http://kubernetes.io/docs/user-guide/identifiers#names
   270  
   271  
   272                            Deprecated: This field has no function and is going to be removed in a next release.
   273                          type: string
   274                        namespace:
   275                          description: |-
   276                            Namespace defines the space within each name must be unique. An empty namespace is
   277                            equivalent to the "default" namespace, but "default" is the canonical representation.
   278                            Not all objects are required to be scoped to a namespace - the value of this field for
   279                            those objects will be empty.
   280  
   281  
   282                            Must be a DNS_LABEL.
   283                            Cannot be updated.
   284                            More info: http://kubernetes.io/docs/user-guide/namespaces
   285  
   286  
   287                            Deprecated: This field has no function and is going to be removed in a next release.
   288                          type: string
   289                        ownerReferences:
   290                          description: |-
   291                            List of objects depended by this object. If ALL objects in the list have
   292                            been deleted, this object will be garbage collected. If this object is managed by a controller,
   293                            then an entry in this list will point to this controller, with the controller field set to true.
   294                            There cannot be more than one managing controller.
   295  
   296  
   297                            Deprecated: This field has no function and is going to be removed in a next release.
   298                          items:
   299                            description: |-
   300                              OwnerReference contains enough information to let you identify an owning
   301                              object. An owning object must be in the same namespace as the dependent, or
   302                              be cluster-scoped, so there is no namespace field.
   303                            properties:
   304                              apiVersion:
   305                                description: API version of the referent.
   306                                type: string
   307                              blockOwnerDeletion:
   308                                description: |-
   309                                  If true, AND if the owner has the "foregroundDeletion" finalizer, then
   310                                  the owner cannot be deleted from the key-value store until this
   311                                  reference is removed.
   312                                  See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
   313                                  for how the garbage collector interacts with this field and enforces the foreground deletion.
   314                                  Defaults to false.
   315                                  To set this field, a user needs "delete" permission of the owner,
   316                                  otherwise 422 (Unprocessable Entity) will be returned.
   317                                type: boolean
   318                              controller:
   319                                description: If true, this reference points to the managing
   320                                  controller.
   321                                type: boolean
   322                              kind:
   323                                description: |-
   324                                  Kind of the referent.
   325                                  More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   326                                type: string
   327                              name:
   328                                description: |-
   329                                  Name of the referent.
   330                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
   331                                type: string
   332                              uid:
   333                                description: |-
   334                                  UID of the referent.
   335                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
   336                                type: string
   337                            required:
   338                            - apiVersion
   339                            - kind
   340                            - name
   341                            - uid
   342                            type: object
   343                            x-kubernetes-map-type: atomic
   344                          type: array
   345                      type: object
   346                    spec:
   347                      description: |-
   348                        Specification of the desired behavior of the machine.
   349                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
   350                      properties:
   351                        bootstrap:
   352                          description: |-
   353                            Bootstrap is a reference to a local struct which encapsulates
   354                            fields to configure the Machine’s bootstrapping mechanism.
   355                          properties:
   356                            configRef:
   357                              description: |-
   358                                ConfigRef is a reference to a bootstrap provider-specific resource
   359                                that holds configuration details. The reference is optional to
   360                                allow users/operators to specify Bootstrap.Data without
   361                                the need of a controller.
   362                              properties:
   363                                apiVersion:
   364                                  description: API version of the referent.
   365                                  type: string
   366                                fieldPath:
   367                                  description: |-
   368                                    If referring to a piece of an object instead of an entire object, this string
   369                                    should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   370                                    For example, if the object reference is to a container within a pod, this would take on a value like:
   371                                    "spec.containers{name}" (where "name" refers to the name of the container that triggered
   372                                    the event) or if no container name is specified "spec.containers[2]" (container with
   373                                    index 2 in this pod). This syntax is chosen only to have some well-defined way of
   374                                    referencing a part of an object.
   375                                    TODO: this design is not final and this field is subject to change in the future.
   376                                  type: string
   377                                kind:
   378                                  description: |-
   379                                    Kind of the referent.
   380                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   381                                  type: string
   382                                name:
   383                                  description: |-
   384                                    Name of the referent.
   385                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   386                                  type: string
   387                                namespace:
   388                                  description: |-
   389                                    Namespace of the referent.
   390                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   391                                  type: string
   392                                resourceVersion:
   393                                  description: |-
   394                                    Specific resourceVersion to which this reference is made, if any.
   395                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   396                                  type: string
   397                                uid:
   398                                  description: |-
   399                                    UID of the referent.
   400                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   401                                  type: string
   402                              type: object
   403                              x-kubernetes-map-type: atomic
   404                            data:
   405                              description: |-
   406                                Data contains the bootstrap data, such as cloud-init details scripts.
   407                                If nil, the Machine should remain in the Pending state.
   408  
   409  
   410                                Deprecated: Switch to DataSecretName.
   411                              type: string
   412                            dataSecretName:
   413                              description: |-
   414                                DataSecretName is the name of the secret that stores the bootstrap data script.
   415                                If nil, the Machine should remain in the Pending state.
   416                              type: string
   417                          type: object
   418                        clusterName:
   419                          description: ClusterName is the name of the Cluster this object
   420                            belongs to.
   421                          minLength: 1
   422                          type: string
   423                        failureDomain:
   424                          description: |-
   425                            FailureDomain is the failure domain the machine will be created in.
   426                            Must match a key in the FailureDomains map stored on the cluster object.
   427                          type: string
   428                        infrastructureRef:
   429                          description: |-
   430                            InfrastructureRef is a required reference to a custom resource
   431                            offered by an infrastructure provider.
   432                          properties:
   433                            apiVersion:
   434                              description: API version of the referent.
   435                              type: string
   436                            fieldPath:
   437                              description: |-
   438                                If referring to a piece of an object instead of an entire object, this string
   439                                should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   440                                For example, if the object reference is to a container within a pod, this would take on a value like:
   441                                "spec.containers{name}" (where "name" refers to the name of the container that triggered
   442                                the event) or if no container name is specified "spec.containers[2]" (container with
   443                                index 2 in this pod). This syntax is chosen only to have some well-defined way of
   444                                referencing a part of an object.
   445                                TODO: this design is not final and this field is subject to change in the future.
   446                              type: string
   447                            kind:
   448                              description: |-
   449                                Kind of the referent.
   450                                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   451                              type: string
   452                            name:
   453                              description: |-
   454                                Name of the referent.
   455                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   456                              type: string
   457                            namespace:
   458                              description: |-
   459                                Namespace of the referent.
   460                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   461                              type: string
   462                            resourceVersion:
   463                              description: |-
   464                                Specific resourceVersion to which this reference is made, if any.
   465                                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   466                              type: string
   467                            uid:
   468                              description: |-
   469                                UID of the referent.
   470                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   471                              type: string
   472                          type: object
   473                          x-kubernetes-map-type: atomic
   474                        nodeDrainTimeout:
   475                          description: |-
   476                            NodeDrainTimeout is the total amount of time that the controller will spend on draining a node.
   477                            The default value is 0, meaning that the node can be drained without any time limitations.
   478                            NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
   479                          type: string
   480                        providerID:
   481                          description: |-
   482                            ProviderID is the identification ID of the machine provided by the provider.
   483                            This field must match the provider ID as seen on the node object corresponding to this machine.
   484                            This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler
   485                            with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out
   486                            machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a
   487                            generic out-of-tree provider for autoscaler, this field is required by autoscaler to be
   488                            able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver
   489                            and then a comparison is done to find out unregistered machines and are marked for delete.
   490                            This field will be set by the actuators and consumed by higher level entities like autoscaler that will
   491                            be interfacing with cluster-api as generic provider.
   492                          type: string
   493                        version:
   494                          description: |-
   495                            Version defines the desired Kubernetes version.
   496                            This field is meant to be optionally used by bootstrap providers.
   497                          type: string
   498                      required:
   499                      - bootstrap
   500                      - clusterName
   501                      - infrastructureRef
   502                      type: object
   503                  type: object
   504              required:
   505              - clusterName
   506              - selector
   507              - template
   508              type: object
   509            status:
   510              description: MachineDeploymentStatus defines the observed state of MachineDeployment.
   511              properties:
   512                availableReplicas:
   513                  description: |-
   514                    Total number of available machines (ready for at least minReadySeconds)
   515                    targeted by this deployment.
   516                  format: int32
   517                  type: integer
   518                observedGeneration:
   519                  description: The generation observed by the deployment controller.
   520                  format: int64
   521                  type: integer
   522                phase:
   523                  description: Phase represents the current phase of a MachineDeployment
   524                    (ScalingUp, ScalingDown, Running, Failed, or Unknown).
   525                  type: string
   526                readyReplicas:
   527                  description: Total number of ready machines targeted by this deployment.
   528                  format: int32
   529                  type: integer
   530                replicas:
   531                  description: |-
   532                    Total number of non-terminated machines targeted by this deployment
   533                    (their labels match the selector).
   534                  format: int32
   535                  type: integer
   536                selector:
   537                  description: |-
   538                    Selector is the same as the label selector but in the string format to avoid introspection
   539                    by clients. The string will be in the same format as the query-param syntax.
   540                    More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors
   541                  type: string
   542                unavailableReplicas:
   543                  description: |-
   544                    Total number of unavailable machines targeted by this deployment.
   545                    This is the total number of machines that are still required for
   546                    the deployment to have 100% available capacity. They may either
   547                    be machines that are running but not yet available or machines
   548                    that still have not been created.
   549                  format: int32
   550                  type: integer
   551                updatedReplicas:
   552                  description: |-
   553                    Total number of non-terminated machines targeted by this deployment
   554                    that have the desired template spec.
   555                  format: int32
   556                  type: integer
   557              type: object
   558          type: object
   559      served: false
   560      storage: false
   561      subresources:
   562        scale:
   563          labelSelectorPath: .status.selector
   564          specReplicasPath: .spec.replicas
   565          statusReplicasPath: .status.replicas
   566        status: {}
   567    - additionalPrinterColumns:
   568      - description: Cluster
   569        jsonPath: .spec.clusterName
   570        name: Cluster
   571        type: string
   572      - description: Time duration since creation of MachineDeployment
   573        jsonPath: .metadata.creationTimestamp
   574        name: Age
   575        type: date
   576      - description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown
   577        jsonPath: .status.phase
   578        name: Phase
   579        type: string
   580      - description: Total number of non-terminated machines targeted by this MachineDeployment
   581        jsonPath: .status.replicas
   582        name: Replicas
   583        type: integer
   584      - description: Total number of ready machines targeted by this MachineDeployment
   585        jsonPath: .status.readyReplicas
   586        name: Ready
   587        type: integer
   588      - description: Total number of non-terminated machines targeted by this deployment
   589          that have the desired template spec
   590        jsonPath: .status.updatedReplicas
   591        name: Updated
   592        type: integer
   593      - description: Total number of unavailable machines targeted by this MachineDeployment
   594        jsonPath: .status.unavailableReplicas
   595        name: Unavailable
   596        type: integer
   597      deprecated: true
   598      name: v1alpha4
   599      schema:
   600        openAPIV3Schema:
   601          description: |-
   602            MachineDeployment is the Schema for the machinedeployments API.
   603  
   604  
   605            Deprecated: This type will be removed in one of the next releases.
   606          properties:
   607            apiVersion:
   608              description: |-
   609                APIVersion defines the versioned schema of this representation of an object.
   610                Servers should convert recognized schemas to the latest internal value, and
   611                may reject unrecognized values.
   612                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
   613              type: string
   614            kind:
   615              description: |-
   616                Kind is a string value representing the REST resource this object represents.
   617                Servers may infer this from the endpoint the client submits requests to.
   618                Cannot be updated.
   619                In CamelCase.
   620                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   621              type: string
   622            metadata:
   623              type: object
   624            spec:
   625              description: MachineDeploymentSpec defines the desired state of MachineDeployment.
   626              properties:
   627                clusterName:
   628                  description: ClusterName is the name of the Cluster this object belongs
   629                    to.
   630                  minLength: 1
   631                  type: string
   632                minReadySeconds:
   633                  description: |-
   634                    Minimum number of seconds for which a newly created machine should
   635                    be ready.
   636                    Defaults to 0 (machine will be considered available as soon as it
   637                    is ready)
   638                  format: int32
   639                  type: integer
   640                paused:
   641                  description: Indicates that the deployment is paused.
   642                  type: boolean
   643                progressDeadlineSeconds:
   644                  description: |-
   645                    The maximum time in seconds for a deployment to make progress before it
   646                    is considered to be failed. The deployment controller will continue to
   647                    process failed deployments and a condition with a ProgressDeadlineExceeded
   648                    reason will be surfaced in the deployment status. Note that progress will
   649                    not be estimated during the time a deployment is paused. Defaults to 600s.
   650                  format: int32
   651                  type: integer
   652                replicas:
   653                  default: 1
   654                  description: |-
   655                    Number of desired machines. Defaults to 1.
   656                    This is a pointer to distinguish between explicit zero and not specified.
   657                  format: int32
   658                  type: integer
   659                revisionHistoryLimit:
   660                  description: |-
   661                    The number of old MachineSets to retain to allow rollback.
   662                    This is a pointer to distinguish between explicit zero and not specified.
   663                    Defaults to 1.
   664                  format: int32
   665                  type: integer
   666                selector:
   667                  description: |-
   668                    Label selector for machines. Existing MachineSets whose machines are
   669                    selected by this will be the ones affected by this deployment.
   670                    It must match the machine template's labels.
   671                  properties:
   672                    matchExpressions:
   673                      description: matchExpressions is a list of label selector requirements.
   674                        The requirements are ANDed.
   675                      items:
   676                        description: |-
   677                          A label selector requirement is a selector that contains values, a key, and an operator that
   678                          relates the key and values.
   679                        properties:
   680                          key:
   681                            description: key is the label key that the selector applies
   682                              to.
   683                            type: string
   684                          operator:
   685                            description: |-
   686                              operator represents a key's relationship to a set of values.
   687                              Valid operators are In, NotIn, Exists and DoesNotExist.
   688                            type: string
   689                          values:
   690                            description: |-
   691                              values is an array of string values. If the operator is In or NotIn,
   692                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
   693                              the values array must be empty. This array is replaced during a strategic
   694                              merge patch.
   695                            items:
   696                              type: string
   697                            type: array
   698                        required:
   699                        - key
   700                        - operator
   701                        type: object
   702                      type: array
   703                    matchLabels:
   704                      additionalProperties:
   705                        type: string
   706                      description: |-
   707                        matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
   708                        map is equivalent to an element of matchExpressions, whose key field is "key", the
   709                        operator is "In", and the values array contains only "value". The requirements are ANDed.
   710                      type: object
   711                  type: object
   712                  x-kubernetes-map-type: atomic
   713                strategy:
   714                  description: |-
   715                    The deployment strategy to use to replace existing machines with
   716                    new ones.
   717                  properties:
   718                    rollingUpdate:
   719                      description: |-
   720                        Rolling update config params. Present only if
   721                        MachineDeploymentStrategyType = RollingUpdate.
   722                      properties:
   723                        deletePolicy:
   724                          description: |-
   725                            DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling.
   726                            Valid values are "Random, "Newest", "Oldest"
   727                            When no value is supplied, the default DeletePolicy of MachineSet is used
   728                          enum:
   729                          - Random
   730                          - Newest
   731                          - Oldest
   732                          type: string
   733                        maxSurge:
   734                          anyOf:
   735                          - type: integer
   736                          - type: string
   737                          description: |-
   738                            The maximum number of machines that can be scheduled above the
   739                            desired number of machines.
   740                            Value can be an absolute number (ex: 5) or a percentage of
   741                            desired machines (ex: 10%).
   742                            This can not be 0 if MaxUnavailable is 0.
   743                            Absolute number is calculated from percentage by rounding up.
   744                            Defaults to 1.
   745                            Example: when this is set to 30%, the new MachineSet can be scaled
   746                            up immediately when the rolling update starts, such that the total
   747                            number of old and new machines do not exceed 130% of desired
   748                            machines. Once old machines have been killed, new MachineSet can
   749                            be scaled up further, ensuring that total number of machines running
   750                            at any time during the update is at most 130% of desired machines.
   751                          x-kubernetes-int-or-string: true
   752                        maxUnavailable:
   753                          anyOf:
   754                          - type: integer
   755                          - type: string
   756                          description: |-
   757                            The maximum number of machines that can be unavailable during the update.
   758                            Value can be an absolute number (ex: 5) or a percentage of desired
   759                            machines (ex: 10%).
   760                            Absolute number is calculated from percentage by rounding down.
   761                            This can not be 0 if MaxSurge is 0.
   762                            Defaults to 0.
   763                            Example: when this is set to 30%, the old MachineSet can be scaled
   764                            down to 70% of desired machines immediately when the rolling update
   765                            starts. Once new machines are ready, old MachineSet can be scaled
   766                            down further, followed by scaling up the new MachineSet, ensuring
   767                            that the total number of machines available at all times
   768                            during the update is at least 70% of desired machines.
   769                          x-kubernetes-int-or-string: true
   770                      type: object
   771                    type:
   772                      description: |-
   773                        Type of deployment.
   774                        Default is RollingUpdate.
   775                      enum:
   776                      - RollingUpdate
   777                      - OnDelete
   778                      type: string
   779                  type: object
   780                template:
   781                  description: Template describes the machines that will be created.
   782                  properties:
   783                    metadata:
   784                      description: |-
   785                        Standard object's metadata.
   786                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
   787                      properties:
   788                        annotations:
   789                          additionalProperties:
   790                            type: string
   791                          description: |-
   792                            Annotations is an unstructured key value map stored with a resource that may be
   793                            set by external tools to store and retrieve arbitrary metadata. They are not
   794                            queryable and should be preserved when modifying objects.
   795                            More info: http://kubernetes.io/docs/user-guide/annotations
   796                          type: object
   797                        labels:
   798                          additionalProperties:
   799                            type: string
   800                          description: |-
   801                            Map of string keys and values that can be used to organize and categorize
   802                            (scope and select) objects. May match selectors of replication controllers
   803                            and services.
   804                            More info: http://kubernetes.io/docs/user-guide/labels
   805                          type: object
   806                      type: object
   807                    spec:
   808                      description: |-
   809                        Specification of the desired behavior of the machine.
   810                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
   811                      properties:
   812                        bootstrap:
   813                          description: |-
   814                            Bootstrap is a reference to a local struct which encapsulates
   815                            fields to configure the Machine’s bootstrapping mechanism.
   816                          properties:
   817                            configRef:
   818                              description: |-
   819                                ConfigRef is a reference to a bootstrap provider-specific resource
   820                                that holds configuration details. The reference is optional to
   821                                allow users/operators to specify Bootstrap.DataSecretName without
   822                                the need of a controller.
   823                              properties:
   824                                apiVersion:
   825                                  description: API version of the referent.
   826                                  type: string
   827                                fieldPath:
   828                                  description: |-
   829                                    If referring to a piece of an object instead of an entire object, this string
   830                                    should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   831                                    For example, if the object reference is to a container within a pod, this would take on a value like:
   832                                    "spec.containers{name}" (where "name" refers to the name of the container that triggered
   833                                    the event) or if no container name is specified "spec.containers[2]" (container with
   834                                    index 2 in this pod). This syntax is chosen only to have some well-defined way of
   835                                    referencing a part of an object.
   836                                    TODO: this design is not final and this field is subject to change in the future.
   837                                  type: string
   838                                kind:
   839                                  description: |-
   840                                    Kind of the referent.
   841                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   842                                  type: string
   843                                name:
   844                                  description: |-
   845                                    Name of the referent.
   846                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   847                                  type: string
   848                                namespace:
   849                                  description: |-
   850                                    Namespace of the referent.
   851                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   852                                  type: string
   853                                resourceVersion:
   854                                  description: |-
   855                                    Specific resourceVersion to which this reference is made, if any.
   856                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   857                                  type: string
   858                                uid:
   859                                  description: |-
   860                                    UID of the referent.
   861                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   862                                  type: string
   863                              type: object
   864                              x-kubernetes-map-type: atomic
   865                            dataSecretName:
   866                              description: |-
   867                                DataSecretName is the name of the secret that stores the bootstrap data script.
   868                                If nil, the Machine should remain in the Pending state.
   869                              type: string
   870                          type: object
   871                        clusterName:
   872                          description: ClusterName is the name of the Cluster this object
   873                            belongs to.
   874                          minLength: 1
   875                          type: string
   876                        failureDomain:
   877                          description: |-
   878                            FailureDomain is the failure domain the machine will be created in.
   879                            Must match a key in the FailureDomains map stored on the cluster object.
   880                          type: string
   881                        infrastructureRef:
   882                          description: |-
   883                            InfrastructureRef is a required reference to a custom resource
   884                            offered by an infrastructure provider.
   885                          properties:
   886                            apiVersion:
   887                              description: API version of the referent.
   888                              type: string
   889                            fieldPath:
   890                              description: |-
   891                                If referring to a piece of an object instead of an entire object, this string
   892                                should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   893                                For example, if the object reference is to a container within a pod, this would take on a value like:
   894                                "spec.containers{name}" (where "name" refers to the name of the container that triggered
   895                                the event) or if no container name is specified "spec.containers[2]" (container with
   896                                index 2 in this pod). This syntax is chosen only to have some well-defined way of
   897                                referencing a part of an object.
   898                                TODO: this design is not final and this field is subject to change in the future.
   899                              type: string
   900                            kind:
   901                              description: |-
   902                                Kind of the referent.
   903                                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   904                              type: string
   905                            name:
   906                              description: |-
   907                                Name of the referent.
   908                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   909                              type: string
   910                            namespace:
   911                              description: |-
   912                                Namespace of the referent.
   913                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   914                              type: string
   915                            resourceVersion:
   916                              description: |-
   917                                Specific resourceVersion to which this reference is made, if any.
   918                                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   919                              type: string
   920                            uid:
   921                              description: |-
   922                                UID of the referent.
   923                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   924                              type: string
   925                          type: object
   926                          x-kubernetes-map-type: atomic
   927                        nodeDrainTimeout:
   928                          description: |-
   929                            NodeDrainTimeout is the total amount of time that the controller will spend on draining a node.
   930                            The default value is 0, meaning that the node can be drained without any time limitations.
   931                            NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
   932                          type: string
   933                        providerID:
   934                          description: |-
   935                            ProviderID is the identification ID of the machine provided by the provider.
   936                            This field must match the provider ID as seen on the node object corresponding to this machine.
   937                            This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler
   938                            with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out
   939                            machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a
   940                            generic out-of-tree provider for autoscaler, this field is required by autoscaler to be
   941                            able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver
   942                            and then a comparison is done to find out unregistered machines and are marked for delete.
   943                            This field will be set by the actuators and consumed by higher level entities like autoscaler that will
   944                            be interfacing with cluster-api as generic provider.
   945                          type: string
   946                        version:
   947                          description: |-
   948                            Version defines the desired Kubernetes version.
   949                            This field is meant to be optionally used by bootstrap providers.
   950                          type: string
   951                      required:
   952                      - bootstrap
   953                      - clusterName
   954                      - infrastructureRef
   955                      type: object
   956                  type: object
   957              required:
   958              - clusterName
   959              - selector
   960              - template
   961              type: object
   962            status:
   963              description: MachineDeploymentStatus defines the observed state of MachineDeployment.
   964              properties:
   965                availableReplicas:
   966                  description: |-
   967                    Total number of available machines (ready for at least minReadySeconds)
   968                    targeted by this deployment.
   969                  format: int32
   970                  type: integer
   971                conditions:
   972                  description: Conditions defines current service state of the MachineDeployment.
   973                  items:
   974                    description: Condition defines an observation of a Cluster API resource
   975                      operational state.
   976                    properties:
   977                      lastTransitionTime:
   978                        description: |-
   979                          Last time the condition transitioned from one status to another.
   980                          This should be when the underlying condition changed. If that is not known, then using the time when
   981                          the API field changed is acceptable.
   982                        format: date-time
   983                        type: string
   984                      message:
   985                        description: |-
   986                          A human readable message indicating details about the transition.
   987                          This field may be empty.
   988                        type: string
   989                      reason:
   990                        description: |-
   991                          The reason for the condition's last transition in CamelCase.
   992                          The specific API may choose whether or not this field is considered a guaranteed API.
   993                          This field may not be empty.
   994                        type: string
   995                      severity:
   996                        description: |-
   997                          Severity provides an explicit classification of Reason code, so the users or machines can immediately
   998                          understand the current situation and act accordingly.
   999                          The Severity field MUST be set only when Status=False.
  1000                        type: string
  1001                      status:
  1002                        description: Status of the condition, one of True, False, Unknown.
  1003                        type: string
  1004                      type:
  1005                        description: |-
  1006                          Type of condition in CamelCase or in foo.example.com/CamelCase.
  1007                          Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
  1008                          can be useful (see .node.status.conditions), the ability to deconflict is important.
  1009                        type: string
  1010                    required:
  1011                    - status
  1012                    - type
  1013                    type: object
  1014                  type: array
  1015                observedGeneration:
  1016                  description: The generation observed by the deployment controller.
  1017                  format: int64
  1018                  type: integer
  1019                phase:
  1020                  description: Phase represents the current phase of a MachineDeployment
  1021                    (ScalingUp, ScalingDown, Running, Failed, or Unknown).
  1022                  type: string
  1023                readyReplicas:
  1024                  description: Total number of ready machines targeted by this deployment.
  1025                  format: int32
  1026                  type: integer
  1027                replicas:
  1028                  description: |-
  1029                    Total number of non-terminated machines targeted by this deployment
  1030                    (their labels match the selector).
  1031                  format: int32
  1032                  type: integer
  1033                selector:
  1034                  description: |-
  1035                    Selector is the same as the label selector but in the string format to avoid introspection
  1036                    by clients. The string will be in the same format as the query-param syntax.
  1037                    More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors
  1038                  type: string
  1039                unavailableReplicas:
  1040                  description: |-
  1041                    Total number of unavailable machines targeted by this deployment.
  1042                    This is the total number of machines that are still required for
  1043                    the deployment to have 100% available capacity. They may either
  1044                    be machines that are running but not yet available or machines
  1045                    that still have not been created.
  1046                  format: int32
  1047                  type: integer
  1048                updatedReplicas:
  1049                  description: |-
  1050                    Total number of non-terminated machines targeted by this deployment
  1051                    that have the desired template spec.
  1052                  format: int32
  1053                  type: integer
  1054              type: object
  1055          type: object
  1056      served: false
  1057      storage: false
  1058      subresources:
  1059        scale:
  1060          labelSelectorPath: .status.selector
  1061          specReplicasPath: .spec.replicas
  1062          statusReplicasPath: .status.replicas
  1063        status: {}
  1064    - additionalPrinterColumns:
  1065      - description: Cluster
  1066        jsonPath: .spec.clusterName
  1067        name: Cluster
  1068        type: string
  1069      - description: Total number of machines desired by this MachineDeployment
  1070        jsonPath: .spec.replicas
  1071        name: Desired
  1072        priority: 10
  1073        type: integer
  1074      - description: Total number of non-terminated machines targeted by this MachineDeployment
  1075        jsonPath: .status.replicas
  1076        name: Replicas
  1077        type: integer
  1078      - description: Total number of ready machines targeted by this MachineDeployment
  1079        jsonPath: .status.readyReplicas
  1080        name: Ready
  1081        type: integer
  1082      - description: Total number of non-terminated machines targeted by this deployment
  1083          that have the desired template spec
  1084        jsonPath: .status.updatedReplicas
  1085        name: Updated
  1086        type: integer
  1087      - description: Total number of unavailable machines targeted by this MachineDeployment
  1088        jsonPath: .status.unavailableReplicas
  1089        name: Unavailable
  1090        type: integer
  1091      - description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown
  1092        jsonPath: .status.phase
  1093        name: Phase
  1094        type: string
  1095      - description: Time duration since creation of MachineDeployment
  1096        jsonPath: .metadata.creationTimestamp
  1097        name: Age
  1098        type: date
  1099      - description: Kubernetes version associated with this MachineDeployment
  1100        jsonPath: .spec.template.spec.version
  1101        name: Version
  1102        type: string
  1103      name: v1beta1
  1104      schema:
  1105        openAPIV3Schema:
  1106          description: MachineDeployment is the Schema for the machinedeployments API.
  1107          properties:
  1108            apiVersion:
  1109              description: |-
  1110                APIVersion defines the versioned schema of this representation of an object.
  1111                Servers should convert recognized schemas to the latest internal value, and
  1112                may reject unrecognized values.
  1113                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  1114              type: string
  1115            kind:
  1116              description: |-
  1117                Kind is a string value representing the REST resource this object represents.
  1118                Servers may infer this from the endpoint the client submits requests to.
  1119                Cannot be updated.
  1120                In CamelCase.
  1121                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1122              type: string
  1123            metadata:
  1124              type: object
  1125            spec:
  1126              description: MachineDeploymentSpec defines the desired state of MachineDeployment.
  1127              properties:
  1128                clusterName:
  1129                  description: ClusterName is the name of the Cluster this object belongs
  1130                    to.
  1131                  minLength: 1
  1132                  type: string
  1133                minReadySeconds:
  1134                  description: |-
  1135                    MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available.
  1136                    Defaults to 0 (machine will be considered available as soon as the Node is ready)
  1137                  format: int32
  1138                  type: integer
  1139                paused:
  1140                  description: Indicates that the deployment is paused.
  1141                  type: boolean
  1142                progressDeadlineSeconds:
  1143                  description: |-
  1144                    The maximum time in seconds for a deployment to make progress before it
  1145                    is considered to be failed. The deployment controller will continue to
  1146                    process failed deployments and a condition with a ProgressDeadlineExceeded
  1147                    reason will be surfaced in the deployment status. Note that progress will
  1148                    not be estimated during the time a deployment is paused. Defaults to 600s.
  1149                  format: int32
  1150                  type: integer
  1151                replicas:
  1152                  description: |-
  1153                    Number of desired machines.
  1154                    This is a pointer to distinguish between explicit zero and not specified.
  1155  
  1156  
  1157                    Defaults to:
  1158                    * if the Kubernetes autoscaler min size and max size annotations are set:
  1159                      - if it's a new MachineDeployment, use min size
  1160                      - if the replicas field of the old MachineDeployment is < min size, use min size
  1161                      - if the replicas field of the old MachineDeployment is > max size, use max size
  1162                      - if the replicas field of the old MachineDeployment is in the (min size, max size) range, keep the value from the oldMD
  1163                    * otherwise use 1
  1164                    Note: Defaulting will be run whenever the replicas field is not set:
  1165                    * A new MachineDeployment is created with replicas not set.
  1166                    * On an existing MachineDeployment the replicas field was first set and is now unset.
  1167                    Those cases are especially relevant for the following Kubernetes autoscaler use cases:
  1168                    * A new MachineDeployment is created and replicas should be managed by the autoscaler
  1169                    * An existing MachineDeployment which initially wasn't controlled by the autoscaler
  1170                      should be later controlled by the autoscaler
  1171                  format: int32
  1172                  type: integer
  1173                revisionHistoryLimit:
  1174                  description: |-
  1175                    The number of old MachineSets to retain to allow rollback.
  1176                    This is a pointer to distinguish between explicit zero and not specified.
  1177                    Defaults to 1.
  1178                  format: int32
  1179                  type: integer
  1180                rolloutAfter:
  1181                  description: |-
  1182                    RolloutAfter is a field to indicate a rollout should be performed
  1183                    after the specified time even if no changes have been made to the
  1184                    MachineDeployment.
  1185                    Example: In the YAML the time can be specified in the RFC3339 format.
  1186                    To specify the rolloutAfter target as March 9, 2023, at 9 am UTC
  1187                    use "2023-03-09T09:00:00Z".
  1188                  format: date-time
  1189                  type: string
  1190                selector:
  1191                  description: |-
  1192                    Label selector for machines. Existing MachineSets whose machines are
  1193                    selected by this will be the ones affected by this deployment.
  1194                    It must match the machine template's labels.
  1195                  properties:
  1196                    matchExpressions:
  1197                      description: matchExpressions is a list of label selector requirements.
  1198                        The requirements are ANDed.
  1199                      items:
  1200                        description: |-
  1201                          A label selector requirement is a selector that contains values, a key, and an operator that
  1202                          relates the key and values.
  1203                        properties:
  1204                          key:
  1205                            description: key is the label key that the selector applies
  1206                              to.
  1207                            type: string
  1208                          operator:
  1209                            description: |-
  1210                              operator represents a key's relationship to a set of values.
  1211                              Valid operators are In, NotIn, Exists and DoesNotExist.
  1212                            type: string
  1213                          values:
  1214                            description: |-
  1215                              values is an array of string values. If the operator is In or NotIn,
  1216                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1217                              the values array must be empty. This array is replaced during a strategic
  1218                              merge patch.
  1219                            items:
  1220                              type: string
  1221                            type: array
  1222                        required:
  1223                        - key
  1224                        - operator
  1225                        type: object
  1226                      type: array
  1227                    matchLabels:
  1228                      additionalProperties:
  1229                        type: string
  1230                      description: |-
  1231                        matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  1232                        map is equivalent to an element of matchExpressions, whose key field is "key", the
  1233                        operator is "In", and the values array contains only "value". The requirements are ANDed.
  1234                      type: object
  1235                  type: object
  1236                  x-kubernetes-map-type: atomic
  1237                strategy:
  1238                  description: |-
  1239                    The deployment strategy to use to replace existing machines with
  1240                    new ones.
  1241                  properties:
  1242                    rollingUpdate:
  1243                      description: |-
  1244                        Rolling update config params. Present only if
  1245                        MachineDeploymentStrategyType = RollingUpdate.
  1246                      properties:
  1247                        deletePolicy:
  1248                          description: |-
  1249                            DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling.
  1250                            Valid values are "Random, "Newest", "Oldest"
  1251                            When no value is supplied, the default DeletePolicy of MachineSet is used
  1252                          enum:
  1253                          - Random
  1254                          - Newest
  1255                          - Oldest
  1256                          type: string
  1257                        maxSurge:
  1258                          anyOf:
  1259                          - type: integer
  1260                          - type: string
  1261                          description: |-
  1262                            The maximum number of machines that can be scheduled above the
  1263                            desired number of machines.
  1264                            Value can be an absolute number (ex: 5) or a percentage of
  1265                            desired machines (ex: 10%).
  1266                            This can not be 0 if MaxUnavailable is 0.
  1267                            Absolute number is calculated from percentage by rounding up.
  1268                            Defaults to 1.
  1269                            Example: when this is set to 30%, the new MachineSet can be scaled
  1270                            up immediately when the rolling update starts, such that the total
  1271                            number of old and new machines do not exceed 130% of desired
  1272                            machines. Once old machines have been killed, new MachineSet can
  1273                            be scaled up further, ensuring that total number of machines running
  1274                            at any time during the update is at most 130% of desired machines.
  1275                          x-kubernetes-int-or-string: true
  1276                        maxUnavailable:
  1277                          anyOf:
  1278                          - type: integer
  1279                          - type: string
  1280                          description: |-
  1281                            The maximum number of machines that can be unavailable during the update.
  1282                            Value can be an absolute number (ex: 5) or a percentage of desired
  1283                            machines (ex: 10%).
  1284                            Absolute number is calculated from percentage by rounding down.
  1285                            This can not be 0 if MaxSurge is 0.
  1286                            Defaults to 0.
  1287                            Example: when this is set to 30%, the old MachineSet can be scaled
  1288                            down to 70% of desired machines immediately when the rolling update
  1289                            starts. Once new machines are ready, old MachineSet can be scaled
  1290                            down further, followed by scaling up the new MachineSet, ensuring
  1291                            that the total number of machines available at all times
  1292                            during the update is at least 70% of desired machines.
  1293                          x-kubernetes-int-or-string: true
  1294                      type: object
  1295                    type:
  1296                      description: |-
  1297                        Type of deployment. Allowed values are RollingUpdate and OnDelete.
  1298                        The default is RollingUpdate.
  1299                      enum:
  1300                      - RollingUpdate
  1301                      - OnDelete
  1302                      type: string
  1303                  type: object
  1304                template:
  1305                  description: Template describes the machines that will be created.
  1306                  properties:
  1307                    metadata:
  1308                      description: |-
  1309                        Standard object's metadata.
  1310                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  1311                      properties:
  1312                        annotations:
  1313                          additionalProperties:
  1314                            type: string
  1315                          description: |-
  1316                            Annotations is an unstructured key value map stored with a resource that may be
  1317                            set by external tools to store and retrieve arbitrary metadata. They are not
  1318                            queryable and should be preserved when modifying objects.
  1319                            More info: http://kubernetes.io/docs/user-guide/annotations
  1320                          type: object
  1321                        labels:
  1322                          additionalProperties:
  1323                            type: string
  1324                          description: |-
  1325                            Map of string keys and values that can be used to organize and categorize
  1326                            (scope and select) objects. May match selectors of replication controllers
  1327                            and services.
  1328                            More info: http://kubernetes.io/docs/user-guide/labels
  1329                          type: object
  1330                      type: object
  1331                    spec:
  1332                      description: |-
  1333                        Specification of the desired behavior of the machine.
  1334                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  1335                      properties:
  1336                        bootstrap:
  1337                          description: |-
  1338                            Bootstrap is a reference to a local struct which encapsulates
  1339                            fields to configure the Machine’s bootstrapping mechanism.
  1340                          properties:
  1341                            configRef:
  1342                              description: |-
  1343                                ConfigRef is a reference to a bootstrap provider-specific resource
  1344                                that holds configuration details. The reference is optional to
  1345                                allow users/operators to specify Bootstrap.DataSecretName without
  1346                                the need of a controller.
  1347                              properties:
  1348                                apiVersion:
  1349                                  description: API version of the referent.
  1350                                  type: string
  1351                                fieldPath:
  1352                                  description: |-
  1353                                    If referring to a piece of an object instead of an entire object, this string
  1354                                    should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
  1355                                    For example, if the object reference is to a container within a pod, this would take on a value like:
  1356                                    "spec.containers{name}" (where "name" refers to the name of the container that triggered
  1357                                    the event) or if no container name is specified "spec.containers[2]" (container with
  1358                                    index 2 in this pod). This syntax is chosen only to have some well-defined way of
  1359                                    referencing a part of an object.
  1360                                    TODO: this design is not final and this field is subject to change in the future.
  1361                                  type: string
  1362                                kind:
  1363                                  description: |-
  1364                                    Kind of the referent.
  1365                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1366                                  type: string
  1367                                name:
  1368                                  description: |-
  1369                                    Name of the referent.
  1370                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1371                                  type: string
  1372                                namespace:
  1373                                  description: |-
  1374                                    Namespace of the referent.
  1375                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
  1376                                  type: string
  1377                                resourceVersion:
  1378                                  description: |-
  1379                                    Specific resourceVersion to which this reference is made, if any.
  1380                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
  1381                                  type: string
  1382                                uid:
  1383                                  description: |-
  1384                                    UID of the referent.
  1385                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
  1386                                  type: string
  1387                              type: object
  1388                              x-kubernetes-map-type: atomic
  1389                            dataSecretName:
  1390                              description: |-
  1391                                DataSecretName is the name of the secret that stores the bootstrap data script.
  1392                                If nil, the Machine should remain in the Pending state.
  1393                              type: string
  1394                          type: object
  1395                        clusterName:
  1396                          description: ClusterName is the name of the Cluster this object
  1397                            belongs to.
  1398                          minLength: 1
  1399                          type: string
  1400                        failureDomain:
  1401                          description: |-
  1402                            FailureDomain is the failure domain the machine will be created in.
  1403                            Must match a key in the FailureDomains map stored on the cluster object.
  1404                          type: string
  1405                        infrastructureRef:
  1406                          description: |-
  1407                            InfrastructureRef is a required reference to a custom resource
  1408                            offered by an infrastructure provider.
  1409                          properties:
  1410                            apiVersion:
  1411                              description: API version of the referent.
  1412                              type: string
  1413                            fieldPath:
  1414                              description: |-
  1415                                If referring to a piece of an object instead of an entire object, this string
  1416                                should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
  1417                                For example, if the object reference is to a container within a pod, this would take on a value like:
  1418                                "spec.containers{name}" (where "name" refers to the name of the container that triggered
  1419                                the event) or if no container name is specified "spec.containers[2]" (container with
  1420                                index 2 in this pod). This syntax is chosen only to have some well-defined way of
  1421                                referencing a part of an object.
  1422                                TODO: this design is not final and this field is subject to change in the future.
  1423                              type: string
  1424                            kind:
  1425                              description: |-
  1426                                Kind of the referent.
  1427                                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1428                              type: string
  1429                            name:
  1430                              description: |-
  1431                                Name of the referent.
  1432                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1433                              type: string
  1434                            namespace:
  1435                              description: |-
  1436                                Namespace of the referent.
  1437                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
  1438                              type: string
  1439                            resourceVersion:
  1440                              description: |-
  1441                                Specific resourceVersion to which this reference is made, if any.
  1442                                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
  1443                              type: string
  1444                            uid:
  1445                              description: |-
  1446                                UID of the referent.
  1447                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
  1448                              type: string
  1449                          type: object
  1450                          x-kubernetes-map-type: atomic
  1451                        nodeDeletionTimeout:
  1452                          description: |-
  1453                            NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine
  1454                            hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely.
  1455                            Defaults to 10 seconds.
  1456                          type: string
  1457                        nodeDrainTimeout:
  1458                          description: |-
  1459                            NodeDrainTimeout is the total amount of time that the controller will spend on draining a node.
  1460                            The default value is 0, meaning that the node can be drained without any time limitations.
  1461                            NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
  1462                          type: string
  1463                        nodeVolumeDetachTimeout:
  1464                          description: |-
  1465                            NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes
  1466                            to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations.
  1467                          type: string
  1468                        providerID:
  1469                          description: |-
  1470                            ProviderID is the identification ID of the machine provided by the provider.
  1471                            This field must match the provider ID as seen on the node object corresponding to this machine.
  1472                            This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler
  1473                            with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out
  1474                            machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a
  1475                            generic out-of-tree provider for autoscaler, this field is required by autoscaler to be
  1476                            able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver
  1477                            and then a comparison is done to find out unregistered machines and are marked for delete.
  1478                            This field will be set by the actuators and consumed by higher level entities like autoscaler that will
  1479                            be interfacing with cluster-api as generic provider.
  1480                          type: string
  1481                        version:
  1482                          description: |-
  1483                            Version defines the desired Kubernetes version.
  1484                            This field is meant to be optionally used by bootstrap providers.
  1485                          type: string
  1486                      required:
  1487                      - bootstrap
  1488                      - clusterName
  1489                      - infrastructureRef
  1490                      type: object
  1491                  type: object
  1492              required:
  1493              - clusterName
  1494              - selector
  1495              - template
  1496              type: object
  1497            status:
  1498              description: MachineDeploymentStatus defines the observed state of MachineDeployment.
  1499              properties:
  1500                availableReplicas:
  1501                  description: |-
  1502                    Total number of available machines (ready for at least minReadySeconds)
  1503                    targeted by this deployment.
  1504                  format: int32
  1505                  type: integer
  1506                conditions:
  1507                  description: Conditions defines current service state of the MachineDeployment.
  1508                  items:
  1509                    description: Condition defines an observation of a Cluster API resource
  1510                      operational state.
  1511                    properties:
  1512                      lastTransitionTime:
  1513                        description: |-
  1514                          Last time the condition transitioned from one status to another.
  1515                          This should be when the underlying condition changed. If that is not known, then using the time when
  1516                          the API field changed is acceptable.
  1517                        format: date-time
  1518                        type: string
  1519                      message:
  1520                        description: |-
  1521                          A human readable message indicating details about the transition.
  1522                          This field may be empty.
  1523                        type: string
  1524                      reason:
  1525                        description: |-
  1526                          The reason for the condition's last transition in CamelCase.
  1527                          The specific API may choose whether or not this field is considered a guaranteed API.
  1528                          This field may not be empty.
  1529                        type: string
  1530                      severity:
  1531                        description: |-
  1532                          Severity provides an explicit classification of Reason code, so the users or machines can immediately
  1533                          understand the current situation and act accordingly.
  1534                          The Severity field MUST be set only when Status=False.
  1535                        type: string
  1536                      status:
  1537                        description: Status of the condition, one of True, False, Unknown.
  1538                        type: string
  1539                      type:
  1540                        description: |-
  1541                          Type of condition in CamelCase or in foo.example.com/CamelCase.
  1542                          Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
  1543                          can be useful (see .node.status.conditions), the ability to deconflict is important.
  1544                        type: string
  1545                    required:
  1546                    - lastTransitionTime
  1547                    - status
  1548                    - type
  1549                    type: object
  1550                  type: array
  1551                observedGeneration:
  1552                  description: The generation observed by the deployment controller.
  1553                  format: int64
  1554                  type: integer
  1555                phase:
  1556                  description: Phase represents the current phase of a MachineDeployment
  1557                    (ScalingUp, ScalingDown, Running, Failed, or Unknown).
  1558                  type: string
  1559                readyReplicas:
  1560                  description: Total number of ready machines targeted by this deployment.
  1561                  format: int32
  1562                  type: integer
  1563                replicas:
  1564                  description: |-
  1565                    Total number of non-terminated machines targeted by this deployment
  1566                    (their labels match the selector).
  1567                  format: int32
  1568                  type: integer
  1569                selector:
  1570                  description: |-
  1571                    Selector is the same as the label selector but in the string format to avoid introspection
  1572                    by clients. The string will be in the same format as the query-param syntax.
  1573                    More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors
  1574                  type: string
  1575                unavailableReplicas:
  1576                  description: |-
  1577                    Total number of unavailable machines targeted by this deployment.
  1578                    This is the total number of machines that are still required for
  1579                    the deployment to have 100% available capacity. They may either
  1580                    be machines that are running but not yet available or machines
  1581                    that still have not been created.
  1582                  format: int32
  1583                  type: integer
  1584                updatedReplicas:
  1585                  description: |-
  1586                    Total number of non-terminated machines targeted by this deployment
  1587                    that have the desired template spec.
  1588                  format: int32
  1589                  type: integer
  1590              type: object
  1591          type: object
  1592      served: true
  1593      storage: true
  1594      subresources:
  1595        scale:
  1596          labelSelectorPath: .status.selector
  1597          specReplicasPath: .spec.replicas
  1598          statusReplicasPath: .status.replicas
  1599        status: {}