github.com/giantswarm/apiextensions/v2@v2.6.2/config/crd/v1/cluster.x-k8s.io_machinedeployments.yaml (about)

     1  
     2  ---
     3  apiVersion: apiextensions.k8s.io/v1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.2.4
     8    creationTimestamp: null
     9    name: machinedeployments.cluster.x-k8s.io
    10  spec:
    11    group: cluster.x-k8s.io
    12    names:
    13      categories:
    14      - cluster-api
    15      kind: MachineDeployment
    16      listKind: MachineDeploymentList
    17      plural: machinedeployments
    18      shortNames:
    19      - md
    20      singular: machinedeployment
    21    scope: Namespaced
    22    versions:
    23    - name: v1alpha2
    24      schema:
    25        openAPIV3Schema:
    26          description: MachineDeployment is the Schema for the machinedeployments API
    27          properties:
    28            apiVersion:
    29              description: 'APIVersion defines the versioned schema of this representation
    30                of an object. Servers should convert recognized schemas to the latest
    31                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    32              type: string
    33            kind:
    34              description: 'Kind is a string value representing the REST resource this
    35                object represents. Servers may infer this from the endpoint the client
    36                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    37              type: string
    38            metadata:
    39              type: object
    40            spec:
    41              description: MachineDeploymentSpec defines the desired state of MachineDeployment
    42              properties:
    43                minReadySeconds:
    44                  description: Minimum number of seconds for which a newly created machine
    45                    should be ready. Defaults to 0 (machine will be considered available
    46                    as soon as it is ready)
    47                  format: int32
    48                  type: integer
    49                paused:
    50                  description: Indicates that the deployment is paused.
    51                  type: boolean
    52                progressDeadlineSeconds:
    53                  description: The maximum time in seconds for a deployment to make
    54                    progress before it is considered to be failed. The deployment controller
    55                    will continue to process failed deployments and a condition with
    56                    a ProgressDeadlineExceeded reason will be surfaced in the deployment
    57                    status. Note that progress will not be estimated during the time
    58                    a deployment is paused. Defaults to 600s.
    59                  format: int32
    60                  type: integer
    61                replicas:
    62                  description: Number of desired machines. Defaults to 1. This is a
    63                    pointer to distinguish between explicit zero and not specified.
    64                  format: int32
    65                  type: integer
    66                revisionHistoryLimit:
    67                  description: The number of old MachineSets to retain to allow rollback.
    68                    This is a pointer to distinguish between explicit zero and not specified.
    69                    Defaults to 1.
    70                  format: int32
    71                  type: integer
    72                selector:
    73                  description: Label selector for machines. Existing MachineSets whose
    74                    machines are selected by this will be the ones affected by this
    75                    deployment. It must match the machine template's labels.
    76                  properties:
    77                    matchExpressions:
    78                      description: matchExpressions is a list of label selector requirements.
    79                        The requirements are ANDed.
    80                      items:
    81                        description: A label selector requirement is a selector that
    82                          contains values, a key, and an operator that relates the key
    83                          and values.
    84                        properties:
    85                          key:
    86                            description: key is the label key that the selector applies
    87                              to.
    88                            type: string
    89                          operator:
    90                            description: operator represents a key's relationship to
    91                              a set of values. Valid operators are In, NotIn, Exists
    92                              and DoesNotExist.
    93                            type: string
    94                          values:
    95                            description: values is an array of string values. If the
    96                              operator is In or NotIn, the values array must be non-empty.
    97                              If the operator is Exists or DoesNotExist, the values
    98                              array must be empty. This array is replaced during a strategic
    99                              merge patch.
   100                            items:
   101                              type: string
   102                            type: array
   103                        required:
   104                        - key
   105                        - operator
   106                        type: object
   107                      type: array
   108                    matchLabels:
   109                      additionalProperties:
   110                        type: string
   111                      description: matchLabels is a map of {key,value} pairs. A single
   112                        {key,value} in the matchLabels map is equivalent to an element
   113                        of matchExpressions, whose key field is "key", the operator
   114                        is "In", and the values array contains only "value". The requirements
   115                        are ANDed.
   116                      type: object
   117                  type: object
   118                strategy:
   119                  description: The deployment strategy to use to replace existing machines
   120                    with new ones.
   121                  properties:
   122                    rollingUpdate:
   123                      description: Rolling update config params. Present only if MachineDeploymentStrategyType
   124                        = RollingUpdate.
   125                      properties:
   126                        maxSurge:
   127                          anyOf:
   128                          - type: integer
   129                          - type: string
   130                          description: 'The maximum number of machines that can be scheduled
   131                            above the desired number of machines. Value can be an absolute
   132                            number (ex: 5) or a percentage of desired machines (ex:
   133                            10%). This can not be 0 if MaxUnavailable is 0. Absolute
   134                            number is calculated from percentage by rounding up. Defaults
   135                            to 1. Example: when this is set to 30%, the new MachineSet
   136                            can be scaled up immediately when the rolling update starts,
   137                            such that the total number of old and new machines do not
   138                            exceed 130% of desired machines. Once old machines have
   139                            been killed, new MachineSet can be scaled up further, ensuring
   140                            that total number of machines running at any time during
   141                            the update is at most 130% of desired machines.'
   142                          x-kubernetes-int-or-string: true
   143                        maxUnavailable:
   144                          anyOf:
   145                          - type: integer
   146                          - type: string
   147                          description: 'The maximum number of machines that can be unavailable
   148                            during the update. Value can be an absolute number (ex:
   149                            5) or a percentage of desired machines (ex: 10%). Absolute
   150                            number is calculated from percentage by rounding down. This
   151                            can not be 0 if MaxSurge is 0. Defaults to 0. Example: when
   152                            this is set to 30%, the old MachineSet can be scaled down
   153                            to 70% of desired machines immediately when the rolling
   154                            update starts. Once new machines are ready, old MachineSet
   155                            can be scaled down further, followed by scaling up the new
   156                            MachineSet, ensuring that the total number of machines available
   157                            at all times during the update is at least 70% of desired
   158                            machines.'
   159                          x-kubernetes-int-or-string: true
   160                      type: object
   161                    type:
   162                      description: Type of deployment. Currently the only supported
   163                        strategy is "RollingUpdate". Default is RollingUpdate.
   164                      type: string
   165                  type: object
   166                template:
   167                  description: Template describes the machines that will be created.
   168                  properties:
   169                    metadata:
   170                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
   171                      properties:
   172                        annotations:
   173                          additionalProperties:
   174                            type: string
   175                          description: 'Annotations is an unstructured key value map
   176                            stored with a resource that may be set by external tools
   177                            to store and retrieve arbitrary metadata. They are not queryable
   178                            and should be preserved when modifying objects. More info:
   179                            http://kubernetes.io/docs/user-guide/annotations'
   180                          type: object
   181                        generateName:
   182                          description: "GenerateName is an optional prefix, used by
   183                            the server, to generate a unique name ONLY IF the Name field
   184                            has not been provided. If this field is used, the name returned
   185                            to the client will be different than the name passed. This
   186                            value will also be combined with a unique suffix. The provided
   187                            value has the same validation rules as the Name field, and
   188                            may be truncated by the length of the suffix required to
   189                            make the value unique on the server. \n If this field is
   190                            specified and the generated name exists, the server will
   191                            NOT return a 409 - instead, it will either return 201 Created
   192                            or 500 with Reason ServerTimeout indicating a unique name
   193                            could not be found in the time allotted, and the client
   194                            should retry (optionally after the time indicated in the
   195                            Retry-After header). \n Applied only if Name is not specified.
   196                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency"
   197                          type: string
   198                        labels:
   199                          additionalProperties:
   200                            type: string
   201                          description: 'Map of string keys and values that can be used
   202                            to organize and categorize (scope and select) objects. May
   203                            match selectors of replication controllers and services.
   204                            More info: http://kubernetes.io/docs/user-guide/labels'
   205                          type: object
   206                        name:
   207                          description: 'Name must be unique within a namespace. Is required
   208                            when creating resources, although some resources may allow
   209                            a client to request the generation of an appropriate name
   210                            automatically. Name is primarily intended for creation idempotence
   211                            and configuration definition. Cannot be updated. More info:
   212                            http://kubernetes.io/docs/user-guide/identifiers#names'
   213                          type: string
   214                        namespace:
   215                          description: "Namespace defines the space within each name
   216                            must be unique. An empty namespace is equivalent to the
   217                            \"default\" namespace, but \"default\" is the canonical
   218                            representation. Not all objects are required to be scoped
   219                            to a namespace - the value of this field for those objects
   220                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
   221                            More info: http://kubernetes.io/docs/user-guide/namespaces"
   222                          type: string
   223                        ownerReferences:
   224                          description: List of objects depended by this object. If ALL
   225                            objects in the list have been deleted, this object will
   226                            be garbage collected. If this object is managed by a controller,
   227                            then an entry in this list will point to this controller,
   228                            with the controller field set to true. There cannot be more
   229                            than one managing controller.
   230                          items:
   231                            description: OwnerReference contains enough information
   232                              to let you identify an owning object. An owning object
   233                              must be in the same namespace as the dependent, or be
   234                              cluster-scoped, so there is no namespace field.
   235                            properties:
   236                              apiVersion:
   237                                description: API version of the referent.
   238                                type: string
   239                              blockOwnerDeletion:
   240                                description: If true, AND if the owner has the "foregroundDeletion"
   241                                  finalizer, then the owner cannot be deleted from the
   242                                  key-value store until this reference is removed. Defaults
   243                                  to false. To set this field, a user needs "delete"
   244                                  permission of the owner, otherwise 422 (Unprocessable
   245                                  Entity) will be returned.
   246                                type: boolean
   247                              controller:
   248                                description: If true, this reference points to the managing
   249                                  controller.
   250                                type: boolean
   251                              kind:
   252                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   253                                type: string
   254                              name:
   255                                description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   256                                type: string
   257                              uid:
   258                                description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   259                                type: string
   260                            required:
   261                            - apiVersion
   262                            - kind
   263                            - name
   264                            - uid
   265                            type: object
   266                          type: array
   267                      type: object
   268                    spec:
   269                      description: 'Specification of the desired behavior of the machine.
   270                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
   271                      properties:
   272                        bootstrap:
   273                          description: Bootstrap is a reference to a local struct which
   274                            encapsulates fields to configure the Machine’s bootstrapping
   275                            mechanism.
   276                          properties:
   277                            configRef:
   278                              description: ConfigRef is a reference to a bootstrap provider-specific
   279                                resource that holds configuration details. The reference
   280                                is optional to allow users/operators to specify Bootstrap.Data
   281                                without the need of a controller.
   282                              properties:
   283                                apiVersion:
   284                                  description: API version of the referent.
   285                                  type: string
   286                                fieldPath:
   287                                  description: 'If referring to a piece of an object
   288                                    instead of an entire object, this string should
   289                                    contain a valid JSON/Go field access statement,
   290                                    such as desiredState.manifest.containers[2]. For
   291                                    example, if the object reference is to a container
   292                                    within a pod, this would take on a value like: "spec.containers{name}"
   293                                    (where "name" refers to the name of the container
   294                                    that triggered the event) or if no container name
   295                                    is specified "spec.containers[2]" (container with
   296                                    index 2 in this pod). This syntax is chosen only
   297                                    to have some well-defined way of referencing a part
   298                                    of an object. TODO: this design is not final and
   299                                    this field is subject to change in the future.'
   300                                  type: string
   301                                kind:
   302                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   303                                  type: string
   304                                name:
   305                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   306                                  type: string
   307                                namespace:
   308                                  description: 'Namespace of the referent. More info:
   309                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   310                                  type: string
   311                                resourceVersion:
   312                                  description: 'Specific resourceVersion to which this
   313                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   314                                  type: string
   315                                uid:
   316                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   317                                  type: string
   318                              type: object
   319                            data:
   320                              description: Data contains the bootstrap data, such as
   321                                cloud-init details scripts. If nil, the Machine should
   322                                remain in the Pending state.
   323                              type: string
   324                          type: object
   325                        infrastructureRef:
   326                          description: InfrastructureRef is a required reference to
   327                            a custom resource offered by an infrastructure provider.
   328                          properties:
   329                            apiVersion:
   330                              description: API version of the referent.
   331                              type: string
   332                            fieldPath:
   333                              description: 'If referring to a piece of an object instead
   334                                of an entire object, this string should contain a valid
   335                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
   336                                For example, if the object reference is to a container
   337                                within a pod, this would take on a value like: "spec.containers{name}"
   338                                (where "name" refers to the name of the container that
   339                                triggered the event) or if no container name is specified
   340                                "spec.containers[2]" (container with index 2 in this
   341                                pod). This syntax is chosen only to have some well-defined
   342                                way of referencing a part of an object. TODO: this design
   343                                is not final and this field is subject to change in
   344                                the future.'
   345                              type: string
   346                            kind:
   347                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   348                              type: string
   349                            name:
   350                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   351                              type: string
   352                            namespace:
   353                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   354                              type: string
   355                            resourceVersion:
   356                              description: 'Specific resourceVersion to which this reference
   357                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   358                              type: string
   359                            uid:
   360                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   361                              type: string
   362                          type: object
   363                        metadata:
   364                          description: 'DEPRECATED: ObjectMeta has no function and isn''t
   365                            used anywhere.'
   366                          properties:
   367                            annotations:
   368                              additionalProperties:
   369                                type: string
   370                              description: 'Annotations is an unstructured key value
   371                                map stored with a resource that may be set by external
   372                                tools to store and retrieve arbitrary metadata. They
   373                                are not queryable and should be preserved when modifying
   374                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
   375                              type: object
   376                            generateName:
   377                              description: "GenerateName is an optional prefix, used
   378                                by the server, to generate a unique name ONLY IF the
   379                                Name field has not been provided. If this field is used,
   380                                the name returned to the client will be different than
   381                                the name passed. This value will also be combined with
   382                                a unique suffix. The provided value has the same validation
   383                                rules as the Name field, and may be truncated by the
   384                                length of the suffix required to make the value unique
   385                                on the server. \n If this field is specified and the
   386                                generated name exists, the server will NOT return a
   387                                409 - instead, it will either return 201 Created or
   388                                500 with Reason ServerTimeout indicating a unique name
   389                                could not be found in the time allotted, and the client
   390                                should retry (optionally after the time indicated in
   391                                the Retry-After header). \n Applied only if Name is
   392                                not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency"
   393                              type: string
   394                            labels:
   395                              additionalProperties:
   396                                type: string
   397                              description: 'Map of string keys and values that can be
   398                                used to organize and categorize (scope and select) objects.
   399                                May match selectors of replication controllers and services.
   400                                More info: http://kubernetes.io/docs/user-guide/labels'
   401                              type: object
   402                            name:
   403                              description: 'Name must be unique within a namespace.
   404                                Is required when creating resources, although some resources
   405                                may allow a client to request the generation of an appropriate
   406                                name automatically. Name is primarily intended for creation
   407                                idempotence and configuration definition. Cannot be
   408                                updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   409                              type: string
   410                            namespace:
   411                              description: "Namespace defines the space within each
   412                                name must be unique. An empty namespace is equivalent
   413                                to the \"default\" namespace, but \"default\" is the
   414                                canonical representation. Not all objects are required
   415                                to be scoped to a namespace - the value of this field
   416                                for those objects will be empty. \n Must be a DNS_LABEL.
   417                                Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
   418                              type: string
   419                            ownerReferences:
   420                              description: List of objects depended by this object.
   421                                If ALL objects in the list have been deleted, this object
   422                                will be garbage collected. If this object is managed
   423                                by a controller, then an entry in this list will point
   424                                to this controller, with the controller field set to
   425                                true. There cannot be more than one managing controller.
   426                              items:
   427                                description: OwnerReference contains enough information
   428                                  to let you identify an owning object. An owning object
   429                                  must be in the same namespace as the dependent, or
   430                                  be cluster-scoped, so there is no namespace field.
   431                                properties:
   432                                  apiVersion:
   433                                    description: API version of the referent.
   434                                    type: string
   435                                  blockOwnerDeletion:
   436                                    description: If true, AND if the owner has the "foregroundDeletion"
   437                                      finalizer, then the owner cannot be deleted from
   438                                      the key-value store until this reference is removed.
   439                                      Defaults to false. To set this field, a user needs
   440                                      "delete" permission of the owner, otherwise 422
   441                                      (Unprocessable Entity) will be returned.
   442                                    type: boolean
   443                                  controller:
   444                                    description: If true, this reference points to the
   445                                      managing controller.
   446                                    type: boolean
   447                                  kind:
   448                                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   449                                    type: string
   450                                  name:
   451                                    description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   452                                    type: string
   453                                  uid:
   454                                    description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   455                                    type: string
   456                                required:
   457                                - apiVersion
   458                                - kind
   459                                - name
   460                                - uid
   461                                type: object
   462                              type: array
   463                          type: object
   464                        providerID:
   465                          description: ProviderID is the identification ID of the machine
   466                            provided by the provider. This field must match the provider
   467                            ID as seen on the node object corresponding to this machine.
   468                            This field is required by higher level consumers of cluster-api.
   469                            Example use case is cluster autoscaler with cluster-api
   470                            as provider. Clean-up logic in the autoscaler compares machines
   471                            to nodes to find out machines at provider which could not
   472                            get registered as Kubernetes nodes. With cluster-api as
   473                            a generic out-of-tree provider for autoscaler, this field
   474                            is required by autoscaler to be able to have a provider
   475                            view of the list of machines. Another list of nodes is queried
   476                            from the k8s apiserver and then a comparison is done to
   477                            find out unregistered machines and are marked for delete.
   478                            This field will be set by the actuators and consumed by
   479                            higher level entities like autoscaler that will be interfacing
   480                            with cluster-api as generic provider.
   481                          type: string
   482                        version:
   483                          description: Version defines the desired Kubernetes version.
   484                            This field is meant to be optionally used by bootstrap providers.
   485                          type: string
   486                      required:
   487                      - bootstrap
   488                      - infrastructureRef
   489                      type: object
   490                  type: object
   491              required:
   492              - selector
   493              - template
   494              type: object
   495            status:
   496              description: MachineDeploymentStatus defines the observed state of MachineDeployment
   497              properties:
   498                availableReplicas:
   499                  description: Total number of available machines (ready for at least
   500                    minReadySeconds) targeted by this deployment.
   501                  format: int32
   502                  type: integer
   503                observedGeneration:
   504                  description: The generation observed by the deployment controller.
   505                  format: int64
   506                  type: integer
   507                readyReplicas:
   508                  description: Total number of ready machines targeted by this deployment.
   509                  format: int32
   510                  type: integer
   511                replicas:
   512                  description: Total number of non-terminated machines targeted by this
   513                    deployment (their labels match the selector).
   514                  format: int32
   515                  type: integer
   516                selector:
   517                  description: 'Selector is the same as the label selector but in the
   518                    string format to avoid introspection by clients. The string will
   519                    be in the same format as the query-param syntax. More info about
   520                    label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors'
   521                  type: string
   522                unavailableReplicas:
   523                  description: Total number of unavailable machines targeted by this
   524                    deployment. This is the total number of machines that are still
   525                    required for the deployment to have 100% available capacity. They
   526                    may either be machines that are running but not yet available or
   527                    machines that still have not been created.
   528                  format: int32
   529                  type: integer
   530                updatedReplicas:
   531                  description: Total number of non-terminated machines targeted by this
   532                    deployment that have the desired template spec.
   533                  format: int32
   534                  type: integer
   535              type: object
   536          type: object
   537      served: true
   538      storage: false
   539      subresources:
   540        scale:
   541          labelSelectorPath: .status.selector
   542          specReplicasPath: .spec.replicas
   543          statusReplicasPath: .status.replicas
   544        status: {}
   545    - additionalPrinterColumns:
   546      - description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown
   547        jsonPath: .status.phase
   548        name: Phase
   549        type: string
   550      - description: Total number of non-terminated machines targeted by this MachineDeployment
   551        jsonPath: .status.replicas
   552        name: Replicas
   553        type: integer
   554      - description: Total number of ready machines targeted by this MachineDeployment
   555        jsonPath: .status.readyReplicas
   556        name: Ready
   557        type: integer
   558      - description: Total number of non-terminated machines targeted by this deployment
   559          that have the desired template spec
   560        jsonPath: .status.updatedReplicas
   561        name: Updated
   562        type: integer
   563      - description: Total number of unavailable machines targeted by this MachineDeployment
   564        jsonPath: .status.unavailableReplicas
   565        name: Unavailable
   566        type: integer
   567      name: v1alpha3
   568      schema:
   569        openAPIV3Schema:
   570          description: MachineDeployment is the Schema for the machinedeployments API
   571          properties:
   572            apiVersion:
   573              description: 'APIVersion defines the versioned schema of this representation
   574                of an object. Servers should convert recognized schemas to the latest
   575                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
   576              type: string
   577            kind:
   578              description: 'Kind is a string value representing the REST resource this
   579                object represents. Servers may infer this from the endpoint the client
   580                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   581              type: string
   582            metadata:
   583              type: object
   584            spec:
   585              description: MachineDeploymentSpec defines the desired state of MachineDeployment
   586              properties:
   587                clusterName:
   588                  description: ClusterName is the name of the Cluster this object belongs
   589                    to.
   590                  minLength: 1
   591                  type: string
   592                minReadySeconds:
   593                  description: Minimum number of seconds for which a newly created machine
   594                    should be ready. Defaults to 0 (machine will be considered available
   595                    as soon as it is ready)
   596                  format: int32
   597                  type: integer
   598                paused:
   599                  description: Indicates that the deployment is paused.
   600                  type: boolean
   601                progressDeadlineSeconds:
   602                  description: The maximum time in seconds for a deployment to make
   603                    progress before it is considered to be failed. The deployment controller
   604                    will continue to process failed deployments and a condition with
   605                    a ProgressDeadlineExceeded reason will be surfaced in the deployment
   606                    status. Note that progress will not be estimated during the time
   607                    a deployment is paused. Defaults to 600s.
   608                  format: int32
   609                  type: integer
   610                replicas:
   611                  description: Number of desired machines. Defaults to 1. This is a
   612                    pointer to distinguish between explicit zero and not specified.
   613                  format: int32
   614                  type: integer
   615                revisionHistoryLimit:
   616                  description: The number of old MachineSets to retain to allow rollback.
   617                    This is a pointer to distinguish between explicit zero and not specified.
   618                    Defaults to 1.
   619                  format: int32
   620                  type: integer
   621                selector:
   622                  description: Label selector for machines. Existing MachineSets whose
   623                    machines are selected by this will be the ones affected by this
   624                    deployment. It must match the machine template's labels.
   625                  properties:
   626                    matchExpressions:
   627                      description: matchExpressions is a list of label selector requirements.
   628                        The requirements are ANDed.
   629                      items:
   630                        description: A label selector requirement is a selector that
   631                          contains values, a key, and an operator that relates the key
   632                          and values.
   633                        properties:
   634                          key:
   635                            description: key is the label key that the selector applies
   636                              to.
   637                            type: string
   638                          operator:
   639                            description: operator represents a key's relationship to
   640                              a set of values. Valid operators are In, NotIn, Exists
   641                              and DoesNotExist.
   642                            type: string
   643                          values:
   644                            description: values is an array of string values. If the
   645                              operator is In or NotIn, the values array must be non-empty.
   646                              If the operator is Exists or DoesNotExist, the values
   647                              array must be empty. This array is replaced during a strategic
   648                              merge patch.
   649                            items:
   650                              type: string
   651                            type: array
   652                        required:
   653                        - key
   654                        - operator
   655                        type: object
   656                      type: array
   657                    matchLabels:
   658                      additionalProperties:
   659                        type: string
   660                      description: matchLabels is a map of {key,value} pairs. A single
   661                        {key,value} in the matchLabels map is equivalent to an element
   662                        of matchExpressions, whose key field is "key", the operator
   663                        is "In", and the values array contains only "value". The requirements
   664                        are ANDed.
   665                      type: object
   666                  type: object
   667                strategy:
   668                  description: The deployment strategy to use to replace existing machines
   669                    with new ones.
   670                  properties:
   671                    rollingUpdate:
   672                      description: Rolling update config params. Present only if MachineDeploymentStrategyType
   673                        = RollingUpdate.
   674                      properties:
   675                        maxSurge:
   676                          anyOf:
   677                          - type: integer
   678                          - type: string
   679                          description: 'The maximum number of machines that can be scheduled
   680                            above the desired number of machines. Value can be an absolute
   681                            number (ex: 5) or a percentage of desired machines (ex:
   682                            10%). This can not be 0 if MaxUnavailable is 0. Absolute
   683                            number is calculated from percentage by rounding up. Defaults
   684                            to 1. Example: when this is set to 30%, the new MachineSet
   685                            can be scaled up immediately when the rolling update starts,
   686                            such that the total number of old and new machines do not
   687                            exceed 130% of desired machines. Once old machines have
   688                            been killed, new MachineSet can be scaled up further, ensuring
   689                            that total number of machines running at any time during
   690                            the update is at most 130% of desired machines.'
   691                          x-kubernetes-int-or-string: true
   692                        maxUnavailable:
   693                          anyOf:
   694                          - type: integer
   695                          - type: string
   696                          description: 'The maximum number of machines that can be unavailable
   697                            during the update. Value can be an absolute number (ex:
   698                            5) or a percentage of desired machines (ex: 10%). Absolute
   699                            number is calculated from percentage by rounding down. This
   700                            can not be 0 if MaxSurge is 0. Defaults to 0. Example: when
   701                            this is set to 30%, the old MachineSet can be scaled down
   702                            to 70% of desired machines immediately when the rolling
   703                            update starts. Once new machines are ready, old MachineSet
   704                            can be scaled down further, followed by scaling up the new
   705                            MachineSet, ensuring that the total number of machines available
   706                            at all times during the update is at least 70% of desired
   707                            machines.'
   708                          x-kubernetes-int-or-string: true
   709                      type: object
   710                    type:
   711                      description: Type of deployment. Currently the only supported
   712                        strategy is "RollingUpdate". Default is RollingUpdate.
   713                      type: string
   714                  type: object
   715                template:
   716                  description: Template describes the machines that will be created.
   717                  properties:
   718                    metadata:
   719                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
   720                      properties:
   721                        annotations:
   722                          additionalProperties:
   723                            type: string
   724                          description: 'Annotations is an unstructured key value map
   725                            stored with a resource that may be set by external tools
   726                            to store and retrieve arbitrary metadata. They are not queryable
   727                            and should be preserved when modifying objects. More info:
   728                            http://kubernetes.io/docs/user-guide/annotations'
   729                          type: object
   730                        generateName:
   731                          description: "GenerateName is an optional prefix, used by
   732                            the server, to generate a unique name ONLY IF the Name field
   733                            has not been provided. If this field is used, the name returned
   734                            to the client will be different than the name passed. This
   735                            value will also be combined with a unique suffix. The provided
   736                            value has the same validation rules as the Name field, and
   737                            may be truncated by the length of the suffix required to
   738                            make the value unique on the server. \n If this field is
   739                            specified and the generated name exists, the server will
   740                            NOT return a 409 - instead, it will either return 201 Created
   741                            or 500 with Reason ServerTimeout indicating a unique name
   742                            could not be found in the time allotted, and the client
   743                            should retry (optionally after the time indicated in the
   744                            Retry-After header). \n Applied only if Name is not specified.
   745                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency"
   746                          type: string
   747                        labels:
   748                          additionalProperties:
   749                            type: string
   750                          description: 'Map of string keys and values that can be used
   751                            to organize and categorize (scope and select) objects. May
   752                            match selectors of replication controllers and services.
   753                            More info: http://kubernetes.io/docs/user-guide/labels'
   754                          type: object
   755                        name:
   756                          description: 'Name must be unique within a namespace. Is required
   757                            when creating resources, although some resources may allow
   758                            a client to request the generation of an appropriate name
   759                            automatically. Name is primarily intended for creation idempotence
   760                            and configuration definition. Cannot be updated. More info:
   761                            http://kubernetes.io/docs/user-guide/identifiers#names'
   762                          type: string
   763                        namespace:
   764                          description: "Namespace defines the space within each name
   765                            must be unique. An empty namespace is equivalent to the
   766                            \"default\" namespace, but \"default\" is the canonical
   767                            representation. Not all objects are required to be scoped
   768                            to a namespace - the value of this field for those objects
   769                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
   770                            More info: http://kubernetes.io/docs/user-guide/namespaces"
   771                          type: string
   772                        ownerReferences:
   773                          description: List of objects depended by this object. If ALL
   774                            objects in the list have been deleted, this object will
   775                            be garbage collected. If this object is managed by a controller,
   776                            then an entry in this list will point to this controller,
   777                            with the controller field set to true. There cannot be more
   778                            than one managing controller.
   779                          items:
   780                            description: OwnerReference contains enough information
   781                              to let you identify an owning object. An owning object
   782                              must be in the same namespace as the dependent, or be
   783                              cluster-scoped, so there is no namespace field.
   784                            properties:
   785                              apiVersion:
   786                                description: API version of the referent.
   787                                type: string
   788                              blockOwnerDeletion:
   789                                description: If true, AND if the owner has the "foregroundDeletion"
   790                                  finalizer, then the owner cannot be deleted from the
   791                                  key-value store until this reference is removed. Defaults
   792                                  to false. To set this field, a user needs "delete"
   793                                  permission of the owner, otherwise 422 (Unprocessable
   794                                  Entity) will be returned.
   795                                type: boolean
   796                              controller:
   797                                description: If true, this reference points to the managing
   798                                  controller.
   799                                type: boolean
   800                              kind:
   801                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   802                                type: string
   803                              name:
   804                                description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   805                                type: string
   806                              uid:
   807                                description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   808                                type: string
   809                            required:
   810                            - apiVersion
   811                            - kind
   812                            - name
   813                            - uid
   814                            type: object
   815                          type: array
   816                      type: object
   817                    spec:
   818                      description: 'Specification of the desired behavior of the machine.
   819                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
   820                      properties:
   821                        bootstrap:
   822                          description: Bootstrap is a reference to a local struct which
   823                            encapsulates fields to configure the Machine’s bootstrapping
   824                            mechanism.
   825                          properties:
   826                            configRef:
   827                              description: ConfigRef is a reference to a bootstrap provider-specific
   828                                resource that holds configuration details. The reference
   829                                is optional to allow users/operators to specify Bootstrap.Data
   830                                without the need of a controller.
   831                              properties:
   832                                apiVersion:
   833                                  description: API version of the referent.
   834                                  type: string
   835                                fieldPath:
   836                                  description: 'If referring to a piece of an object
   837                                    instead of an entire object, this string should
   838                                    contain a valid JSON/Go field access statement,
   839                                    such as desiredState.manifest.containers[2]. For
   840                                    example, if the object reference is to a container
   841                                    within a pod, this would take on a value like: "spec.containers{name}"
   842                                    (where "name" refers to the name of the container
   843                                    that triggered the event) or if no container name
   844                                    is specified "spec.containers[2]" (container with
   845                                    index 2 in this pod). This syntax is chosen only
   846                                    to have some well-defined way of referencing a part
   847                                    of an object. TODO: this design is not final and
   848                                    this field is subject to change in the future.'
   849                                  type: string
   850                                kind:
   851                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   852                                  type: string
   853                                name:
   854                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   855                                  type: string
   856                                namespace:
   857                                  description: 'Namespace of the referent. More info:
   858                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   859                                  type: string
   860                                resourceVersion:
   861                                  description: 'Specific resourceVersion to which this
   862                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   863                                  type: string
   864                                uid:
   865                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   866                                  type: string
   867                              type: object
   868                            data:
   869                              description: "Data contains the bootstrap data, such as
   870                                cloud-init details scripts. If nil, the Machine should
   871                                remain in the Pending state. \n Deprecated: This field
   872                                has been deprecated in v1alpha3 and will be removed
   873                                in a future version. Switch to DataSecretName."
   874                              type: string
   875                            dataSecretName:
   876                              description: DataSecretName is the name of the secret
   877                                that stores the bootstrap data script. If nil, the Machine
   878                                should remain in the Pending state.
   879                              type: string
   880                          type: object
   881                        clusterName:
   882                          description: ClusterName is the name of the Cluster this object
   883                            belongs to.
   884                          minLength: 1
   885                          type: string
   886                        failureDomain:
   887                          description: FailureDomain is the failure domain the machine
   888                            will be created in. Must match a key in the FailureDomains
   889                            map stored on the cluster object.
   890                          type: string
   891                        infrastructureRef:
   892                          description: InfrastructureRef is a required reference to
   893                            a custom resource offered by an infrastructure provider.
   894                          properties:
   895                            apiVersion:
   896                              description: API version of the referent.
   897                              type: string
   898                            fieldPath:
   899                              description: 'If referring to a piece of an object instead
   900                                of an entire object, this string should contain a valid
   901                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
   902                                For example, if the object reference is to a container
   903                                within a pod, this would take on a value like: "spec.containers{name}"
   904                                (where "name" refers to the name of the container that
   905                                triggered the event) or if no container name is specified
   906                                "spec.containers[2]" (container with index 2 in this
   907                                pod). This syntax is chosen only to have some well-defined
   908                                way of referencing a part of an object. TODO: this design
   909                                is not final and this field is subject to change in
   910                                the future.'
   911                              type: string
   912                            kind:
   913                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   914                              type: string
   915                            name:
   916                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   917                              type: string
   918                            namespace:
   919                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   920                              type: string
   921                            resourceVersion:
   922                              description: 'Specific resourceVersion to which this reference
   923                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   924                              type: string
   925                            uid:
   926                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   927                              type: string
   928                          type: object
   929                        providerID:
   930                          description: ProviderID is the identification ID of the machine
   931                            provided by the provider. This field must match the provider
   932                            ID as seen on the node object corresponding to this machine.
   933                            This field is required by higher level consumers of cluster-api.
   934                            Example use case is cluster autoscaler with cluster-api
   935                            as provider. Clean-up logic in the autoscaler compares machines
   936                            to nodes to find out machines at provider which could not
   937                            get registered as Kubernetes nodes. With cluster-api as
   938                            a generic out-of-tree provider for autoscaler, this field
   939                            is required by autoscaler to be able to have a provider
   940                            view of the list of machines. Another list of nodes is queried
   941                            from the k8s apiserver and then a comparison is done to
   942                            find out unregistered machines and are marked for delete.
   943                            This field will be set by the actuators and consumed by
   944                            higher level entities like autoscaler that will be interfacing
   945                            with cluster-api as generic provider.
   946                          type: string
   947                        version:
   948                          description: 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: Total number of available machines (ready for at least
   967                    minReadySeconds) targeted by this deployment.
   968                  format: int32
   969                  type: integer
   970                observedGeneration:
   971                  description: The generation observed by the deployment controller.
   972                  format: int64
   973                  type: integer
   974                phase:
   975                  description: Phase represents the current phase of a MachineDeployment
   976                    (ScalingUp, ScalingDown, Running, Failed, or Unknown).
   977                  type: string
   978                readyReplicas:
   979                  description: Total number of ready machines targeted by this deployment.
   980                  format: int32
   981                  type: integer
   982                replicas:
   983                  description: Total number of non-terminated machines targeted by this
   984                    deployment (their labels match the selector).
   985                  format: int32
   986                  type: integer
   987                selector:
   988                  description: 'Selector is the same as the label selector but in the
   989                    string format to avoid introspection by clients. The string will
   990                    be in the same format as the query-param syntax. More info about
   991                    label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors'
   992                  type: string
   993                unavailableReplicas:
   994                  description: Total number of unavailable machines targeted by this
   995                    deployment. This is the total number of machines that are still
   996                    required for the deployment to have 100% available capacity. They
   997                    may either be machines that are running but not yet available or
   998                    machines that still have not been created.
   999                  format: int32
  1000                  type: integer
  1001                updatedReplicas:
  1002                  description: Total number of non-terminated machines targeted by this
  1003                    deployment that have the desired template spec.
  1004                  format: int32
  1005                  type: integer
  1006              type: object
  1007          type: object
  1008      served: true
  1009      storage: true
  1010      subresources:
  1011        scale:
  1012          labelSelectorPath: .status.selector
  1013          specReplicasPath: .spec.replicas
  1014          statusReplicasPath: .status.replicas
  1015        status: {}
  1016  status:
  1017    acceptedNames:
  1018      kind: ""
  1019      plural: ""
  1020    conditions: []
  1021    storedVersions: []