sigs.k8s.io/cluster-api/bootstrap/kubeadm@v0.0.0-20191016155141-23a891785b60/config-capi/crds/cluster.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.k8s.io
     8  spec:
     9    group: cluster.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    validation:
    22      openAPIV3Schema:
    23        description: / [MachineDeployment] MachineDeployment is the Schema for the machinedeployments
    24          API
    25        properties:
    26          apiVersion:
    27            description: 'APIVersion defines the versioned schema of this representation
    28              of an object. Servers should convert recognized schemas to the latest
    29              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
    30            type: string
    31          kind:
    32            description: 'Kind is a string value representing the REST resource this
    33              object represents. Servers may infer this from the endpoint the client
    34              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
    35            type: string
    36          metadata:
    37            type: object
    38          spec:
    39            description: / [MachineDeploymentSpec] MachineDeploymentSpec defines the
    40              desired state of MachineDeployment
    41            properties:
    42              minReadySeconds:
    43                description: Minimum number of seconds for which a newly created machine
    44                  should be ready. Defaults to 0 (machine will be considered available
    45                  as soon as it is ready)
    46                format: int32
    47                type: integer
    48              paused:
    49                description: Indicates that the deployment is paused.
    50                type: boolean
    51              progressDeadlineSeconds:
    52                description: The maximum time in seconds for a deployment to make progress
    53                  before it is considered to be failed. The deployment controller will
    54                  continue to process failed deployments and a condition with a ProgressDeadlineExceeded
    55                  reason will be surfaced in the deployment status. Note that progress
    56                  will not be estimated during the time a deployment is paused. Defaults
    57                  to 600s.
    58                format: int32
    59                type: integer
    60              replicas:
    61                description: Number of desired machines. Defaults to 1. This is a pointer
    62                  to distinguish between explicit zero and not specified.
    63                format: int32
    64                type: integer
    65              revisionHistoryLimit:
    66                description: The number of old MachineSets to retain to allow rollback.
    67                  This is a pointer to distinguish between explicit zero and not specified.
    68                  Defaults to 1.
    69                format: int32
    70                type: integer
    71              selector:
    72                description: Label selector for machines. Existing MachineSets whose
    73                  machines are selected by this will be the ones affected by this deployment.
    74                  It must match the machine template's labels.
    75                properties:
    76                  matchExpressions:
    77                    description: matchExpressions is a list of label selector requirements.
    78                      The requirements are ANDed.
    79                    items:
    80                      description: A label selector requirement is a selector that contains
    81                        values, a key, and an operator that relates the key and values.
    82                      properties:
    83                        key:
    84                          description: key is the label key that the selector applies
    85                            to.
    86                          type: string
    87                        operator:
    88                          description: operator represents a key's relationship to a
    89                            set of values. Valid operators are In, NotIn, Exists and
    90                            DoesNotExist.
    91                          type: string
    92                        values:
    93                          description: values is an array of string values. If the operator
    94                            is In or NotIn, the values array must be non-empty. If the
    95                            operator is Exists or DoesNotExist, the values array must
    96                            be empty. This array is replaced during a strategic merge
    97                            patch.
    98                          items:
    99                            type: string
   100                          type: array
   101                      required:
   102                      - key
   103                      - operator
   104                      type: object
   105                    type: array
   106                  matchLabels:
   107                    additionalProperties:
   108                      type: string
   109                    description: matchLabels is a map of {key,value} pairs. A single
   110                      {key,value} in the matchLabels map is equivalent to an element
   111                      of matchExpressions, whose key field is "key", the operator is
   112                      "In", and the values array contains only "value". The requirements
   113                      are ANDed.
   114                    type: object
   115                type: object
   116              strategy:
   117                description: The deployment strategy to use to replace existing machines
   118                  with new ones.
   119                properties:
   120                  rollingUpdate:
   121                    description: Rolling update config params. Present only if MachineDeploymentStrategyType
   122                      = RollingUpdate.
   123                    properties:
   124                      maxSurge:
   125                        anyOf:
   126                        - type: string
   127                        - type: integer
   128                        description: 'The maximum number of machines that can be scheduled
   129                          above the desired number of machines. Value can be an absolute
   130                          number (ex: 5) or a percentage of desired machines (ex: 10%).
   131                          This can not be 0 if MaxUnavailable is 0. Absolute number
   132                          is calculated from percentage by rounding up. Defaults to
   133                          1. Example: when this is set to 30%, the new MachineSet can
   134                          be scaled up immediately when the rolling update starts, such
   135                          that the total number of old and new machines do not exceed
   136                          130% of desired machines. Once old machines have been killed,
   137                          new MachineSet can be scaled up further, ensuring that total
   138                          number of machines running at any time during the update is
   139                          at most 130% of desired machines.'
   140                      maxUnavailable:
   141                        anyOf:
   142                        - type: string
   143                        - type: integer
   144                        description: 'The maximum number of machines that can be unavailable
   145                          during the update. Value can be an absolute number (ex: 5)
   146                          or a percentage of desired machines (ex: 10%). Absolute number
   147                          is calculated from percentage by rounding down. This can not
   148                          be 0 if MaxSurge is 0. Defaults to 0. Example: when this is
   149                          set to 30%, the old MachineSet can be scaled down to 70% of
   150                          desired machines immediately when the rolling update starts.
   151                          Once new machines are ready, old MachineSet can be scaled
   152                          down further, followed by scaling up the new MachineSet, ensuring
   153                          that the total number of machines available at all times during
   154                          the update is at least 70% of desired machines.'
   155                    type: object
   156                  type:
   157                    description: Type of deployment. Currently the only supported strategy
   158                      is "RollingUpdate". Default is RollingUpdate.
   159                    type: string
   160                type: object
   161              template:
   162                description: Template describes the machines that will be created.
   163                properties:
   164                  metadata:
   165                    description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
   166                    properties:
   167                      annotations:
   168                        additionalProperties:
   169                          type: string
   170                        description: 'Annotations is an unstructured key value map stored
   171                          with a resource that may be set by external tools to store
   172                          and retrieve arbitrary metadata. They are not queryable and
   173                          should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
   174                        type: object
   175                      generateName:
   176                        description: "GenerateName is an optional prefix, used by the
   177                          server, to generate a unique name ONLY IF the Name field has
   178                          not been provided. If this field is used, the name returned
   179                          to the client will be different than the name passed. This
   180                          value will also be combined with a unique suffix. The provided
   181                          value has the same validation rules as the Name field, and
   182                          may be truncated by the length of the suffix required to make
   183                          the value unique on the server. \n If this field is specified
   184                          and the generated name exists, the server will NOT return
   185                          a 409 - instead, it will either return 201 Created or 500
   186                          with Reason ServerTimeout indicating a unique name could not
   187                          be found in the time allotted, and the client should retry
   188                          (optionally after the time indicated in the Retry-After header).
   189                          \n Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
   190                        type: string
   191                      labels:
   192                        additionalProperties:
   193                          type: string
   194                        description: 'Map of string keys and values that can be used
   195                          to organize and categorize (scope and select) objects. May
   196                          match selectors of replication controllers and services. More
   197                          info: http://kubernetes.io/docs/user-guide/labels'
   198                        type: object
   199                      name:
   200                        description: 'Name must be unique within a namespace. Is required
   201                          when creating resources, although some resources may allow
   202                          a client to request the generation of an appropriate name
   203                          automatically. Name is primarily intended for creation idempotence
   204                          and configuration definition. Cannot be updated. More info:
   205                          http://kubernetes.io/docs/user-guide/identifiers#names'
   206                        type: string
   207                      namespace:
   208                        description: "Namespace defines the space within each name must
   209                          be unique. An empty namespace is equivalent to the \"default\"
   210                          namespace, but \"default\" is the canonical representation.
   211                          Not all objects are required to be scoped to a namespace -
   212                          the value of this field for those objects will be empty. \n
   213                          Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
   214                        type: string
   215                      ownerReferences:
   216                        description: List of objects depended by this object. If ALL
   217                          objects in the list have been deleted, this object will be
   218                          garbage collected. If this object is managed by a controller,
   219                          then an entry in this list will point to this controller,
   220                          with the controller field set to true. There cannot be more
   221                          than one managing controller.
   222                        items:
   223                          description: OwnerReference contains enough information to
   224                            let you identify an owning object. An owning object must
   225                            be in the same namespace as the dependent, or be cluster-scoped,
   226                            so there is no namespace field.
   227                          properties:
   228                            apiVersion:
   229                              description: API version of the referent.
   230                              type: string
   231                            blockOwnerDeletion:
   232                              description: If true, AND if the owner has the "foregroundDeletion"
   233                                finalizer, then the owner cannot be deleted from the
   234                                key-value store until this reference is removed. Defaults
   235                                to false. To set this field, a user needs "delete" permission
   236                                of the owner, otherwise 422 (Unprocessable Entity) will
   237                                be returned.
   238                              type: boolean
   239                            controller:
   240                              description: If true, this reference points to the managing
   241                                controller.
   242                              type: boolean
   243                            kind:
   244                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   245                              type: string
   246                            name:
   247                              description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   248                              type: string
   249                            uid:
   250                              description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   251                              type: string
   252                          required:
   253                          - apiVersion
   254                          - kind
   255                          - name
   256                          - uid
   257                          type: object
   258                        type: array
   259                    type: object
   260                  spec:
   261                    description: 'Specification of the desired behavior of the machine.
   262                      More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status'
   263                    properties:
   264                      configSource:
   265                        description: ConfigSource is used to populate in the associated
   266                          Node for dynamic kubelet config. This field already exists
   267                          in Node, so any updates to it in the Machine spec will be
   268                          automatically copied to the linked NodeRef from the status.
   269                          The rest of dynamic kubelet config support should then work
   270                          as-is.
   271                        properties:
   272                          configMap:
   273                            description: ConfigMap is a reference to a Node's ConfigMap
   274                            properties:
   275                              kubeletConfigKey:
   276                                description: KubeletConfigKey declares which key of
   277                                  the referenced ConfigMap corresponds to the KubeletConfiguration
   278                                  structure This field is required in all cases.
   279                                type: string
   280                              name:
   281                                description: Name is the metadata.name of the referenced
   282                                  ConfigMap. This field is required in all cases.
   283                                type: string
   284                              namespace:
   285                                description: Namespace is the metadata.namespace of
   286                                  the referenced ConfigMap. This field is required in
   287                                  all cases.
   288                                type: string
   289                              resourceVersion:
   290                                description: ResourceVersion is the metadata.ResourceVersion
   291                                  of the referenced ConfigMap. This field is forbidden
   292                                  in Node.Spec, and required in Node.Status.
   293                                type: string
   294                              uid:
   295                                description: UID is the metadata.UID of the referenced
   296                                  ConfigMap. This field is forbidden in Node.Spec, and
   297                                  required in Node.Status.
   298                                type: string
   299                            required:
   300                            - kubeletConfigKey
   301                            - name
   302                            - namespace
   303                            type: object
   304                        type: object
   305                      metadata:
   306                        description: ObjectMeta will autopopulate the Node created.
   307                          Use this to indicate what labels, annotations, name prefix,
   308                          etc., should be used when creating the Node.
   309                        properties:
   310                          annotations:
   311                            additionalProperties:
   312                              type: string
   313                            description: 'Annotations is an unstructured key value map
   314                              stored with a resource that may be set by external tools
   315                              to store and retrieve arbitrary metadata. They are not
   316                              queryable and should be preserved when modifying objects.
   317                              More info: http://kubernetes.io/docs/user-guide/annotations'
   318                            type: object
   319                          generateName:
   320                            description: "GenerateName is an optional prefix, used by
   321                              the server, to generate a unique name ONLY IF the Name
   322                              field has not been provided. If this field is used, the
   323                              name returned to the client will be different than the
   324                              name passed. This value will also be combined with a unique
   325                              suffix. The provided value has the same validation rules
   326                              as the Name field, and may be truncated by the length
   327                              of the suffix required to make the value unique on the
   328                              server. \n If this field is specified and the generated
   329                              name exists, the server will NOT return a 409 - instead,
   330                              it will either return 201 Created or 500 with Reason ServerTimeout
   331                              indicating a unique name could not be found in the time
   332                              allotted, and the client should retry (optionally after
   333                              the time indicated in the Retry-After header). \n Applied
   334                              only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
   335                            type: string
   336                          labels:
   337                            additionalProperties:
   338                              type: string
   339                            description: 'Map of string keys and values that can be
   340                              used to organize and categorize (scope and select) objects.
   341                              May match selectors of replication controllers and services.
   342                              More info: http://kubernetes.io/docs/user-guide/labels'
   343                            type: object
   344                          name:
   345                            description: 'Name must be unique within a namespace. Is
   346                              required when creating resources, although some resources
   347                              may allow a client to request the generation of an appropriate
   348                              name automatically. Name is primarily intended for creation
   349                              idempotence and configuration definition. Cannot be updated.
   350                              More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   351                            type: string
   352                          namespace:
   353                            description: "Namespace defines the space within each name
   354                              must be unique. An empty namespace is equivalent to the
   355                              \"default\" namespace, but \"default\" is the canonical
   356                              representation. Not all objects are required to be scoped
   357                              to a namespace - the value of this field for those objects
   358                              will be empty. \n Must be a DNS_LABEL. Cannot be updated.
   359                              More info: http://kubernetes.io/docs/user-guide/namespaces"
   360                            type: string
   361                          ownerReferences:
   362                            description: List of objects depended by this object. If
   363                              ALL objects in the list have been deleted, this object
   364                              will be garbage collected. If this object is managed by
   365                              a controller, then an entry in this list will point to
   366                              this controller, with the controller field set to true.
   367                              There cannot be more than one managing controller.
   368                            items:
   369                              description: OwnerReference contains enough information
   370                                to let you identify an owning object. An owning object
   371                                must be in the same namespace as the dependent, or be
   372                                cluster-scoped, so there is no namespace field.
   373                              properties:
   374                                apiVersion:
   375                                  description: API version of the referent.
   376                                  type: string
   377                                blockOwnerDeletion:
   378                                  description: If true, AND if the owner has the "foregroundDeletion"
   379                                    finalizer, then the owner cannot be deleted from
   380                                    the key-value store until this reference is removed.
   381                                    Defaults to false. To set this field, a user needs
   382                                    "delete" permission of the owner, otherwise 422
   383                                    (Unprocessable Entity) will be returned.
   384                                  type: boolean
   385                                controller:
   386                                  description: If true, this reference points to the
   387                                    managing controller.
   388                                  type: boolean
   389                                kind:
   390                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   391                                  type: string
   392                                name:
   393                                  description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   394                                  type: string
   395                                uid:
   396                                  description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   397                                  type: string
   398                              required:
   399                              - apiVersion
   400                              - kind
   401                              - name
   402                              - uid
   403                              type: object
   404                            type: array
   405                        type: object
   406                      providerID:
   407                        description: ProviderID is the identification ID of the machine
   408                          provided by the provider. This field must match the provider
   409                          ID as seen on the node object corresponding to this machine.
   410                          This field is required by higher level consumers of cluster-api.
   411                          Example use case is cluster autoscaler with cluster-api as
   412                          provider. Clean-up logic in the autoscaler compares machines
   413                          to nodes to find out machines at provider which could not
   414                          get registered as Kubernetes nodes. With cluster-api as a
   415                          generic out-of-tree provider for autoscaler, this field is
   416                          required by autoscaler to be able to have a provider view
   417                          of the list of machines. Another list of nodes is queried
   418                          from the k8s apiserver and then a comparison is done to find
   419                          out unregistered machines and are marked for delete. This
   420                          field will be set by the actuators and consumed by higher
   421                          level entities like autoscaler that will be interfacing with
   422                          cluster-api as generic provider.
   423                        type: string
   424                      providerSpec:
   425                        description: ProviderSpec details Provider-specific configuration
   426                          to use during node creation.
   427                        properties:
   428                          value:
   429                            description: Value is an inlined, serialized representation
   430                              of the resource configuration. It is recommended that
   431                              providers maintain their own versioned API types that
   432                              should be serialized/deserialized from this field, akin
   433                              to component config.
   434                            type: object
   435                          valueFrom:
   436                            description: Source for the provider configuration. Cannot
   437                              be used if value is not empty.
   438                            properties:
   439                              machineClass:
   440                                description: The machine class from which the provider
   441                                  config should be sourced.
   442                                properties:
   443                                  apiVersion:
   444                                    description: API version of the referent.
   445                                    type: string
   446                                  fieldPath:
   447                                    description: 'If referring to a piece of an object
   448                                      instead of an entire object, this string should
   449                                      contain a valid JSON/Go field access statement,
   450                                      such as desiredState.manifest.containers[2]. For
   451                                      example, if the object reference is to a container
   452                                      within a pod, this would take on a value like:
   453                                      "spec.containers{name}" (where "name" refers to
   454                                      the name of the container that triggered the event)
   455                                      or if no container name is specified "spec.containers[2]"
   456                                      (container with index 2 in this pod). This syntax
   457                                      is chosen only to have some well-defined way of
   458                                      referencing a part of an object. TODO: this design
   459                                      is not final and this field is subject to change
   460                                      in the future.'
   461                                    type: string
   462                                  kind:
   463                                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   464                                    type: string
   465                                  name:
   466                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   467                                    type: string
   468                                  namespace:
   469                                    description: 'Namespace of the referent. More info:
   470                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   471                                    type: string
   472                                  provider:
   473                                    description: Provider is the name of the cloud-provider
   474                                      which MachineClass is intended for.
   475                                    type: string
   476                                  resourceVersion:
   477                                    description: 'Specific resourceVersion to which
   478                                      this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
   479                                    type: string
   480                                  uid:
   481                                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   482                                    type: string
   483                                type: object
   484                            type: object
   485                        type: object
   486                      taints:
   487                        description: The list of the taints to be applied to the corresponding
   488                          Node in additive manner. This list will not overwrite any
   489                          other taints added to the Node on an ongoing basis by other
   490                          entities. These taints should be actively reconciled e.g.
   491                          if you ask the machine controller to apply a taint and then
   492                          manually remove the taint the machine controller will put
   493                          it back) but not have the machine controller remove any taints
   494                        items:
   495                          description: The node this Taint is attached to has the "effect"
   496                            on any pod that does not tolerate the Taint.
   497                          properties:
   498                            effect:
   499                              description: Required. The effect of the taint on pods
   500                                that do not tolerate the taint. Valid effects are NoSchedule,
   501                                PreferNoSchedule and NoExecute.
   502                              type: string
   503                            key:
   504                              description: Required. The taint key to be applied to
   505                                a node.
   506                              type: string
   507                            timeAdded:
   508                              description: TimeAdded represents the time at which the
   509                                taint was added. It is only written for NoExecute taints.
   510                              format: date-time
   511                              type: string
   512                            value:
   513                              description: Required. The taint value corresponding to
   514                                the taint key.
   515                              type: string
   516                          required:
   517                          - effect
   518                          - key
   519                          type: object
   520                        type: array
   521                      versions:
   522                        description: Versions of key software to use. This field is
   523                          optional at cluster creation time, and omitting the field
   524                          indicates that the cluster installation tool should select
   525                          defaults for the user. These defaults may differ based on
   526                          the cluster installer, but the tool should populate the values
   527                          it uses when persisting Machine objects. A Machine spec missing
   528                          this field at runtime is invalid.
   529                        properties:
   530                          controlPlane:
   531                            description: ControlPlane is the semantic version of the
   532                              Kubernetes control plane to run. This should only be populated
   533                              when the machine is a control plane.
   534                            type: string
   535                          kubelet:
   536                            description: Kubelet is the semantic version of kubelet
   537                              to run
   538                            type: string
   539                        required:
   540                        - kubelet
   541                        type: object
   542                    type: object
   543                type: object
   544            required:
   545            - selector
   546            - template
   547            type: object
   548          status:
   549            description: / [MachineDeploymentStatus] MachineDeploymentStatus defines
   550              the observed state of MachineDeployment
   551            properties:
   552              availableReplicas:
   553                description: Total number of available machines (ready for at least
   554                  minReadySeconds) targeted by this deployment.
   555                format: int32
   556                type: integer
   557              observedGeneration:
   558                description: The generation observed by the deployment controller.
   559                format: int64
   560                type: integer
   561              readyReplicas:
   562                description: Total number of ready machines targeted by this deployment.
   563                format: int32
   564                type: integer
   565              replicas:
   566                description: Total number of non-terminated machines targeted by this
   567                  deployment (their labels match the selector).
   568                format: int32
   569                type: integer
   570              unavailableReplicas:
   571                description: Total number of unavailable machines targeted by this deployment.
   572                  This is the total number of machines that are still required for the
   573                  deployment to have 100% available capacity. They may either be machines
   574                  that are running but not yet available or machines that still have
   575                  not been created.
   576                format: int32
   577                type: integer
   578              updatedReplicas:
   579                description: Total number of non-terminated machines targeted by this
   580                  deployment that have the desired template spec.
   581                format: int32
   582                type: integer
   583            type: object
   584        type: object
   585    version: v1alpha1
   586    versions:
   587    - name: v1alpha1
   588      served: true
   589      storage: true
   590  status:
   591    acceptedNames:
   592      kind: ""
   593      plural: ""
   594    conditions: []
   595    storedVersions: []