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

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