github.com/giantswarm/apiextensions/v6@v6.6.0/config/crd/exp.cluster.x-k8s.io_machinepools.yaml (about)

     1  
     2  ---
     3  apiVersion: apiextensions.k8s.io/v1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.2.4
     8    creationTimestamp: null
     9    name: machinepools.exp.cluster.x-k8s.io
    10  spec:
    11    group: exp.cluster.x-k8s.io
    12    names:
    13      categories:
    14      - azure
    15      - cluster-api
    16      - giantswarm
    17      kind: MachinePool
    18      listKind: MachinePoolList
    19      plural: machinepools
    20      shortNames:
    21      - mp
    22      singular: machinepool
    23    scope: Namespaced
    24    versions:
    25    - additionalPrinterColumns:
    26      - description: MachinePool replicas count
    27        jsonPath: .status.replicas
    28        name: Replicas
    29        type: string
    30      - description: MachinePool status such as Terminating/Pending/Provisioning/Running/Failed
    31          etc
    32        jsonPath: .status.phase
    33        name: Phase
    34        type: string
    35      - description: Kubernetes version associated with this MachinePool
    36        jsonPath: .spec.template.spec.version
    37        name: Version
    38        type: string
    39      name: v1alpha3
    40      schema:
    41        openAPIV3Schema:
    42          description: MachinePool is the Schema for the machinepools API
    43          properties:
    44            apiVersion:
    45              description: 'APIVersion defines the versioned schema of this representation
    46                of an object. Servers should convert recognized schemas to the latest
    47                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    48              type: string
    49            kind:
    50              description: 'Kind is a string value representing the REST resource this
    51                object represents. Servers may infer this from the endpoint the client
    52                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    53              type: string
    54            metadata:
    55              type: object
    56            spec:
    57              description: MachinePoolSpec defines the desired state of MachinePool
    58              properties:
    59                clusterName:
    60                  description: ClusterName is the name of the Cluster this object belongs
    61                    to.
    62                  minLength: 1
    63                  type: string
    64                failureDomains:
    65                  description: FailureDomains is the list of failure domains this MachinePool
    66                    should be attached to.
    67                  items:
    68                    type: string
    69                  type: array
    70                minReadySeconds:
    71                  description: Minimum number of seconds for which a newly created machine
    72                    instances should be ready. Defaults to 0 (machine instance will
    73                    be considered available as soon as it is ready)
    74                  format: int32
    75                  type: integer
    76                providerIDList:
    77                  description: ProviderIDList are the identification IDs of machine
    78                    instances provided by the provider. This field must match the provider
    79                    IDs as seen on the node objects corresponding to a machine pool's
    80                    machine instances.
    81                  items:
    82                    type: string
    83                  type: array
    84                replicas:
    85                  description: Number of desired machines. Defaults to 1. This is a
    86                    pointer to distinguish between explicit zero and not specified.
    87                  format: int32
    88                  type: integer
    89                strategy:
    90                  description: The deployment strategy to use to replace existing machine
    91                    instances with new ones.
    92                  properties:
    93                    rollingUpdate:
    94                      description: Rolling update config params. Present only if MachineDeploymentStrategyType
    95                        = RollingUpdate.
    96                      properties:
    97                        maxSurge:
    98                          anyOf:
    99                          - type: integer
   100                          - type: string
   101                          description: 'The maximum number of machines that can be scheduled
   102                            above the desired number of machines. Value can be an absolute
   103                            number (ex: 5) or a percentage of desired machines (ex:
   104                            10%). This can not be 0 if MaxUnavailable is 0. Absolute
   105                            number is calculated from percentage by rounding up. Defaults
   106                            to 1. Example: when this is set to 30%, the new MachineSet
   107                            can be scaled up immediately when the rolling update starts,
   108                            such that the total number of old and new machines do not
   109                            exceed 130% of desired machines. Once old machines have
   110                            been killed, new MachineSet can be scaled up further, ensuring
   111                            that total number of machines running at any time during
   112                            the update is at most 130% of desired machines.'
   113                          x-kubernetes-int-or-string: true
   114                        maxUnavailable:
   115                          anyOf:
   116                          - type: integer
   117                          - type: string
   118                          description: 'The maximum number of machines that can be unavailable
   119                            during the update. Value can be an absolute number (ex:
   120                            5) or a percentage of desired machines (ex: 10%). Absolute
   121                            number is calculated from percentage by rounding down. This
   122                            can not be 0 if MaxSurge is 0. Defaults to 0. Example: when
   123                            this is set to 30%, the old MachineSet can be scaled down
   124                            to 70% of desired machines immediately when the rolling
   125                            update starts. Once new machines are ready, old MachineSet
   126                            can be scaled down further, followed by scaling up the new
   127                            MachineSet, ensuring that the total number of machines available
   128                            at all times during the update is at least 70% of desired
   129                            machines.'
   130                          x-kubernetes-int-or-string: true
   131                      type: object
   132                    type:
   133                      description: Type of deployment. Currently the only supported
   134                        strategy is "RollingUpdate". Default is RollingUpdate.
   135                      type: string
   136                  type: object
   137                template:
   138                  description: Template describes the machines that will be created.
   139                  properties:
   140                    metadata:
   141                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
   142                      properties:
   143                        annotations:
   144                          additionalProperties:
   145                            type: string
   146                          description: 'Annotations is an unstructured key value map
   147                            stored with a resource that may be set by external tools
   148                            to store and retrieve arbitrary metadata. They are not queryable
   149                            and should be preserved when modifying objects. More info:
   150                            http://kubernetes.io/docs/user-guide/annotations'
   151                          type: object
   152                        generateName:
   153                          description: "GenerateName is an optional prefix, used by
   154                            the server, to generate a unique name ONLY IF the Name field
   155                            has not been provided. If this field is used, the name returned
   156                            to the client will be different than the name passed. This
   157                            value will also be combined with a unique suffix. The provided
   158                            value has the same validation rules as the Name field, and
   159                            may be truncated by the length of the suffix required to
   160                            make the value unique on the server. \n If this field is
   161                            specified and the generated name exists, the server will
   162                            NOT return a 409 - instead, it will either return 201 Created
   163                            or 500 with Reason ServerTimeout indicating a unique name
   164                            could not be found in the time allotted, and the client
   165                            should retry (optionally after the time indicated in the
   166                            Retry-After header). \n Applied only if Name is not specified.
   167                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
   168                            \n Deprecated: This field has no function and is going to
   169                            be removed in a next release."
   170                          type: string
   171                        labels:
   172                          additionalProperties:
   173                            type: string
   174                          description: 'Map of string keys and values that can be used
   175                            to organize and categorize (scope and select) objects. May
   176                            match selectors of replication controllers and services.
   177                            More info: http://kubernetes.io/docs/user-guide/labels'
   178                          type: object
   179                        name:
   180                          description: "Name must be unique within a namespace. Is required
   181                            when creating resources, although some resources may allow
   182                            a client to request the generation of an appropriate name
   183                            automatically. Name is primarily intended for creation idempotence
   184                            and configuration definition. Cannot be updated. More info:
   185                            http://kubernetes.io/docs/user-guide/identifiers#names \n
   186                            Deprecated: This field has no function and is going to be
   187                            removed in a next release."
   188                          type: string
   189                        namespace:
   190                          description: "Namespace defines the space within each name
   191                            must be unique. An empty namespace is equivalent to the
   192                            \"default\" namespace, but \"default\" is the canonical
   193                            representation. Not all objects are required to be scoped
   194                            to a namespace - the value of this field for those objects
   195                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
   196                            More info: http://kubernetes.io/docs/user-guide/namespaces
   197                            \n Deprecated: This field has no function and is going to
   198                            be removed in a next release."
   199                          type: string
   200                        ownerReferences:
   201                          description: "List of objects depended by this object. If
   202                            ALL objects in the list have been deleted, this object will
   203                            be garbage collected. If this object is managed by a controller,
   204                            then an entry in this list will point to this controller,
   205                            with the controller field set to true. There cannot be more
   206                            than one managing controller. \n Deprecated: This field
   207                            has no function and is going to be removed in a next release."
   208                          items:
   209                            description: OwnerReference contains enough information
   210                              to let you identify an owning object. An owning object
   211                              must be in the same namespace as the dependent, or be
   212                              cluster-scoped, so there is no namespace field.
   213                            properties:
   214                              apiVersion:
   215                                description: API version of the referent.
   216                                type: string
   217                              blockOwnerDeletion:
   218                                description: If true, AND if the owner has the "foregroundDeletion"
   219                                  finalizer, then the owner cannot be deleted from the
   220                                  key-value store until this reference is removed. See
   221                                  https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
   222                                  for how the garbage collector interacts with this
   223                                  field and enforces the foreground deletion. Defaults
   224                                  to false. To set this field, a user needs "delete"
   225                                  permission of the owner, otherwise 422 (Unprocessable
   226                                  Entity) will be returned.
   227                                type: boolean
   228                              controller:
   229                                description: If true, this reference points to the managing
   230                                  controller.
   231                                type: boolean
   232                              kind:
   233                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   234                                type: string
   235                              name:
   236                                description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   237                                type: string
   238                              uid:
   239                                description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   240                                type: string
   241                            required:
   242                            - apiVersion
   243                            - kind
   244                            - name
   245                            - uid
   246                            type: object
   247                          type: array
   248                      type: object
   249                    spec:
   250                      description: 'Specification of the desired behavior of the machine.
   251                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
   252                      properties:
   253                        bootstrap:
   254                          description: Bootstrap is a reference to a local struct which
   255                            encapsulates fields to configure the Machine’s bootstrapping
   256                            mechanism.
   257                          properties:
   258                            configRef:
   259                              description: ConfigRef is a reference to a bootstrap provider-specific
   260                                resource that holds configuration details. The reference
   261                                is optional to allow users/operators to specify Bootstrap.Data
   262                                without the need of a controller.
   263                              properties:
   264                                apiVersion:
   265                                  description: API version of the referent.
   266                                  type: string
   267                                fieldPath:
   268                                  description: 'If referring to a piece of an object
   269                                    instead of an entire object, this string should
   270                                    contain a valid JSON/Go field access statement,
   271                                    such as desiredState.manifest.containers[2]. For
   272                                    example, if the object reference is to a container
   273                                    within a pod, this would take on a value like: "spec.containers{name}"
   274                                    (where "name" refers to the name of the container
   275                                    that triggered the event) or if no container name
   276                                    is specified "spec.containers[2]" (container with
   277                                    index 2 in this pod). This syntax is chosen only
   278                                    to have some well-defined way of referencing a part
   279                                    of an object. TODO: this design is not final and
   280                                    this field is subject to change in the future.'
   281                                  type: string
   282                                kind:
   283                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   284                                  type: string
   285                                name:
   286                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   287                                  type: string
   288                                namespace:
   289                                  description: 'Namespace of the referent. More info:
   290                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   291                                  type: string
   292                                resourceVersion:
   293                                  description: 'Specific resourceVersion to which this
   294                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   295                                  type: string
   296                                uid:
   297                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   298                                  type: string
   299                              type: object
   300                            data:
   301                              description: "Data contains the bootstrap data, such as
   302                                cloud-init details scripts. If nil, the Machine should
   303                                remain in the Pending state. \n Deprecated: Switch to
   304                                DataSecretName."
   305                              type: string
   306                            dataSecretName:
   307                              description: DataSecretName is the name of the secret
   308                                that stores the bootstrap data script. If nil, the Machine
   309                                should remain in the Pending state.
   310                              type: string
   311                          type: object
   312                        clusterName:
   313                          description: ClusterName is the name of the Cluster this object
   314                            belongs to.
   315                          minLength: 1
   316                          type: string
   317                        failureDomain:
   318                          description: FailureDomain is the failure domain the machine
   319                            will be created in. Must match a key in the FailureDomains
   320                            map stored on the cluster object.
   321                          type: string
   322                        infrastructureRef:
   323                          description: InfrastructureRef is a required reference to
   324                            a custom resource offered by an infrastructure provider.
   325                          properties:
   326                            apiVersion:
   327                              description: API version of the referent.
   328                              type: string
   329                            fieldPath:
   330                              description: 'If referring to a piece of an object instead
   331                                of an entire object, this string should contain a valid
   332                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
   333                                For example, if the object reference is to a container
   334                                within a pod, this would take on a value like: "spec.containers{name}"
   335                                (where "name" refers to the name of the container that
   336                                triggered the event) or if no container name is specified
   337                                "spec.containers[2]" (container with index 2 in this
   338                                pod). This syntax is chosen only to have some well-defined
   339                                way of referencing a part of an object. TODO: this design
   340                                is not final and this field is subject to change in
   341                                the future.'
   342                              type: string
   343                            kind:
   344                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   345                              type: string
   346                            name:
   347                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   348                              type: string
   349                            namespace:
   350                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   351                              type: string
   352                            resourceVersion:
   353                              description: 'Specific resourceVersion to which this reference
   354                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   355                              type: string
   356                            uid:
   357                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   358                              type: string
   359                          type: object
   360                        nodeDrainTimeout:
   361                          description: 'NodeDrainTimeout is the total amount of time
   362                            that the controller will spend on draining a node. The default
   363                            value is 0, meaning that the node can be drained without
   364                            any time limitations. NOTE: NodeDrainTimeout is different
   365                            from `kubectl drain --timeout`'
   366                          type: string
   367                        providerID:
   368                          description: ProviderID is the identification ID of the machine
   369                            provided by the provider. This field must match the provider
   370                            ID as seen on the node object corresponding to this machine.
   371                            This field is required by higher level consumers of cluster-api.
   372                            Example use case is cluster autoscaler with cluster-api
   373                            as provider. Clean-up logic in the autoscaler compares machines
   374                            to nodes to find out machines at provider which could not
   375                            get registered as Kubernetes nodes. With cluster-api as
   376                            a generic out-of-tree provider for autoscaler, this field
   377                            is required by autoscaler to be able to have a provider
   378                            view of the list of machines. Another list of nodes is queried
   379                            from the k8s apiserver and then a comparison is done to
   380                            find out unregistered machines and are marked for delete.
   381                            This field will be set by the actuators and consumed by
   382                            higher level entities like autoscaler that will be interfacing
   383                            with cluster-api as generic provider.
   384                          type: string
   385                        version:
   386                          description: Version defines the desired Kubernetes version.
   387                            This field is meant to be optionally used by bootstrap providers.
   388                          type: string
   389                      required:
   390                      - bootstrap
   391                      - clusterName
   392                      - infrastructureRef
   393                      type: object
   394                  type: object
   395              required:
   396              - clusterName
   397              - template
   398              type: object
   399            status:
   400              description: MachinePoolStatus defines the observed state of MachinePool
   401              properties:
   402                availableReplicas:
   403                  description: The number of available replicas (ready for at least
   404                    minReadySeconds) for this MachinePool.
   405                  format: int32
   406                  type: integer
   407                bootstrapReady:
   408                  description: BootstrapReady is the state of the bootstrap provider.
   409                  type: boolean
   410                conditions:
   411                  description: Conditions define the current service state of the MachinePool.
   412                  items:
   413                    description: Condition defines an observation of a Cluster API resource
   414                      operational state.
   415                    properties:
   416                      lastTransitionTime:
   417                        description: Last time the condition transitioned from one status
   418                          to another. This should be when the underlying condition changed.
   419                          If that is not known, then using the time when the API field
   420                          changed is acceptable.
   421                        format: date-time
   422                        type: string
   423                      message:
   424                        description: A human readable message indicating details about
   425                          the transition. This field may be empty.
   426                        type: string
   427                      reason:
   428                        description: The reason for the condition's last transition
   429                          in CamelCase. The specific API may choose whether or not this
   430                          field is considered a guaranteed API. This field may not be
   431                          empty.
   432                        type: string
   433                      severity:
   434                        description: Severity provides an explicit classification of
   435                          Reason code, so the users or machines can immediately understand
   436                          the current situation and act accordingly. The Severity field
   437                          MUST be set only when Status=False.
   438                        type: string
   439                      status:
   440                        description: Status of the condition, one of True, False, Unknown.
   441                        type: string
   442                      type:
   443                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
   444                          Many .condition.type values are consistent across resources
   445                          like Available, but because arbitrary conditions can be useful
   446                          (see .node.status.conditions), the ability to deconflict is
   447                          important.
   448                        type: string
   449                    required:
   450                    - status
   451                    - type
   452                    type: object
   453                  type: array
   454                failureMessage:
   455                  description: FailureMessage indicates that there is a problem reconciling
   456                    the state, and will be set to a descriptive error message.
   457                  type: string
   458                failureReason:
   459                  description: FailureReason indicates that there is a problem reconciling
   460                    the state, and will be set to a token value suitable for programmatic
   461                    interpretation.
   462                  type: string
   463                infrastructureReady:
   464                  description: InfrastructureReady is the state of the infrastructure
   465                    provider.
   466                  type: boolean
   467                nodeRefs:
   468                  description: NodeRefs will point to the corresponding Nodes if it
   469                    they exist.
   470                  items:
   471                    description: 'ObjectReference contains enough information to let
   472                      you inspect or modify the referred object. --- New uses of this
   473                      type are discouraged because of difficulty describing its usage
   474                      when embedded in APIs.  1. Ignored fields.  It includes many fields
   475                      which are not generally honored.  For instance, ResourceVersion
   476                      and FieldPath are both very rarely valid in actual usage.  2.
   477                      Invalid usage help.  It is impossible to add specific help for
   478                      individual usage.  In most embedded usages, there are particular     restrictions
   479                      like, "must refer only to types A and B" or "UID not honored"
   480                      or "name must be restricted".     Those cannot be well described
   481                      when embedded.  3. Inconsistent validation.  Because the usages
   482                      are different, the validation rules are different by usage, which
   483                      makes it hard for users to predict what will happen.  4. The fields
   484                      are both imprecise and overly precise.  Kind is not a precise
   485                      mapping to a URL. This can produce ambiguity     during interpretation
   486                      and require a REST mapping.  In most cases, the dependency is
   487                      on the group,resource tuple     and the version of the actual
   488                      struct is irrelevant.  5. We cannot easily change it.  Because
   489                      this type is embedded in many locations, updates to this type     will
   490                      affect numerous schemas.  Don''t make new APIs embed an underspecified
   491                      API type they do not control. Instead of using this type, create
   492                      a locally provided and used type that is well-focused on your
   493                      reference. For example, ServiceReferences for admission registration:
   494                      https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
   495                      .'
   496                    properties:
   497                      apiVersion:
   498                        description: API version of the referent.
   499                        type: string
   500                      fieldPath:
   501                        description: 'If referring to a piece of an object instead of
   502                          an entire object, this string should contain a valid JSON/Go
   503                          field access statement, such as desiredState.manifest.containers[2].
   504                          For example, if the object reference is to a container within
   505                          a pod, this would take on a value like: "spec.containers{name}"
   506                          (where "name" refers to the name of the container that triggered
   507                          the event) or if no container name is specified "spec.containers[2]"
   508                          (container with index 2 in this pod). This syntax is chosen
   509                          only to have some well-defined way of referencing a part of
   510                          an object. TODO: this design is not final and this field is
   511                          subject to change in the future.'
   512                        type: string
   513                      kind:
   514                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   515                        type: string
   516                      name:
   517                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   518                        type: string
   519                      namespace:
   520                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   521                        type: string
   522                      resourceVersion:
   523                        description: 'Specific resourceVersion to which this reference
   524                          is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   525                        type: string
   526                      uid:
   527                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   528                        type: string
   529                    type: object
   530                  type: array
   531                observedGeneration:
   532                  description: ObservedGeneration is the latest generation observed
   533                    by the controller.
   534                  format: int64
   535                  type: integer
   536                phase:
   537                  description: Phase represents the current phase of cluster actuation.
   538                    E.g. Pending, Running, Terminating, Failed etc.
   539                  type: string
   540                readyReplicas:
   541                  description: The number of ready replicas for this MachinePool. A
   542                    machine is considered ready when the node has been created and is
   543                    "Ready".
   544                  format: int32
   545                  type: integer
   546                replicas:
   547                  description: Replicas is the most recently observed number of replicas.
   548                  format: int32
   549                  type: integer
   550                unavailableReplicas:
   551                  description: Total number of unavailable machine instances targeted
   552                    by this machine pool. This is the total number of machine instances
   553                    that are still required for the machine pool to have 100% available
   554                    capacity. They may either be machine instances that are running
   555                    but not yet available or machine instances that still have not been
   556                    created.
   557                  format: int32
   558                  type: integer
   559              type: object
   560          type: object
   561      served: true
   562      storage: true
   563      subresources:
   564        scale:
   565          specReplicasPath: .spec.replicas
   566          statusReplicasPath: .status.replicas
   567        status: {}
   568  status:
   569    acceptedNames:
   570      kind: ""
   571      plural: ""
   572    conditions: []
   573    storedVersions: []