sigs.k8s.io/cluster-api/bootstrap/kubeadm@v0.0.0-20191016155141-23a891785b60/config-capi/crds/cluster.x-k8s.io_machinedeployments.yaml (about)

     1  
     2  ---
     3  apiVersion: apiextensions.k8s.io/v1beta1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    creationTimestamp: null
     7    name: machinedeployments.cluster.x-k8s.io
     8  spec:
     9    group: cluster.x-k8s.io
    10    names:
    11      kind: MachineDeployment
    12      plural: machinedeployments
    13      shortNames:
    14      - md
    15    scope: Namespaced
    16    subresources:
    17      scale:
    18        labelSelectorPath: .status.labelSelector
    19        specReplicasPath: .spec.replicas
    20        statusReplicasPath: .status.replicas
    21      status: {}
    22    validation:
    23      openAPIV3Schema:
    24        description: / [MachineDeployment] MachineDeployment is the Schema for the machinedeployments
    25          API
    26        properties:
    27          apiVersion:
    28            description: 'APIVersion defines the versioned schema of this representation
    29              of an object. Servers should convert recognized schemas to the latest
    30              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
    31            type: string
    32          kind:
    33            description: 'Kind is a string value representing the REST resource this
    34              object represents. Servers may infer this from the endpoint the client
    35              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
    36            type: string
    37          metadata:
    38            type: object
    39          spec:
    40            description: / [MachineDeploymentSpec] MachineDeploymentSpec defines the
    41              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 progress
    54                  before it is considered to be failed. The deployment controller will
    55                  continue to process failed deployments and a condition with a ProgressDeadlineExceeded
    56                  reason will be surfaced in the deployment status. Note that progress
    57                  will not be estimated during the time a deployment is paused. Defaults
    58                  to 600s.
    59                format: int32
    60                type: integer
    61              replicas:
    62                description: Number of desired machines. Defaults to 1. This is a pointer
    63                  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 deployment.
    75                  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 contains
    82                        values, a key, and an operator that relates the key and values.
    83                      properties:
    84                        key:
    85                          description: key is the label key that the selector applies
    86                            to.
    87                          type: string
    88                        operator:
    89                          description: operator represents a key's relationship to a
    90                            set of values. Valid operators are In, NotIn, Exists and
    91                            DoesNotExist.
    92                          type: string
    93                        values:
    94                          description: values is an array of string values. If the operator
    95                            is In or NotIn, the values array must be non-empty. If the
    96                            operator is Exists or DoesNotExist, the values array must
    97                            be empty. This array is replaced during a strategic merge
    98                            patch.
    99                          items:
   100                            type: string
   101                          type: array
   102                      required:
   103                      - key
   104                      - operator
   105                      type: object
   106                    type: array
   107                  matchLabels:
   108                    additionalProperties:
   109                      type: string
   110                    description: matchLabels is a map of {key,value} pairs. A single
   111                      {key,value} in the matchLabels map is equivalent to an element
   112                      of matchExpressions, whose key field is "key", the operator is
   113                      "In", and the values array contains only "value". The requirements
   114                      are ANDed.
   115                    type: object
   116                type: object
   117              strategy:
   118                description: The deployment strategy to use to replace existing machines
   119                  with new ones.
   120                properties:
   121                  rollingUpdate:
   122                    description: Rolling update config params. Present only if MachineDeploymentStrategyType
   123                      = RollingUpdate.
   124                    properties:
   125                      maxSurge:
   126                        anyOf:
   127                        - type: string
   128                        - type: integer
   129                        description: 'The maximum number of machines that can be scheduled
   130                          above the desired number of machines. Value can be an absolute
   131                          number (ex: 5) or a percentage of desired machines (ex: 10%).
   132                          This can not be 0 if MaxUnavailable is 0. Absolute number
   133                          is calculated from percentage by rounding up. Defaults to
   134                          1. Example: when this is set to 30%, the new MachineSet can
   135                          be scaled up immediately when the rolling update starts, such
   136                          that the total number of old and new machines do not exceed
   137                          130% of desired machines. Once old machines have been killed,
   138                          new MachineSet can be scaled up further, ensuring that total
   139                          number of machines running at any time during the update is
   140                          at most 130% of desired machines.'
   141                      maxUnavailable:
   142                        anyOf:
   143                        - type: string
   144                        - type: integer
   145                        description: 'The maximum number of machines that can be unavailable
   146                          during the update. Value can be an absolute number (ex: 5)
   147                          or a percentage of desired machines (ex: 10%). Absolute number
   148                          is calculated from percentage by rounding down. This can not
   149                          be 0 if MaxSurge is 0. Defaults to 0. Example: when this is
   150                          set to 30%, the old MachineSet can be scaled down to 70% of
   151                          desired machines immediately when the rolling update starts.
   152                          Once new machines are ready, old MachineSet can be scaled
   153                          down further, followed by scaling up the new MachineSet, ensuring
   154                          that the total number of machines available at all times during
   155                          the update is at least 70% of desired machines.'
   156                    type: object
   157                  type:
   158                    description: Type of deployment. Currently the only supported strategy
   159                      is "RollingUpdate". Default is RollingUpdate.
   160                    type: string
   161                type: object
   162              template:
   163                description: Template describes the machines that will be created.
   164                properties:
   165                  metadata:
   166                    description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
   167                    properties:
   168                      annotations:
   169                        additionalProperties:
   170                          type: string
   171                        description: 'Annotations is an unstructured key value map stored
   172                          with a resource that may be set by external tools to store
   173                          and retrieve arbitrary metadata. They are not queryable and
   174                          should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
   175                        type: object
   176                      generateName:
   177                        description: "GenerateName is an optional prefix, used by the
   178                          server, to generate a unique name ONLY IF the Name field has
   179                          not been provided. If this field is used, the name returned
   180                          to the client will be different than the name passed. This
   181                          value will also be combined with a unique suffix. The provided
   182                          value has the same validation rules as the Name field, and
   183                          may be truncated by the length of the suffix required to make
   184                          the value unique on the server. \n If this field is specified
   185                          and the generated name exists, the server will NOT return
   186                          a 409 - instead, it will either return 201 Created or 500
   187                          with Reason ServerTimeout indicating a unique name could not
   188                          be found in the time allotted, and the client should retry
   189                          (optionally after the time indicated in the Retry-After header).
   190                          \n Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
   191                        type: string
   192                      labels:
   193                        additionalProperties:
   194                          type: string
   195                        description: 'Map of string keys and values that can be used
   196                          to organize and categorize (scope and select) objects. May
   197                          match selectors of replication controllers and services. More
   198                          info: http://kubernetes.io/docs/user-guide/labels'
   199                        type: object
   200                      name:
   201                        description: 'Name must be unique within a namespace. Is required
   202                          when creating resources, although some resources may allow
   203                          a client to request the generation of an appropriate name
   204                          automatically. Name is primarily intended for creation idempotence
   205                          and configuration definition. Cannot be updated. More info:
   206                          http://kubernetes.io/docs/user-guide/identifiers#names'
   207                        type: string
   208                      namespace:
   209                        description: "Namespace defines the space within each name must
   210                          be unique. An empty namespace is equivalent to the \"default\"
   211                          namespace, but \"default\" is the canonical representation.
   212                          Not all objects are required to be scoped to a namespace -
   213                          the value of this field for those objects will be empty. \n
   214                          Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
   215                        type: string
   216                      ownerReferences:
   217                        description: List of objects depended by this object. If ALL
   218                          objects in the list have been deleted, this object will be
   219                          garbage collected. If this object is managed by a controller,
   220                          then an entry in this list will point to this controller,
   221                          with the controller field set to true. There cannot be more
   222                          than one managing controller.
   223                        items:
   224                          description: OwnerReference contains enough information to
   225                            let you identify an owning object. An owning object must
   226                            be in the same namespace as the dependent, or be cluster-scoped,
   227                            so there is no namespace field.
   228                          properties:
   229                            apiVersion:
   230                              description: API version of the referent.
   231                              type: string
   232                            blockOwnerDeletion:
   233                              description: If true, AND if the owner has the "foregroundDeletion"
   234                                finalizer, then the owner cannot be deleted from the
   235                                key-value store until this reference is removed. Defaults
   236                                to false. To set this field, a user needs "delete" permission
   237                                of the owner, otherwise 422 (Unprocessable Entity) will
   238                                be returned.
   239                              type: boolean
   240                            controller:
   241                              description: If true, this reference points to the managing
   242                                controller.
   243                              type: boolean
   244                            kind:
   245                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   246                              type: string
   247                            name:
   248                              description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   249                              type: string
   250                            uid:
   251                              description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   252                              type: string
   253                          required:
   254                          - apiVersion
   255                          - kind
   256                          - name
   257                          - uid
   258                          type: object
   259                        type: array
   260                    type: object
   261                  spec:
   262                    description: 'Specification of the desired behavior of the machine.
   263                      More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status'
   264                    properties:
   265                      bootstrap:
   266                        description: Bootstrap is a reference to a local struct which
   267                          encapsulates fields to configure the Machine’s bootstrapping
   268                          mechanism.
   269                        properties:
   270                          configRef:
   271                            description: ConfigRef is a reference to a bootstrap provider-specific
   272                              resource that holds configuration details. The reference
   273                              is optional to allow users/operators to specify Bootstrap.Data
   274                              without the need of a controller.
   275                            properties:
   276                              apiVersion:
   277                                description: API version of the referent.
   278                                type: string
   279                              fieldPath:
   280                                description: 'If referring to a piece of an object instead
   281                                  of an entire object, this string should contain a
   282                                  valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   283                                  For example, if the object reference is to a container
   284                                  within a pod, this would take on a value like: "spec.containers{name}"
   285                                  (where "name" refers to the name of the container
   286                                  that triggered the event) or if no container name
   287                                  is specified "spec.containers[2]" (container with
   288                                  index 2 in this pod). This syntax is chosen only to
   289                                  have some well-defined way of referencing a part of
   290                                  an object. TODO: this design is not final and this
   291                                  field is subject to change in the future.'
   292                                type: string
   293                              kind:
   294                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   295                                type: string
   296                              name:
   297                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   298                                type: string
   299                              namespace:
   300                                description: 'Namespace of the referent. More info:
   301                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   302                                type: string
   303                              resourceVersion:
   304                                description: 'Specific resourceVersion to which this
   305                                  reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
   306                                type: string
   307                              uid:
   308                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   309                                type: string
   310                            type: object
   311                          data:
   312                            description: Data contains the bootstrap data, such as cloud-init
   313                              details scripts. If nil, the Machine should remain in
   314                              the Pending state.
   315                            type: string
   316                        type: object
   317                      infrastructureRef:
   318                        description: InfrastructureRef is a required reference to a
   319                          custom resource offered by an infrastructure provider.
   320                        properties:
   321                          apiVersion:
   322                            description: API version of the referent.
   323                            type: string
   324                          fieldPath:
   325                            description: 'If referring to a piece of an object instead
   326                              of an entire object, this string should contain a valid
   327                              JSON/Go field access statement, such as desiredState.manifest.containers[2].
   328                              For example, if the object reference is to a container
   329                              within a pod, this would take on a value like: "spec.containers{name}"
   330                              (where "name" refers to the name of the container that
   331                              triggered the event) or if no container name is specified
   332                              "spec.containers[2]" (container with index 2 in this pod).
   333                              This syntax is chosen only to have some well-defined way
   334                              of referencing a part of an object. TODO: this design
   335                              is not final and this field is subject to change in the
   336                              future.'
   337                            type: string
   338                          kind:
   339                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   340                            type: string
   341                          name:
   342                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   343                            type: string
   344                          namespace:
   345                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   346                            type: string
   347                          resourceVersion:
   348                            description: 'Specific resourceVersion to which this reference
   349                              is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
   350                            type: string
   351                          uid:
   352                            description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   353                            type: string
   354                        type: object
   355                      metadata:
   356                        description: ObjectMeta will autopopulate the Node created.
   357                          Use this to indicate what labels, annotations, name prefix,
   358                          etc., should be used when creating the Node.
   359                        properties:
   360                          annotations:
   361                            additionalProperties:
   362                              type: string
   363                            description: 'Annotations is an unstructured key value map
   364                              stored with a resource that may be set by external tools
   365                              to store and retrieve arbitrary metadata. They are not
   366                              queryable and should be preserved when modifying objects.
   367                              More info: http://kubernetes.io/docs/user-guide/annotations'
   368                            type: object
   369                          generateName:
   370                            description: "GenerateName is an optional prefix, used by
   371                              the server, to generate a unique name ONLY IF the Name
   372                              field has not been provided. If this field is used, the
   373                              name returned to the client will be different than the
   374                              name passed. This value will also be combined with a unique
   375                              suffix. The provided value has the same validation rules
   376                              as the Name field, and may be truncated by the length
   377                              of the suffix required to make the value unique on the
   378                              server. \n If this field is specified and the generated
   379                              name exists, the server will NOT return a 409 - instead,
   380                              it will either return 201 Created or 500 with Reason ServerTimeout
   381                              indicating a unique name could not be found in the time
   382                              allotted, and the client should retry (optionally after
   383                              the time indicated in the Retry-After header). \n Applied
   384                              only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
   385                            type: string
   386                          labels:
   387                            additionalProperties:
   388                              type: string
   389                            description: 'Map of string keys and values that can be
   390                              used to organize and categorize (scope and select) objects.
   391                              May match selectors of replication controllers and services.
   392                              More info: http://kubernetes.io/docs/user-guide/labels'
   393                            type: object
   394                          name:
   395                            description: 'Name must be unique within a namespace. Is
   396                              required when creating resources, although some resources
   397                              may allow a client to request the generation of an appropriate
   398                              name automatically. Name is primarily intended for creation
   399                              idempotence and configuration definition. Cannot be updated.
   400                              More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   401                            type: string
   402                          namespace:
   403                            description: "Namespace defines the space within each name
   404                              must be unique. An empty namespace is equivalent to the
   405                              \"default\" namespace, but \"default\" is the canonical
   406                              representation. Not all objects are required to be scoped
   407                              to a namespace - the value of this field for those objects
   408                              will be empty. \n Must be a DNS_LABEL. Cannot be updated.
   409                              More info: http://kubernetes.io/docs/user-guide/namespaces"
   410                            type: string
   411                          ownerReferences:
   412                            description: List of objects depended by this object. If
   413                              ALL objects in the list have been deleted, this object
   414                              will be garbage collected. If this object is managed by
   415                              a controller, then an entry in this list will point to
   416                              this controller, with the controller field set to true.
   417                              There cannot be more than one managing controller.
   418                            items:
   419                              description: OwnerReference contains enough information
   420                                to let you identify an owning object. An owning object
   421                                must be in the same namespace as the dependent, or be
   422                                cluster-scoped, so there is no namespace field.
   423                              properties:
   424                                apiVersion:
   425                                  description: API version of the referent.
   426                                  type: string
   427                                blockOwnerDeletion:
   428                                  description: If true, AND if the owner has the "foregroundDeletion"
   429                                    finalizer, then the owner cannot be deleted from
   430                                    the key-value store until this reference is removed.
   431                                    Defaults to false. To set this field, a user needs
   432                                    "delete" permission of the owner, otherwise 422
   433                                    (Unprocessable Entity) will be returned.
   434                                  type: boolean
   435                                controller:
   436                                  description: If true, this reference points to the
   437                                    managing controller.
   438                                  type: boolean
   439                                kind:
   440                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   441                                  type: string
   442                                name:
   443                                  description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   444                                  type: string
   445                                uid:
   446                                  description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   447                                  type: string
   448                              required:
   449                              - apiVersion
   450                              - kind
   451                              - name
   452                              - uid
   453                              type: object
   454                            type: array
   455                        type: object
   456                      providerID:
   457                        description: ProviderID is the identification ID of the machine
   458                          provided by the provider. This field must match the provider
   459                          ID as seen on the node object corresponding to this machine.
   460                          This field is required by higher level consumers of cluster-api.
   461                          Example use case is cluster autoscaler with cluster-api as
   462                          provider. Clean-up logic in the autoscaler compares machines
   463                          to nodes to find out machines at provider which could not
   464                          get registered as Kubernetes nodes. With cluster-api as a
   465                          generic out-of-tree provider for autoscaler, this field is
   466                          required by autoscaler to be able to have a provider view
   467                          of the list of machines. Another list of nodes is queried
   468                          from the k8s apiserver and then a comparison is done to find
   469                          out unregistered machines and are marked for delete. This
   470                          field will be set by the actuators and consumed by higher
   471                          level entities like autoscaler that will be interfacing with
   472                          cluster-api as generic provider.
   473                        type: string
   474                      version:
   475                        description: Version defines the desired Kubernetes version.
   476                          This field is meant to be optionally used by bootstrap providers.
   477                        type: string
   478                    required:
   479                    - bootstrap
   480                    - infrastructureRef
   481                    type: object
   482                type: object
   483            required:
   484            - selector
   485            - template
   486            type: object
   487          status:
   488            description: / [MachineDeploymentStatus] MachineDeploymentStatus defines
   489              the observed state of MachineDeployment
   490            properties:
   491              availableReplicas:
   492                description: Total number of available machines (ready for at least
   493                  minReadySeconds) targeted by this deployment.
   494                format: int32
   495                type: integer
   496              observedGeneration:
   497                description: The generation observed by the deployment controller.
   498                format: int64
   499                type: integer
   500              readyReplicas:
   501                description: Total number of ready machines targeted by this deployment.
   502                format: int32
   503                type: integer
   504              replicas:
   505                description: Total number of non-terminated machines targeted by this
   506                  deployment (their labels match the selector).
   507                format: int32
   508                type: integer
   509              unavailableReplicas:
   510                description: Total number of unavailable machines targeted by this deployment.
   511                  This is the total number of machines that are still required for the
   512                  deployment to have 100% available capacity. They may either be machines
   513                  that are running but not yet available or machines that still have
   514                  not been created.
   515                format: int32
   516                type: integer
   517              updatedReplicas:
   518                description: Total number of non-terminated machines targeted by this
   519                  deployment that have the desired template spec.
   520                format: int32
   521                type: integer
   522            type: object
   523        type: object
   524    versions:
   525    - name: v1alpha2
   526      served: true
   527      storage: true
   528  status:
   529    acceptedNames:
   530      kind: ""
   531      plural: ""
   532    conditions: []
   533    storedVersions: []