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

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