github.com/verrazzano/verrazzano@v1.7.0/platform-operator/capi/cluster-api/v1.5.0/core-components.yaml (about)

     1  # Copyright (c) 2023, Oracle and/or its affiliates.
     2  # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
     3  
     4  apiVersion: v1
     5  kind: Namespace
     6  metadata:
     7    labels:
     8      cluster.x-k8s.io/provider: cluster-api
     9      control-plane: controller-manager
    10    name: capi-system
    11  ---
    12  apiVersion: apiextensions.k8s.io/v1
    13  kind: CustomResourceDefinition
    14  metadata:
    15    annotations:
    16      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
    17      controller-gen.kubebuilder.io/version: v0.12.0
    18    labels:
    19      cluster.x-k8s.io/provider: cluster-api
    20    name: clusterclasses.cluster.x-k8s.io
    21  spec:
    22    conversion:
    23      strategy: Webhook
    24      webhook:
    25        clientConfig:
    26          caBundle: Cg==
    27          service:
    28            name: capi-webhook-service
    29            namespace: capi-system
    30            path: /convert
    31        conversionReviewVersions:
    32        - v1
    33        - v1beta1
    34    group: cluster.x-k8s.io
    35    names:
    36      categories:
    37      - cluster-api
    38      kind: ClusterClass
    39      listKind: ClusterClassList
    40      plural: clusterclasses
    41      shortNames:
    42      - cc
    43      singular: clusterclass
    44    scope: Namespaced
    45    versions:
    46    - additionalPrinterColumns:
    47      - description: Time duration since creation of ClusterClass
    48        jsonPath: .metadata.creationTimestamp
    49        name: Age
    50        type: date
    51      deprecated: true
    52      name: v1alpha4
    53      schema:
    54        openAPIV3Schema:
    55          description: "ClusterClass is a template which can be used to create managed
    56            topologies. \n Deprecated: This type will be removed in one of the next
    57            releases."
    58          properties:
    59            apiVersion:
    60              description: 'APIVersion defines the versioned schema of this representation
    61                of an object. Servers should convert recognized schemas to the latest
    62                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    63              type: string
    64            kind:
    65              description: 'Kind is a string value representing the REST resource this
    66                object represents. Servers may infer this from the endpoint the client
    67                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    68              type: string
    69            metadata:
    70              type: object
    71            spec:
    72              description: ClusterClassSpec describes the desired state of the ClusterClass.
    73              properties:
    74                controlPlane:
    75                  description: ControlPlane is a reference to a local struct that holds
    76                    the details for provisioning the Control Plane for the Cluster.
    77                  properties:
    78                    machineInfrastructure:
    79                      description: "MachineTemplate defines the metadata and infrastructure
    80                        information for control plane machines. \n This field is supported
    81                        if and only if the control plane provider template referenced
    82                        above is Machine based and supports setting replicas."
    83                      properties:
    84                        ref:
    85                          description: Ref is a required reference to a custom resource
    86                            offered by a provider.
    87                          properties:
    88                            apiVersion:
    89                              description: API version of the referent.
    90                              type: string
    91                            fieldPath:
    92                              description: 'If referring to a piece of an object instead
    93                                of an entire object, this string should contain a valid
    94                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
    95                                For example, if the object reference is to a container
    96                                within a pod, this would take on a value like: "spec.containers{name}"
    97                                (where "name" refers to the name of the container that
    98                                triggered the event) or if no container name is specified
    99                                "spec.containers[2]" (container with index 2 in this
   100                                pod). This syntax is chosen only to have some well-defined
   101                                way of referencing a part of an object. TODO: this design
   102                                is not final and this field is subject to change in
   103                                the future.'
   104                              type: string
   105                            kind:
   106                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   107                              type: string
   108                            name:
   109                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   110                              type: string
   111                            namespace:
   112                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   113                              type: string
   114                            resourceVersion:
   115                              description: 'Specific resourceVersion to which this reference
   116                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   117                              type: string
   118                            uid:
   119                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   120                              type: string
   121                          type: object
   122                          x-kubernetes-map-type: atomic
   123                      required:
   124                      - ref
   125                      type: object
   126                    metadata:
   127                      description: "Metadata is the metadata applied to the machines
   128                        of the ControlPlane. At runtime this metadata is merged with
   129                        the corresponding metadata from the topology. \n This field
   130                        is supported if and only if the control plane provider template
   131                        referenced is Machine based."
   132                      properties:
   133                        annotations:
   134                          additionalProperties:
   135                            type: string
   136                          description: 'Annotations is an unstructured key value map
   137                            stored with a resource that may be set by external tools
   138                            to store and retrieve arbitrary metadata. They are not queryable
   139                            and should be preserved when modifying objects. More info:
   140                            http://kubernetes.io/docs/user-guide/annotations'
   141                          type: object
   142                        labels:
   143                          additionalProperties:
   144                            type: string
   145                          description: 'Map of string keys and values that can be used
   146                            to organize and categorize (scope and select) objects. May
   147                            match selectors of replication controllers and services.
   148                            More info: http://kubernetes.io/docs/user-guide/labels'
   149                          type: object
   150                      type: object
   151                    ref:
   152                      description: Ref is a required reference to a custom resource
   153                        offered by a provider.
   154                      properties:
   155                        apiVersion:
   156                          description: API version of the referent.
   157                          type: string
   158                        fieldPath:
   159                          description: 'If referring to a piece of an object instead
   160                            of an entire object, this string should contain a valid
   161                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
   162                            For example, if the object reference is to a container within
   163                            a pod, this would take on a value like: "spec.containers{name}"
   164                            (where "name" refers to the name of the container that triggered
   165                            the event) or if no container name is specified "spec.containers[2]"
   166                            (container with index 2 in this pod). This syntax is chosen
   167                            only to have some well-defined way of referencing a part
   168                            of an object. TODO: this design is not final and this field
   169                            is subject to change in the future.'
   170                          type: string
   171                        kind:
   172                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   173                          type: string
   174                        name:
   175                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   176                          type: string
   177                        namespace:
   178                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   179                          type: string
   180                        resourceVersion:
   181                          description: 'Specific resourceVersion to which this reference
   182                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   183                          type: string
   184                        uid:
   185                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   186                          type: string
   187                      type: object
   188                      x-kubernetes-map-type: atomic
   189                  required:
   190                  - ref
   191                  type: object
   192                infrastructure:
   193                  description: Infrastructure is a reference to a provider-specific
   194                    template that holds the details for provisioning infrastructure
   195                    specific cluster for the underlying provider. The underlying provider
   196                    is responsible for the implementation of the template to an infrastructure
   197                    cluster.
   198                  properties:
   199                    ref:
   200                      description: Ref is a required reference to a custom resource
   201                        offered by a provider.
   202                      properties:
   203                        apiVersion:
   204                          description: API version of the referent.
   205                          type: string
   206                        fieldPath:
   207                          description: 'If referring to a piece of an object instead
   208                            of an entire object, this string should contain a valid
   209                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
   210                            For example, if the object reference is to a container within
   211                            a pod, this would take on a value like: "spec.containers{name}"
   212                            (where "name" refers to the name of the container that triggered
   213                            the event) or if no container name is specified "spec.containers[2]"
   214                            (container with index 2 in this pod). This syntax is chosen
   215                            only to have some well-defined way of referencing a part
   216                            of an object. TODO: this design is not final and this field
   217                            is subject to change in the future.'
   218                          type: string
   219                        kind:
   220                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   221                          type: string
   222                        name:
   223                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   224                          type: string
   225                        namespace:
   226                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   227                          type: string
   228                        resourceVersion:
   229                          description: 'Specific resourceVersion to which this reference
   230                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   231                          type: string
   232                        uid:
   233                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   234                          type: string
   235                      type: object
   236                      x-kubernetes-map-type: atomic
   237                  required:
   238                  - ref
   239                  type: object
   240                workers:
   241                  description: Workers describes the worker nodes for the cluster. It
   242                    is a collection of node types which can be used to create the worker
   243                    nodes of the cluster.
   244                  properties:
   245                    machineDeployments:
   246                      description: MachineDeployments is a list of machine deployment
   247                        classes that can be used to create a set of worker nodes.
   248                      items:
   249                        description: MachineDeploymentClass serves as a template to
   250                          define a set of worker nodes of the cluster provisioned using
   251                          the `ClusterClass`.
   252                        properties:
   253                          class:
   254                            description: Class denotes a type of worker node present
   255                              in the cluster, this name MUST be unique within a ClusterClass
   256                              and can be referenced in the Cluster to create a managed
   257                              MachineDeployment.
   258                            type: string
   259                          template:
   260                            description: Template is a local struct containing a collection
   261                              of templates for creation of MachineDeployment objects
   262                              representing a set of worker nodes.
   263                            properties:
   264                              bootstrap:
   265                                description: Bootstrap contains the bootstrap template
   266                                  reference to be used for the creation of worker Machines.
   267                                properties:
   268                                  ref:
   269                                    description: Ref is a required reference to a custom
   270                                      resource offered by a provider.
   271                                    properties:
   272                                      apiVersion:
   273                                        description: API version of the referent.
   274                                        type: string
   275                                      fieldPath:
   276                                        description: 'If referring to a piece of an
   277                                          object instead of an entire object, this string
   278                                          should contain a valid JSON/Go field access
   279                                          statement, such as desiredState.manifest.containers[2].
   280                                          For example, if the object reference is to
   281                                          a container within a pod, this would take
   282                                          on a value like: "spec.containers{name}" (where
   283                                          "name" refers to the name of the container
   284                                          that triggered the event) or if no container
   285                                          name is specified "spec.containers[2]" (container
   286                                          with index 2 in this pod). This syntax is
   287                                          chosen only to have some well-defined way
   288                                          of referencing a part of an object. TODO:
   289                                          this design is not final and this field is
   290                                          subject to change in the future.'
   291                                        type: string
   292                                      kind:
   293                                        description: 'Kind of the referent. More info:
   294                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   295                                        type: string
   296                                      name:
   297                                        description: 'Name of the referent. More info:
   298                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   299                                        type: string
   300                                      namespace:
   301                                        description: 'Namespace of the referent. More
   302                                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   303                                        type: string
   304                                      resourceVersion:
   305                                        description: 'Specific resourceVersion to which
   306                                          this reference is made, if any. More info:
   307                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   308                                        type: string
   309                                      uid:
   310                                        description: 'UID of the referent. More info:
   311                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   312                                        type: string
   313                                    type: object
   314                                    x-kubernetes-map-type: atomic
   315                                required:
   316                                - ref
   317                                type: object
   318                              infrastructure:
   319                                description: Infrastructure contains the infrastructure
   320                                  template reference to be used for the creation of
   321                                  worker Machines.
   322                                properties:
   323                                  ref:
   324                                    description: Ref is a required reference to a custom
   325                                      resource offered by a provider.
   326                                    properties:
   327                                      apiVersion:
   328                                        description: API version of the referent.
   329                                        type: string
   330                                      fieldPath:
   331                                        description: 'If referring to a piece of an
   332                                          object instead of an entire object, this string
   333                                          should contain a valid JSON/Go field access
   334                                          statement, such as desiredState.manifest.containers[2].
   335                                          For example, if the object reference is to
   336                                          a container within a pod, this would take
   337                                          on a value like: "spec.containers{name}" (where
   338                                          "name" refers to the name of the container
   339                                          that triggered the event) or if no container
   340                                          name is specified "spec.containers[2]" (container
   341                                          with index 2 in this pod). This syntax is
   342                                          chosen only to have some well-defined way
   343                                          of referencing a part of an object. TODO:
   344                                          this design is not final and this field is
   345                                          subject to change in the future.'
   346                                        type: string
   347                                      kind:
   348                                        description: 'Kind of the referent. More info:
   349                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   350                                        type: string
   351                                      name:
   352                                        description: 'Name of the referent. More info:
   353                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   354                                        type: string
   355                                      namespace:
   356                                        description: 'Namespace of the referent. More
   357                                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   358                                        type: string
   359                                      resourceVersion:
   360                                        description: 'Specific resourceVersion to which
   361                                          this reference is made, if any. More info:
   362                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   363                                        type: string
   364                                      uid:
   365                                        description: 'UID of the referent. More info:
   366                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   367                                        type: string
   368                                    type: object
   369                                    x-kubernetes-map-type: atomic
   370                                required:
   371                                - ref
   372                                type: object
   373                              metadata:
   374                                description: Metadata is the metadata applied to the
   375                                  machines of the MachineDeployment. At runtime this
   376                                  metadata is merged with the corresponding metadata
   377                                  from the topology.
   378                                properties:
   379                                  annotations:
   380                                    additionalProperties:
   381                                      type: string
   382                                    description: 'Annotations is an unstructured key
   383                                      value map stored with a resource that may be set
   384                                      by external tools to store and retrieve arbitrary
   385                                      metadata. They are not queryable and should be
   386                                      preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
   387                                    type: object
   388                                  labels:
   389                                    additionalProperties:
   390                                      type: string
   391                                    description: 'Map of string keys and values that
   392                                      can be used to organize and categorize (scope
   393                                      and select) objects. May match selectors of replication
   394                                      controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
   395                                    type: object
   396                                type: object
   397                            required:
   398                            - bootstrap
   399                            - infrastructure
   400                            type: object
   401                        required:
   402                        - class
   403                        - template
   404                        type: object
   405                      type: array
   406                  type: object
   407              type: object
   408          type: object
   409      served: true
   410      storage: false
   411      subresources: {}
   412    - additionalPrinterColumns:
   413      - description: Time duration since creation of ClusterClass
   414        jsonPath: .metadata.creationTimestamp
   415        name: Age
   416        type: date
   417      name: v1beta1
   418      schema:
   419        openAPIV3Schema:
   420          description: ClusterClass is a template which can be used to create managed
   421            topologies.
   422          properties:
   423            apiVersion:
   424              description: 'APIVersion defines the versioned schema of this representation
   425                of an object. Servers should convert recognized schemas to the latest
   426                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
   427              type: string
   428            kind:
   429              description: 'Kind is a string value representing the REST resource this
   430                object represents. Servers may infer this from the endpoint the client
   431                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   432              type: string
   433            metadata:
   434              type: object
   435            spec:
   436              description: ClusterClassSpec describes the desired state of the ClusterClass.
   437              properties:
   438                controlPlane:
   439                  description: ControlPlane is a reference to a local struct that holds
   440                    the details for provisioning the Control Plane for the Cluster.
   441                  properties:
   442                    machineHealthCheck:
   443                      description: MachineHealthCheck defines a MachineHealthCheck for
   444                        this ControlPlaneClass. This field is supported if and only
   445                        if the ControlPlane provider template referenced above is Machine
   446                        based and supports setting replicas.
   447                      properties:
   448                        maxUnhealthy:
   449                          anyOf:
   450                          - type: integer
   451                          - type: string
   452                          description: Any further remediation is only allowed if at
   453                            most "MaxUnhealthy" machines selected by "selector" are
   454                            not healthy.
   455                          x-kubernetes-int-or-string: true
   456                        nodeStartupTimeout:
   457                          description: Machines older than this duration without a node
   458                            will be considered to have failed and will be remediated.
   459                            If you wish to disable this feature, set the value explicitly
   460                            to 0.
   461                          type: string
   462                        remediationTemplate:
   463                          description: "RemediationTemplate is a reference to a remediation
   464                            template provided by an infrastructure provider. \n This
   465                            field is completely optional, when filled, the MachineHealthCheck
   466                            controller creates a new object from the template referenced
   467                            and hands off remediation of the machine to a controller
   468                            that lives outside of Cluster API."
   469                          properties:
   470                            apiVersion:
   471                              description: API version of the referent.
   472                              type: string
   473                            fieldPath:
   474                              description: 'If referring to a piece of an object instead
   475                                of an entire object, this string should contain a valid
   476                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
   477                                For example, if the object reference is to a container
   478                                within a pod, this would take on a value like: "spec.containers{name}"
   479                                (where "name" refers to the name of the container that
   480                                triggered the event) or if no container name is specified
   481                                "spec.containers[2]" (container with index 2 in this
   482                                pod). This syntax is chosen only to have some well-defined
   483                                way of referencing a part of an object. TODO: this design
   484                                is not final and this field is subject to change in
   485                                the future.'
   486                              type: string
   487                            kind:
   488                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   489                              type: string
   490                            name:
   491                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   492                              type: string
   493                            namespace:
   494                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   495                              type: string
   496                            resourceVersion:
   497                              description: 'Specific resourceVersion to which this reference
   498                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   499                              type: string
   500                            uid:
   501                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   502                              type: string
   503                          type: object
   504                          x-kubernetes-map-type: atomic
   505                        unhealthyConditions:
   506                          description: UnhealthyConditions contains a list of the conditions
   507                            that determine whether a node is considered unhealthy. The
   508                            conditions are combined in a logical OR, i.e. if any of
   509                            the conditions is met, the node is unhealthy.
   510                          items:
   511                            description: UnhealthyCondition represents a Node condition
   512                              type and value with a timeout specified as a duration.  When
   513                              the named condition has been in the given status for at
   514                              least the timeout value, a node is considered unhealthy.
   515                            properties:
   516                              status:
   517                                minLength: 1
   518                                type: string
   519                              timeout:
   520                                type: string
   521                              type:
   522                                minLength: 1
   523                                type: string
   524                            required:
   525                            - status
   526                            - timeout
   527                            - type
   528                            type: object
   529                          type: array
   530                        unhealthyRange:
   531                          description: 'Any further remediation is only allowed if the
   532                            number of machines selected by "selector" as not healthy
   533                            is within the range of "UnhealthyRange". Takes precedence
   534                            over MaxUnhealthy. Eg. "[3-5]" - This means that remediation
   535                            will be allowed only when: (a) there are at least 3 unhealthy
   536                            machines (and) (b) there are at most 5 unhealthy machines'
   537                          pattern: ^\[[0-9]+-[0-9]+\]$
   538                          type: string
   539                      type: object
   540                    machineInfrastructure:
   541                      description: "MachineInfrastructure defines the metadata and infrastructure
   542                        information for control plane machines. \n This field is supported
   543                        if and only if the control plane provider template referenced
   544                        above is Machine based and supports setting replicas."
   545                      properties:
   546                        ref:
   547                          description: Ref is a required reference to a custom resource
   548                            offered by a provider.
   549                          properties:
   550                            apiVersion:
   551                              description: API version of the referent.
   552                              type: string
   553                            fieldPath:
   554                              description: 'If referring to a piece of an object instead
   555                                of an entire object, this string should contain a valid
   556                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
   557                                For example, if the object reference is to a container
   558                                within a pod, this would take on a value like: "spec.containers{name}"
   559                                (where "name" refers to the name of the container that
   560                                triggered the event) or if no container name is specified
   561                                "spec.containers[2]" (container with index 2 in this
   562                                pod). This syntax is chosen only to have some well-defined
   563                                way of referencing a part of an object. TODO: this design
   564                                is not final and this field is subject to change in
   565                                the future.'
   566                              type: string
   567                            kind:
   568                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   569                              type: string
   570                            name:
   571                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   572                              type: string
   573                            namespace:
   574                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   575                              type: string
   576                            resourceVersion:
   577                              description: 'Specific resourceVersion to which this reference
   578                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   579                              type: string
   580                            uid:
   581                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   582                              type: string
   583                          type: object
   584                          x-kubernetes-map-type: atomic
   585                      required:
   586                      - ref
   587                      type: object
   588                    metadata:
   589                      description: "Metadata is the metadata applied to the ControlPlane
   590                        and the Machines of the ControlPlane if the ControlPlaneTemplate
   591                        referenced is machine based. If not, it is applied only to the
   592                        ControlPlane. At runtime this metadata is merged with the corresponding
   593                        metadata from the topology. \n This field is supported if and
   594                        only if the control plane provider template referenced is Machine
   595                        based."
   596                      properties:
   597                        annotations:
   598                          additionalProperties:
   599                            type: string
   600                          description: 'Annotations is an unstructured key value map
   601                            stored with a resource that may be set by external tools
   602                            to store and retrieve arbitrary metadata. They are not queryable
   603                            and should be preserved when modifying objects. More info:
   604                            http://kubernetes.io/docs/user-guide/annotations'
   605                          type: object
   606                        labels:
   607                          additionalProperties:
   608                            type: string
   609                          description: 'Map of string keys and values that can be used
   610                            to organize and categorize (scope and select) objects. May
   611                            match selectors of replication controllers and services.
   612                            More info: http://kubernetes.io/docs/user-guide/labels'
   613                          type: object
   614                      type: object
   615                    nodeDeletionTimeout:
   616                      description: 'NodeDeletionTimeout defines how long the controller
   617                        will attempt to delete the Node that the Machine hosts after
   618                        the Machine is marked for deletion. A duration of 0 will retry
   619                        deletion indefinitely. Defaults to 10 seconds. NOTE: This value
   620                        can be overridden while defining a Cluster.Topology.'
   621                      type: string
   622                    nodeDrainTimeout:
   623                      description: 'NodeDrainTimeout is the total amount of time that
   624                        the controller will spend on draining a node. The default value
   625                        is 0, meaning that the node can be drained without any time
   626                        limitations. NOTE: NodeDrainTimeout is different from `kubectl
   627                        drain --timeout` NOTE: This value can be overridden while defining
   628                        a Cluster.Topology.'
   629                      type: string
   630                    nodeVolumeDetachTimeout:
   631                      description: 'NodeVolumeDetachTimeout is the total amount of time
   632                        that the controller will spend on waiting for all volumes to
   633                        be detached. The default value is 0, meaning that the volumes
   634                        can be detached without any time limitations. NOTE: This value
   635                        can be overridden while defining a Cluster.Topology.'
   636                      type: string
   637                    ref:
   638                      description: Ref is a required reference to a custom resource
   639                        offered by a provider.
   640                      properties:
   641                        apiVersion:
   642                          description: API version of the referent.
   643                          type: string
   644                        fieldPath:
   645                          description: 'If referring to a piece of an object instead
   646                            of an entire object, this string should contain a valid
   647                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
   648                            For example, if the object reference is to a container within
   649                            a pod, this would take on a value like: "spec.containers{name}"
   650                            (where "name" refers to the name of the container that triggered
   651                            the event) or if no container name is specified "spec.containers[2]"
   652                            (container with index 2 in this pod). This syntax is chosen
   653                            only to have some well-defined way of referencing a part
   654                            of an object. TODO: this design is not final and this field
   655                            is subject to change in the future.'
   656                          type: string
   657                        kind:
   658                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   659                          type: string
   660                        name:
   661                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   662                          type: string
   663                        namespace:
   664                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   665                          type: string
   666                        resourceVersion:
   667                          description: 'Specific resourceVersion to which this reference
   668                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   669                          type: string
   670                        uid:
   671                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   672                          type: string
   673                      type: object
   674                      x-kubernetes-map-type: atomic
   675                  required:
   676                  - ref
   677                  type: object
   678                infrastructure:
   679                  description: Infrastructure is a reference to a provider-specific
   680                    template that holds the details for provisioning infrastructure
   681                    specific cluster for the underlying provider. The underlying provider
   682                    is responsible for the implementation of the template to an infrastructure
   683                    cluster.
   684                  properties:
   685                    ref:
   686                      description: Ref is a required reference to a custom resource
   687                        offered by a provider.
   688                      properties:
   689                        apiVersion:
   690                          description: API version of the referent.
   691                          type: string
   692                        fieldPath:
   693                          description: 'If referring to a piece of an object instead
   694                            of an entire object, this string should contain a valid
   695                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
   696                            For example, if the object reference is to a container within
   697                            a pod, this would take on a value like: "spec.containers{name}"
   698                            (where "name" refers to the name of the container that triggered
   699                            the event) or if no container name is specified "spec.containers[2]"
   700                            (container with index 2 in this pod). This syntax is chosen
   701                            only to have some well-defined way of referencing a part
   702                            of an object. TODO: this design is not final and this field
   703                            is subject to change in the future.'
   704                          type: string
   705                        kind:
   706                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   707                          type: string
   708                        name:
   709                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   710                          type: string
   711                        namespace:
   712                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   713                          type: string
   714                        resourceVersion:
   715                          description: 'Specific resourceVersion to which this reference
   716                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   717                          type: string
   718                        uid:
   719                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   720                          type: string
   721                      type: object
   722                      x-kubernetes-map-type: atomic
   723                  required:
   724                  - ref
   725                  type: object
   726                patches:
   727                  description: 'Patches defines the patches which are applied to customize
   728                    referenced templates of a ClusterClass. Note: Patches will be applied
   729                    in the order of the array.'
   730                  items:
   731                    description: ClusterClassPatch defines a patch which is applied
   732                      to customize the referenced templates.
   733                    properties:
   734                      definitions:
   735                        description: 'Definitions define inline patches. Note: Patches
   736                          will be applied in the order of the array. Note: Exactly one
   737                          of Definitions or External must be set.'
   738                        items:
   739                          description: PatchDefinition defines a patch which is applied
   740                            to customize the referenced templates.
   741                          properties:
   742                            jsonPatches:
   743                              description: 'JSONPatches defines the patches which should
   744                                be applied on the templates matching the selector. Note:
   745                                Patches will be applied in the order of the array.'
   746                              items:
   747                                description: JSONPatch defines a JSON patch.
   748                                properties:
   749                                  op:
   750                                    description: 'Op defines the operation of the patch.
   751                                      Note: Only `add`, `replace` and `remove` are supported.'
   752                                    type: string
   753                                  path:
   754                                    description: 'Path defines the path of the patch.
   755                                      Note: Only the spec of a template can be patched,
   756                                      thus the path has to start with /spec/. Note:
   757                                      For now the only allowed array modifications are
   758                                      `append` and `prepend`, i.e.: * for op: `add`:
   759                                      only index 0 (prepend) and - (append) are allowed
   760                                      * for op: `replace` or `remove`: no indexes are
   761                                      allowed'
   762                                    type: string
   763                                  value:
   764                                    description: 'Value defines the value of the patch.
   765                                      Note: Either Value or ValueFrom is required for
   766                                      add and replace operations. Only one of them is
   767                                      allowed to be set at the same time. Note: We have
   768                                      to use apiextensionsv1.JSON instead of our JSON
   769                                      type, because controller-tools has a hard-coded
   770                                      schema for apiextensionsv1.JSON which cannot be
   771                                      produced by another type (unset type field). Ref:
   772                                      https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111'
   773                                    x-kubernetes-preserve-unknown-fields: true
   774                                  valueFrom:
   775                                    description: 'ValueFrom defines the value of the
   776                                      patch. Note: Either Value or ValueFrom is required
   777                                      for add and replace operations. Only one of them
   778                                      is allowed to be set at the same time.'
   779                                    properties:
   780                                      template:
   781                                        description: 'Template is the Go template to
   782                                          be used to calculate the value. A template
   783                                          can reference variables defined in .spec.variables
   784                                          and builtin variables. Note: The template
   785                                          must evaluate to a valid YAML or JSON value.'
   786                                        type: string
   787                                      variable:
   788                                        description: Variable is the variable to be
   789                                          used as value. Variable can be one of the
   790                                          variables defined in .spec.variables or a
   791                                          builtin variable.
   792                                        type: string
   793                                    type: object
   794                                required:
   795                                - op
   796                                - path
   797                                type: object
   798                              type: array
   799                            selector:
   800                              description: Selector defines on which templates the patch
   801                                should be applied.
   802                              properties:
   803                                apiVersion:
   804                                  description: APIVersion filters templates by apiVersion.
   805                                  type: string
   806                                kind:
   807                                  description: Kind filters templates by kind.
   808                                  type: string
   809                                matchResources:
   810                                  description: MatchResources selects templates based
   811                                    on where they are referenced.
   812                                  properties:
   813                                    controlPlane:
   814                                      description: 'ControlPlane selects templates referenced
   815                                        in .spec.ControlPlane. Note: this will match
   816                                        the controlPlane and also the controlPlane machineInfrastructure
   817                                        (depending on the kind and apiVersion).'
   818                                      type: boolean
   819                                    infrastructureCluster:
   820                                      description: InfrastructureCluster selects templates
   821                                        referenced in .spec.infrastructure.
   822                                      type: boolean
   823                                    machineDeploymentClass:
   824                                      description: MachineDeploymentClass selects templates
   825                                        referenced in specific MachineDeploymentClasses
   826                                        in .spec.workers.machineDeployments.
   827                                      properties:
   828                                        names:
   829                                          description: Names selects templates by class
   830                                            names.
   831                                          items:
   832                                            type: string
   833                                          type: array
   834                                      type: object
   835                                  type: object
   836                              required:
   837                              - apiVersion
   838                              - kind
   839                              - matchResources
   840                              type: object
   841                          required:
   842                          - jsonPatches
   843                          - selector
   844                          type: object
   845                        type: array
   846                      description:
   847                        description: Description is a human-readable description of
   848                          this patch.
   849                        type: string
   850                      enabledIf:
   851                        description: EnabledIf is a Go template to be used to calculate
   852                          if a patch should be enabled. It can reference variables defined
   853                          in .spec.variables and builtin variables. The patch will be
   854                          enabled if the template evaluates to `true`, otherwise it
   855                          will be disabled. If EnabledIf is not set, the patch will
   856                          be enabled per default.
   857                        type: string
   858                      external:
   859                        description: 'External defines an external patch. Note: Exactly
   860                          one of Definitions or External must be set.'
   861                        properties:
   862                          discoverVariablesExtension:
   863                            description: DiscoverVariablesExtension references an extension
   864                              which is called to discover variables.
   865                            type: string
   866                          generateExtension:
   867                            description: GenerateExtension references an extension which
   868                              is called to generate patches.
   869                            type: string
   870                          settings:
   871                            additionalProperties:
   872                              type: string
   873                            description: Settings defines key value pairs to be passed
   874                              to the extensions. Values defined here take precedence
   875                              over the values defined in the corresponding ExtensionConfig.
   876                            type: object
   877                          validateExtension:
   878                            description: ValidateExtension references an extension which
   879                              is called to validate the topology.
   880                            type: string
   881                        type: object
   882                      name:
   883                        description: Name of the patch.
   884                        type: string
   885                    required:
   886                    - name
   887                    type: object
   888                  type: array
   889                variables:
   890                  description: Variables defines the variables which can be configured
   891                    in the Cluster topology and are then used in patches.
   892                  items:
   893                    description: ClusterClassVariable defines a variable which can be
   894                      configured in the Cluster topology and used in patches.
   895                    properties:
   896                      name:
   897                        description: Name of the variable.
   898                        type: string
   899                      required:
   900                        description: 'Required specifies if the variable is required.
   901                          Note: this applies to the variable as a whole and thus the
   902                          top-level object defined in the schema. If nested fields are
   903                          required, this will be specified inside the schema.'
   904                        type: boolean
   905                      schema:
   906                        description: Schema defines the schema of the variable.
   907                        properties:
   908                          openAPIV3Schema:
   909                            description: OpenAPIV3Schema defines the schema of a variable
   910                              via OpenAPI v3 schema. The schema is a subset of the schema
   911                              used in Kubernetes CRDs.
   912                            properties:
   913                              additionalProperties:
   914                                description: 'AdditionalProperties specifies the schema
   915                                  of values in a map (keys are always strings). NOTE:
   916                                  Can only be set if type is object. NOTE: AdditionalProperties
   917                                  is mutually exclusive with Properties. NOTE: This
   918                                  field uses PreserveUnknownFields and Schemaless, because
   919                                  recursive validation is not possible.'
   920                                x-kubernetes-preserve-unknown-fields: true
   921                              default:
   922                                description: 'Default is the default value of the variable.
   923                                  NOTE: Can be set for all types.'
   924                                x-kubernetes-preserve-unknown-fields: true
   925                              description:
   926                                description: Description is a human-readable description
   927                                  of this variable.
   928                                type: string
   929                              enum:
   930                                description: 'Enum is the list of valid values of the
   931                                  variable. NOTE: Can be set for all types.'
   932                                items:
   933                                  x-kubernetes-preserve-unknown-fields: true
   934                                type: array
   935                              example:
   936                                description: Example is an example for this variable.
   937                                x-kubernetes-preserve-unknown-fields: true
   938                              exclusiveMaximum:
   939                                description: 'ExclusiveMaximum specifies if the Maximum
   940                                  is exclusive. NOTE: Can only be set if type is integer
   941                                  or number.'
   942                                type: boolean
   943                              exclusiveMinimum:
   944                                description: 'ExclusiveMinimum specifies if the Minimum
   945                                  is exclusive. NOTE: Can only be set if type is integer
   946                                  or number.'
   947                                type: boolean
   948                              format:
   949                                description: 'Format is an OpenAPI v3 format string.
   950                                  Unknown formats are ignored. For a list of supported
   951                                  formats please see: (of the k8s.io/apiextensions-apiserver
   952                                  version we''re currently using) https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go
   953                                  NOTE: Can only be set if type is string.'
   954                                type: string
   955                              items:
   956                                description: 'Items specifies fields of an array. NOTE:
   957                                  Can only be set if type is array. NOTE: This field
   958                                  uses PreserveUnknownFields and Schemaless, because
   959                                  recursive validation is not possible.'
   960                                x-kubernetes-preserve-unknown-fields: true
   961                              maxItems:
   962                                description: 'MaxItems is the max length of an array
   963                                  variable. NOTE: Can only be set if type is array.'
   964                                format: int64
   965                                type: integer
   966                              maxLength:
   967                                description: 'MaxLength is the max length of a string
   968                                  variable. NOTE: Can only be set if type is string.'
   969                                format: int64
   970                                type: integer
   971                              maximum:
   972                                description: 'Maximum is the maximum of an integer or
   973                                  number variable. If ExclusiveMaximum is false, the
   974                                  variable is valid if it is lower than, or equal to,
   975                                  the value of Maximum. If ExclusiveMaximum is true,
   976                                  the variable is valid if it is strictly lower than
   977                                  the value of Maximum. NOTE: Can only be set if type
   978                                  is integer or number.'
   979                                format: int64
   980                                type: integer
   981                              minItems:
   982                                description: 'MinItems is the min length of an array
   983                                  variable. NOTE: Can only be set if type is array.'
   984                                format: int64
   985                                type: integer
   986                              minLength:
   987                                description: 'MinLength is the min length of a string
   988                                  variable. NOTE: Can only be set if type is string.'
   989                                format: int64
   990                                type: integer
   991                              minimum:
   992                                description: 'Minimum is the minimum of an integer or
   993                                  number variable. If ExclusiveMinimum is false, the
   994                                  variable is valid if it is greater than, or equal
   995                                  to, the value of Minimum. If ExclusiveMinimum is true,
   996                                  the variable is valid if it is strictly greater than
   997                                  the value of Minimum. NOTE: Can only be set if type
   998                                  is integer or number.'
   999                                format: int64
  1000                                type: integer
  1001                              pattern:
  1002                                description: 'Pattern is the regex which a string variable
  1003                                  must match. NOTE: Can only be set if type is string.'
  1004                                type: string
  1005                              properties:
  1006                                description: 'Properties specifies fields of an object.
  1007                                  NOTE: Can only be set if type is object. NOTE: Properties
  1008                                  is mutually exclusive with AdditionalProperties. NOTE:
  1009                                  This field uses PreserveUnknownFields and Schemaless,
  1010                                  because recursive validation is not possible.'
  1011                                x-kubernetes-preserve-unknown-fields: true
  1012                              required:
  1013                                description: 'Required specifies which fields of an
  1014                                  object are required. NOTE: Can only be set if type
  1015                                  is object.'
  1016                                items:
  1017                                  type: string
  1018                                type: array
  1019                              type:
  1020                                description: 'Type is the type of the variable. Valid
  1021                                  values are: object, array, string, integer, number
  1022                                  or boolean.'
  1023                                type: string
  1024                              uniqueItems:
  1025                                description: 'UniqueItems specifies if items in an array
  1026                                  must be unique. NOTE: Can only be set if type is array.'
  1027                                type: boolean
  1028                              x-kubernetes-preserve-unknown-fields:
  1029                                description: XPreserveUnknownFields allows setting fields
  1030                                  in a variable object which are not defined in the
  1031                                  variable schema. This affects fields recursively,
  1032                                  except if nested properties or additionalProperties
  1033                                  are specified in the schema.
  1034                                type: boolean
  1035                            required:
  1036                            - type
  1037                            type: object
  1038                        required:
  1039                        - openAPIV3Schema
  1040                        type: object
  1041                    required:
  1042                    - name
  1043                    - required
  1044                    - schema
  1045                    type: object
  1046                  type: array
  1047                workers:
  1048                  description: Workers describes the worker nodes for the cluster. It
  1049                    is a collection of node types which can be used to create the worker
  1050                    nodes of the cluster.
  1051                  properties:
  1052                    machineDeployments:
  1053                      description: MachineDeployments is a list of machine deployment
  1054                        classes that can be used to create a set of worker nodes.
  1055                      items:
  1056                        description: MachineDeploymentClass serves as a template to
  1057                          define a set of worker nodes of the cluster provisioned using
  1058                          the `ClusterClass`.
  1059                        properties:
  1060                          class:
  1061                            description: Class denotes a type of worker node present
  1062                              in the cluster, this name MUST be unique within a ClusterClass
  1063                              and can be referenced in the Cluster to create a managed
  1064                              MachineDeployment.
  1065                            type: string
  1066                          failureDomain:
  1067                            description: 'FailureDomain is the failure domain the machines
  1068                              will be created in. Must match a key in the FailureDomains
  1069                              map stored on the cluster object. NOTE: This value can
  1070                              be overridden while defining a Cluster.Topology using
  1071                              this MachineDeploymentClass.'
  1072                            type: string
  1073                          machineHealthCheck:
  1074                            description: MachineHealthCheck defines a MachineHealthCheck
  1075                              for this MachineDeploymentClass.
  1076                            properties:
  1077                              maxUnhealthy:
  1078                                anyOf:
  1079                                - type: integer
  1080                                - type: string
  1081                                description: Any further remediation is only allowed
  1082                                  if at most "MaxUnhealthy" machines selected by "selector"
  1083                                  are not healthy.
  1084                                x-kubernetes-int-or-string: true
  1085                              nodeStartupTimeout:
  1086                                description: Machines older than this duration without
  1087                                  a node will be considered to have failed and will
  1088                                  be remediated. If you wish to disable this feature,
  1089                                  set the value explicitly to 0.
  1090                                type: string
  1091                              remediationTemplate:
  1092                                description: "RemediationTemplate is a reference to
  1093                                  a remediation template provided by an infrastructure
  1094                                  provider. \n This field is completely optional, when
  1095                                  filled, the MachineHealthCheck controller creates
  1096                                  a new object from the template referenced and hands
  1097                                  off remediation of the machine to a controller that
  1098                                  lives outside of Cluster API."
  1099                                properties:
  1100                                  apiVersion:
  1101                                    description: API version of the referent.
  1102                                    type: string
  1103                                  fieldPath:
  1104                                    description: 'If referring to a piece of an object
  1105                                      instead of an entire object, this string should
  1106                                      contain a valid JSON/Go field access statement,
  1107                                      such as desiredState.manifest.containers[2]. For
  1108                                      example, if the object reference is to a container
  1109                                      within a pod, this would take on a value like:
  1110                                      "spec.containers{name}" (where "name" refers to
  1111                                      the name of the container that triggered the event)
  1112                                      or if no container name is specified "spec.containers[2]"
  1113                                      (container with index 2 in this pod). This syntax
  1114                                      is chosen only to have some well-defined way of
  1115                                      referencing a part of an object. TODO: this design
  1116                                      is not final and this field is subject to change
  1117                                      in the future.'
  1118                                    type: string
  1119                                  kind:
  1120                                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1121                                    type: string
  1122                                  name:
  1123                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1124                                    type: string
  1125                                  namespace:
  1126                                    description: 'Namespace of the referent. More info:
  1127                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  1128                                    type: string
  1129                                  resourceVersion:
  1130                                    description: 'Specific resourceVersion to which
  1131                                      this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  1132                                    type: string
  1133                                  uid:
  1134                                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  1135                                    type: string
  1136                                type: object
  1137                                x-kubernetes-map-type: atomic
  1138                              unhealthyConditions:
  1139                                description: UnhealthyConditions contains a list of
  1140                                  the conditions that determine whether a node is considered
  1141                                  unhealthy. The conditions are combined in a logical
  1142                                  OR, i.e. if any of the conditions is met, the node
  1143                                  is unhealthy.
  1144                                items:
  1145                                  description: UnhealthyCondition represents a Node
  1146                                    condition type and value with a timeout specified
  1147                                    as a duration.  When the named condition has been
  1148                                    in the given status for at least the timeout value,
  1149                                    a node is considered unhealthy.
  1150                                  properties:
  1151                                    status:
  1152                                      minLength: 1
  1153                                      type: string
  1154                                    timeout:
  1155                                      type: string
  1156                                    type:
  1157                                      minLength: 1
  1158                                      type: string
  1159                                  required:
  1160                                  - status
  1161                                  - timeout
  1162                                  - type
  1163                                  type: object
  1164                                type: array
  1165                              unhealthyRange:
  1166                                description: 'Any further remediation is only allowed
  1167                                  if the number of machines selected by "selector" as
  1168                                  not healthy is within the range of "UnhealthyRange".
  1169                                  Takes precedence over MaxUnhealthy. Eg. "[3-5]" -
  1170                                  This means that remediation will be allowed only when:
  1171                                  (a) there are at least 3 unhealthy machines (and)
  1172                                  (b) there are at most 5 unhealthy machines'
  1173                                pattern: ^\[[0-9]+-[0-9]+\]$
  1174                                type: string
  1175                            type: object
  1176                          minReadySeconds:
  1177                            description: 'Minimum number of seconds for which a newly
  1178                              created machine should be ready. Defaults to 0 (machine
  1179                              will be considered available as soon as it is ready) NOTE:
  1180                              This value can be overridden while defining a Cluster.Topology
  1181                              using this MachineDeploymentClass.'
  1182                            format: int32
  1183                            type: integer
  1184                          nodeDeletionTimeout:
  1185                            description: 'NodeDeletionTimeout defines how long the controller
  1186                              will attempt to delete the Node that the Machine hosts
  1187                              after the Machine is marked for deletion. A duration of
  1188                              0 will retry deletion indefinitely. Defaults to 10 seconds.
  1189                              NOTE: This value can be overridden while defining a Cluster.Topology
  1190                              using this MachineDeploymentClass.'
  1191                            type: string
  1192                          nodeDrainTimeout:
  1193                            description: 'NodeDrainTimeout is the total amount of time
  1194                              that the controller will spend on draining a node. The
  1195                              default value is 0, meaning that the node can be drained
  1196                              without any time limitations. NOTE: NodeDrainTimeout is
  1197                              different from `kubectl drain --timeout` NOTE: This value
  1198                              can be overridden while defining a Cluster.Topology using
  1199                              this MachineDeploymentClass.'
  1200                            type: string
  1201                          nodeVolumeDetachTimeout:
  1202                            description: 'NodeVolumeDetachTimeout is the total amount
  1203                              of time that the controller will spend on waiting for
  1204                              all volumes to be detached. The default value is 0, meaning
  1205                              that the volumes can be detached without any time limitations.
  1206                              NOTE: This value can be overridden while defining a Cluster.Topology
  1207                              using this MachineDeploymentClass.'
  1208                            type: string
  1209                          strategy:
  1210                            description: 'The deployment strategy to use to replace
  1211                              existing machines with new ones. NOTE: This value can
  1212                              be overridden while defining a Cluster.Topology using
  1213                              this MachineDeploymentClass.'
  1214                            properties:
  1215                              rollingUpdate:
  1216                                description: Rolling update config params. Present only
  1217                                  if MachineDeploymentStrategyType = RollingUpdate.
  1218                                properties:
  1219                                  deletePolicy:
  1220                                    description: DeletePolicy defines the policy used
  1221                                      by the MachineDeployment to identify nodes to
  1222                                      delete when downscaling. Valid values are "Random,
  1223                                      "Newest", "Oldest" When no value is supplied,
  1224                                      the default DeletePolicy of MachineSet is used
  1225                                    enum:
  1226                                    - Random
  1227                                    - Newest
  1228                                    - Oldest
  1229                                    type: string
  1230                                  maxSurge:
  1231                                    anyOf:
  1232                                    - type: integer
  1233                                    - type: string
  1234                                    description: 'The maximum number of machines that
  1235                                      can be scheduled above the desired number of machines.
  1236                                      Value can be an absolute number (ex: 5) or a percentage
  1237                                      of desired machines (ex: 10%). This can not be
  1238                                      0 if MaxUnavailable is 0. Absolute number is calculated
  1239                                      from percentage by rounding up. Defaults to 1.
  1240                                      Example: when this is set to 30%, the new MachineSet
  1241                                      can be scaled up immediately when the rolling
  1242                                      update starts, such that the total number of old
  1243                                      and new machines do not exceed 130% of desired
  1244                                      machines. Once old machines have been killed,
  1245                                      new MachineSet can be scaled up further, ensuring
  1246                                      that total number of machines running at any time
  1247                                      during the update is at most 130% of desired machines.'
  1248                                    x-kubernetes-int-or-string: true
  1249                                  maxUnavailable:
  1250                                    anyOf:
  1251                                    - type: integer
  1252                                    - type: string
  1253                                    description: 'The maximum number of machines that
  1254                                      can be unavailable during the update. Value can
  1255                                      be an absolute number (ex: 5) or a percentage
  1256                                      of desired machines (ex: 10%). Absolute number
  1257                                      is calculated from percentage by rounding down.
  1258                                      This can not be 0 if MaxSurge is 0. Defaults to
  1259                                      0. Example: when this is set to 30%, the old MachineSet
  1260                                      can be scaled down to 70% of desired machines
  1261                                      immediately when the rolling update starts. Once
  1262                                      new machines are ready, old MachineSet can be
  1263                                      scaled down further, followed by scaling up the
  1264                                      new MachineSet, ensuring that the total number
  1265                                      of machines available at all times during the
  1266                                      update is at least 70% of desired machines.'
  1267                                    x-kubernetes-int-or-string: true
  1268                                type: object
  1269                              type:
  1270                                description: Type of deployment. Default is RollingUpdate.
  1271                                enum:
  1272                                - RollingUpdate
  1273                                - OnDelete
  1274                                type: string
  1275                            type: object
  1276                          template:
  1277                            description: Template is a local struct containing a collection
  1278                              of templates for creation of MachineDeployment objects
  1279                              representing a set of worker nodes.
  1280                            properties:
  1281                              bootstrap:
  1282                                description: Bootstrap contains the bootstrap template
  1283                                  reference to be used for the creation of worker Machines.
  1284                                properties:
  1285                                  ref:
  1286                                    description: Ref is a required reference to a custom
  1287                                      resource offered by a provider.
  1288                                    properties:
  1289                                      apiVersion:
  1290                                        description: API version of the referent.
  1291                                        type: string
  1292                                      fieldPath:
  1293                                        description: 'If referring to a piece of an
  1294                                          object instead of an entire object, this string
  1295                                          should contain a valid JSON/Go field access
  1296                                          statement, such as desiredState.manifest.containers[2].
  1297                                          For example, if the object reference is to
  1298                                          a container within a pod, this would take
  1299                                          on a value like: "spec.containers{name}" (where
  1300                                          "name" refers to the name of the container
  1301                                          that triggered the event) or if no container
  1302                                          name is specified "spec.containers[2]" (container
  1303                                          with index 2 in this pod). This syntax is
  1304                                          chosen only to have some well-defined way
  1305                                          of referencing a part of an object. TODO:
  1306                                          this design is not final and this field is
  1307                                          subject to change in the future.'
  1308                                        type: string
  1309                                      kind:
  1310                                        description: 'Kind of the referent. More info:
  1311                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1312                                        type: string
  1313                                      name:
  1314                                        description: 'Name of the referent. More info:
  1315                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1316                                        type: string
  1317                                      namespace:
  1318                                        description: 'Namespace of the referent. More
  1319                                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  1320                                        type: string
  1321                                      resourceVersion:
  1322                                        description: 'Specific resourceVersion to which
  1323                                          this reference is made, if any. More info:
  1324                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  1325                                        type: string
  1326                                      uid:
  1327                                        description: 'UID of the referent. More info:
  1328                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  1329                                        type: string
  1330                                    type: object
  1331                                    x-kubernetes-map-type: atomic
  1332                                required:
  1333                                - ref
  1334                                type: object
  1335                              infrastructure:
  1336                                description: Infrastructure contains the infrastructure
  1337                                  template reference to be used for the creation of
  1338                                  worker Machines.
  1339                                properties:
  1340                                  ref:
  1341                                    description: Ref is a required reference to a custom
  1342                                      resource offered by a provider.
  1343                                    properties:
  1344                                      apiVersion:
  1345                                        description: API version of the referent.
  1346                                        type: string
  1347                                      fieldPath:
  1348                                        description: 'If referring to a piece of an
  1349                                          object instead of an entire object, this string
  1350                                          should contain a valid JSON/Go field access
  1351                                          statement, such as desiredState.manifest.containers[2].
  1352                                          For example, if the object reference is to
  1353                                          a container within a pod, this would take
  1354                                          on a value like: "spec.containers{name}" (where
  1355                                          "name" refers to the name of the container
  1356                                          that triggered the event) or if no container
  1357                                          name is specified "spec.containers[2]" (container
  1358                                          with index 2 in this pod). This syntax is
  1359                                          chosen only to have some well-defined way
  1360                                          of referencing a part of an object. TODO:
  1361                                          this design is not final and this field is
  1362                                          subject to change in the future.'
  1363                                        type: string
  1364                                      kind:
  1365                                        description: 'Kind of the referent. More info:
  1366                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1367                                        type: string
  1368                                      name:
  1369                                        description: 'Name of the referent. More info:
  1370                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1371                                        type: string
  1372                                      namespace:
  1373                                        description: 'Namespace of the referent. More
  1374                                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  1375                                        type: string
  1376                                      resourceVersion:
  1377                                        description: 'Specific resourceVersion to which
  1378                                          this reference is made, if any. More info:
  1379                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  1380                                        type: string
  1381                                      uid:
  1382                                        description: 'UID of the referent. More info:
  1383                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  1384                                        type: string
  1385                                    type: object
  1386                                    x-kubernetes-map-type: atomic
  1387                                required:
  1388                                - ref
  1389                                type: object
  1390                              metadata:
  1391                                description: Metadata is the metadata applied to the
  1392                                  MachineDeployment and the machines of the MachineDeployment.
  1393                                  At runtime this metadata is merged with the corresponding
  1394                                  metadata from the topology.
  1395                                properties:
  1396                                  annotations:
  1397                                    additionalProperties:
  1398                                      type: string
  1399                                    description: 'Annotations is an unstructured key
  1400                                      value map stored with a resource that may be set
  1401                                      by external tools to store and retrieve arbitrary
  1402                                      metadata. They are not queryable and should be
  1403                                      preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
  1404                                    type: object
  1405                                  labels:
  1406                                    additionalProperties:
  1407                                      type: string
  1408                                    description: 'Map of string keys and values that
  1409                                      can be used to organize and categorize (scope
  1410                                      and select) objects. May match selectors of replication
  1411                                      controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
  1412                                    type: object
  1413                                type: object
  1414                            required:
  1415                            - bootstrap
  1416                            - infrastructure
  1417                            type: object
  1418                        required:
  1419                        - class
  1420                        - template
  1421                        type: object
  1422                      type: array
  1423                  type: object
  1424              type: object
  1425            status:
  1426              description: ClusterClassStatus defines the observed state of the ClusterClass.
  1427              properties:
  1428                conditions:
  1429                  description: Conditions defines current observed state of the ClusterClass.
  1430                  items:
  1431                    description: Condition defines an observation of a Cluster API resource
  1432                      operational state.
  1433                    properties:
  1434                      lastTransitionTime:
  1435                        description: Last time the condition transitioned from one status
  1436                          to another. This should be when the underlying condition changed.
  1437                          If that is not known, then using the time when the API field
  1438                          changed is acceptable.
  1439                        format: date-time
  1440                        type: string
  1441                      message:
  1442                        description: A human readable message indicating details about
  1443                          the transition. This field may be empty.
  1444                        type: string
  1445                      reason:
  1446                        description: The reason for the condition's last transition
  1447                          in CamelCase. The specific API may choose whether or not this
  1448                          field is considered a guaranteed API. This field may not be
  1449                          empty.
  1450                        type: string
  1451                      severity:
  1452                        description: Severity provides an explicit classification of
  1453                          Reason code, so the users or machines can immediately understand
  1454                          the current situation and act accordingly. The Severity field
  1455                          MUST be set only when Status=False.
  1456                        type: string
  1457                      status:
  1458                        description: Status of the condition, one of True, False, Unknown.
  1459                        type: string
  1460                      type:
  1461                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  1462                          Many .condition.type values are consistent across resources
  1463                          like Available, but because arbitrary conditions can be useful
  1464                          (see .node.status.conditions), the ability to deconflict is
  1465                          important.
  1466                        type: string
  1467                    required:
  1468                    - lastTransitionTime
  1469                    - status
  1470                    - type
  1471                    type: object
  1472                  type: array
  1473                observedGeneration:
  1474                  description: ObservedGeneration is the latest generation observed
  1475                    by the controller.
  1476                  format: int64
  1477                  type: integer
  1478                variables:
  1479                  description: Variables is a list of ClusterClassStatusVariable that
  1480                    are defined for the ClusterClass.
  1481                  items:
  1482                    description: ClusterClassStatusVariable defines a variable which
  1483                      appears in the status of a ClusterClass.
  1484                    properties:
  1485                      definitions:
  1486                        description: Definitions is a list of definitions for a variable.
  1487                        items:
  1488                          description: ClusterClassStatusVariableDefinition defines
  1489                            a variable which appears in the status of a ClusterClass.
  1490                          properties:
  1491                            from:
  1492                              description: From specifies the origin of the variable
  1493                                definition. This will be `inline` for variables defined
  1494                                in the ClusterClass or the name of a patch defined in
  1495                                the ClusterClass for variables discovered from a DiscoverVariables
  1496                                runtime extensions.
  1497                              type: string
  1498                            required:
  1499                              description: 'Required specifies if the variable is required.
  1500                                Note: this applies to the variable as a whole and thus
  1501                                the top-level object defined in the schema. If nested
  1502                                fields are required, this will be specified inside the
  1503                                schema.'
  1504                              type: boolean
  1505                            schema:
  1506                              description: Schema defines the schema of the variable.
  1507                              properties:
  1508                                openAPIV3Schema:
  1509                                  description: OpenAPIV3Schema defines the schema of
  1510                                    a variable via OpenAPI v3 schema. The schema is
  1511                                    a subset of the schema used in Kubernetes CRDs.
  1512                                  properties:
  1513                                    additionalProperties:
  1514                                      description: 'AdditionalProperties specifies the
  1515                                        schema of values in a map (keys are always strings).
  1516                                        NOTE: Can only be set if type is object. NOTE:
  1517                                        AdditionalProperties is mutually exclusive with
  1518                                        Properties. NOTE: This field uses PreserveUnknownFields
  1519                                        and Schemaless, because recursive validation
  1520                                        is not possible.'
  1521                                      x-kubernetes-preserve-unknown-fields: true
  1522                                    default:
  1523                                      description: 'Default is the default value of
  1524                                        the variable. NOTE: Can be set for all types.'
  1525                                      x-kubernetes-preserve-unknown-fields: true
  1526                                    description:
  1527                                      description: Description is a human-readable description
  1528                                        of this variable.
  1529                                      type: string
  1530                                    enum:
  1531                                      description: 'Enum is the list of valid values
  1532                                        of the variable. NOTE: Can be set for all types.'
  1533                                      items:
  1534                                        x-kubernetes-preserve-unknown-fields: true
  1535                                      type: array
  1536                                    example:
  1537                                      description: Example is an example for this variable.
  1538                                      x-kubernetes-preserve-unknown-fields: true
  1539                                    exclusiveMaximum:
  1540                                      description: 'ExclusiveMaximum specifies if the
  1541                                        Maximum is exclusive. NOTE: Can only be set
  1542                                        if type is integer or number.'
  1543                                      type: boolean
  1544                                    exclusiveMinimum:
  1545                                      description: 'ExclusiveMinimum specifies if the
  1546                                        Minimum is exclusive. NOTE: Can only be set
  1547                                        if type is integer or number.'
  1548                                      type: boolean
  1549                                    format:
  1550                                      description: 'Format is an OpenAPI v3 format string.
  1551                                        Unknown formats are ignored. For a list of supported
  1552                                        formats please see: (of the k8s.io/apiextensions-apiserver
  1553                                        version we''re currently using) https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go
  1554                                        NOTE: Can only be set if type is string.'
  1555                                      type: string
  1556                                    items:
  1557                                      description: 'Items specifies fields of an array.
  1558                                        NOTE: Can only be set if type is array. NOTE:
  1559                                        This field uses PreserveUnknownFields and Schemaless,
  1560                                        because recursive validation is not possible.'
  1561                                      x-kubernetes-preserve-unknown-fields: true
  1562                                    maxItems:
  1563                                      description: 'MaxItems is the max length of an
  1564                                        array variable. NOTE: Can only be set if type
  1565                                        is array.'
  1566                                      format: int64
  1567                                      type: integer
  1568                                    maxLength:
  1569                                      description: 'MaxLength is the max length of a
  1570                                        string variable. NOTE: Can only be set if type
  1571                                        is string.'
  1572                                      format: int64
  1573                                      type: integer
  1574                                    maximum:
  1575                                      description: 'Maximum is the maximum of an integer
  1576                                        or number variable. If ExclusiveMaximum is false,
  1577                                        the variable is valid if it is lower than, or
  1578                                        equal to, the value of Maximum. If ExclusiveMaximum
  1579                                        is true, the variable is valid if it is strictly
  1580                                        lower than the value of Maximum. NOTE: Can only
  1581                                        be set if type is integer or number.'
  1582                                      format: int64
  1583                                      type: integer
  1584                                    minItems:
  1585                                      description: 'MinItems is the min length of an
  1586                                        array variable. NOTE: Can only be set if type
  1587                                        is array.'
  1588                                      format: int64
  1589                                      type: integer
  1590                                    minLength:
  1591                                      description: 'MinLength is the min length of a
  1592                                        string variable. NOTE: Can only be set if type
  1593                                        is string.'
  1594                                      format: int64
  1595                                      type: integer
  1596                                    minimum:
  1597                                      description: 'Minimum is the minimum of an integer
  1598                                        or number variable. If ExclusiveMinimum is false,
  1599                                        the variable is valid if it is greater than,
  1600                                        or equal to, the value of Minimum. If ExclusiveMinimum
  1601                                        is true, the variable is valid if it is strictly
  1602                                        greater than the value of Minimum. NOTE: Can
  1603                                        only be set if type is integer or number.'
  1604                                      format: int64
  1605                                      type: integer
  1606                                    pattern:
  1607                                      description: 'Pattern is the regex which a string
  1608                                        variable must match. NOTE: Can only be set if
  1609                                        type is string.'
  1610                                      type: string
  1611                                    properties:
  1612                                      description: 'Properties specifies fields of an
  1613                                        object. NOTE: Can only be set if type is object.
  1614                                        NOTE: Properties is mutually exclusive with
  1615                                        AdditionalProperties. NOTE: This field uses
  1616                                        PreserveUnknownFields and Schemaless, because
  1617                                        recursive validation is not possible.'
  1618                                      x-kubernetes-preserve-unknown-fields: true
  1619                                    required:
  1620                                      description: 'Required specifies which fields
  1621                                        of an object are required. NOTE: Can only be
  1622                                        set if type is object.'
  1623                                      items:
  1624                                        type: string
  1625                                      type: array
  1626                                    type:
  1627                                      description: 'Type is the type of the variable.
  1628                                        Valid values are: object, array, string, integer,
  1629                                        number or boolean.'
  1630                                      type: string
  1631                                    uniqueItems:
  1632                                      description: 'UniqueItems specifies if items in
  1633                                        an array must be unique. NOTE: Can only be set
  1634                                        if type is array.'
  1635                                      type: boolean
  1636                                    x-kubernetes-preserve-unknown-fields:
  1637                                      description: XPreserveUnknownFields allows setting
  1638                                        fields in a variable object which are not defined
  1639                                        in the variable schema. This affects fields
  1640                                        recursively, except if nested properties or
  1641                                        additionalProperties are specified in the schema.
  1642                                      type: boolean
  1643                                  required:
  1644                                  - type
  1645                                  type: object
  1646                              required:
  1647                              - openAPIV3Schema
  1648                              type: object
  1649                          required:
  1650                          - from
  1651                          - required
  1652                          - schema
  1653                          type: object
  1654                        type: array
  1655                      definitionsConflict:
  1656                        description: DefinitionsConflict specifies whether or not there
  1657                          are conflicting definitions for a single variable name.
  1658                        type: boolean
  1659                      name:
  1660                        description: Name is the name of the variable.
  1661                        type: string
  1662                    required:
  1663                    - definitions
  1664                    - name
  1665                    type: object
  1666                  type: array
  1667              type: object
  1668          type: object
  1669      served: true
  1670      storage: true
  1671      subresources:
  1672        status: {}
  1673  ---
  1674  apiVersion: apiextensions.k8s.io/v1
  1675  kind: CustomResourceDefinition
  1676  metadata:
  1677    annotations:
  1678      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
  1679      controller-gen.kubebuilder.io/version: v0.12.0
  1680    labels:
  1681      cluster.x-k8s.io/provider: cluster-api
  1682    name: clusterresourcesetbindings.addons.cluster.x-k8s.io
  1683  spec:
  1684    conversion:
  1685      strategy: Webhook
  1686      webhook:
  1687        clientConfig:
  1688          caBundle: Cg==
  1689          service:
  1690            name: capi-webhook-service
  1691            namespace: capi-system
  1692            path: /convert
  1693        conversionReviewVersions:
  1694        - v1
  1695        - v1beta1
  1696    group: addons.cluster.x-k8s.io
  1697    names:
  1698      categories:
  1699      - cluster-api
  1700      kind: ClusterResourceSetBinding
  1701      listKind: ClusterResourceSetBindingList
  1702      plural: clusterresourcesetbindings
  1703      singular: clusterresourcesetbinding
  1704    scope: Namespaced
  1705    versions:
  1706    - deprecated: true
  1707      name: v1alpha3
  1708      schema:
  1709        openAPIV3Schema:
  1710          description: "ClusterResourceSetBinding lists all matching ClusterResourceSets
  1711            with the cluster it belongs to. \n Deprecated: This type will be removed
  1712            in one of the next releases."
  1713          properties:
  1714            apiVersion:
  1715              description: 'APIVersion defines the versioned schema of this representation
  1716                of an object. Servers should convert recognized schemas to the latest
  1717                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1718              type: string
  1719            kind:
  1720              description: 'Kind is a string value representing the REST resource this
  1721                object represents. Servers may infer this from the endpoint the client
  1722                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1723              type: string
  1724            metadata:
  1725              type: object
  1726            spec:
  1727              description: ClusterResourceSetBindingSpec defines the desired state of
  1728                ClusterResourceSetBinding.
  1729              properties:
  1730                bindings:
  1731                  description: Bindings is a list of ClusterResourceSets and their resources.
  1732                  items:
  1733                    description: ResourceSetBinding keeps info on all of the resources
  1734                      in a ClusterResourceSet.
  1735                    properties:
  1736                      clusterResourceSetName:
  1737                        description: ClusterResourceSetName is the name of the ClusterResourceSet
  1738                          that is applied to the owner cluster of the binding.
  1739                        type: string
  1740                      resources:
  1741                        description: Resources is a list of resources that the ClusterResourceSet
  1742                          has.
  1743                        items:
  1744                          description: ResourceBinding shows the status of a resource
  1745                            that belongs to a ClusterResourceSet matched by the owner
  1746                            cluster of the ClusterResourceSetBinding object.
  1747                          properties:
  1748                            applied:
  1749                              description: Applied is to track if a resource is applied
  1750                                to the cluster or not.
  1751                              type: boolean
  1752                            hash:
  1753                              description: Hash is the hash of a resource's data. This
  1754                                can be used to decide if a resource is changed. For
  1755                                "ApplyOnce" ClusterResourceSet.spec.strategy, this is
  1756                                no-op as that strategy does not act on change.
  1757                              type: string
  1758                            kind:
  1759                              description: 'Kind of the resource. Supported kinds are:
  1760                                Secrets and ConfigMaps.'
  1761                              enum:
  1762                              - Secret
  1763                              - ConfigMap
  1764                              type: string
  1765                            lastAppliedTime:
  1766                              description: LastAppliedTime identifies when this resource
  1767                                was last applied to the cluster.
  1768                              format: date-time
  1769                              type: string
  1770                            name:
  1771                              description: Name of the resource that is in the same
  1772                                namespace with ClusterResourceSet object.
  1773                              minLength: 1
  1774                              type: string
  1775                          required:
  1776                          - applied
  1777                          - kind
  1778                          - name
  1779                          type: object
  1780                        type: array
  1781                    required:
  1782                    - clusterResourceSetName
  1783                    type: object
  1784                  type: array
  1785              type: object
  1786          type: object
  1787      served: false
  1788      storage: false
  1789      subresources:
  1790        status: {}
  1791    - additionalPrinterColumns:
  1792      - description: Time duration since creation of ClusterResourceSetBinding
  1793        jsonPath: .metadata.creationTimestamp
  1794        name: Age
  1795        type: date
  1796      deprecated: true
  1797      name: v1alpha4
  1798      schema:
  1799        openAPIV3Schema:
  1800          description: "ClusterResourceSetBinding lists all matching ClusterResourceSets
  1801            with the cluster it belongs to. \n Deprecated: This type will be removed
  1802            in one of the next releases."
  1803          properties:
  1804            apiVersion:
  1805              description: 'APIVersion defines the versioned schema of this representation
  1806                of an object. Servers should convert recognized schemas to the latest
  1807                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1808              type: string
  1809            kind:
  1810              description: 'Kind is a string value representing the REST resource this
  1811                object represents. Servers may infer this from the endpoint the client
  1812                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1813              type: string
  1814            metadata:
  1815              type: object
  1816            spec:
  1817              description: ClusterResourceSetBindingSpec defines the desired state of
  1818                ClusterResourceSetBinding.
  1819              properties:
  1820                bindings:
  1821                  description: Bindings is a list of ClusterResourceSets and their resources.
  1822                  items:
  1823                    description: ResourceSetBinding keeps info on all of the resources
  1824                      in a ClusterResourceSet.
  1825                    properties:
  1826                      clusterResourceSetName:
  1827                        description: ClusterResourceSetName is the name of the ClusterResourceSet
  1828                          that is applied to the owner cluster of the binding.
  1829                        type: string
  1830                      resources:
  1831                        description: Resources is a list of resources that the ClusterResourceSet
  1832                          has.
  1833                        items:
  1834                          description: ResourceBinding shows the status of a resource
  1835                            that belongs to a ClusterResourceSet matched by the owner
  1836                            cluster of the ClusterResourceSetBinding object.
  1837                          properties:
  1838                            applied:
  1839                              description: Applied is to track if a resource is applied
  1840                                to the cluster or not.
  1841                              type: boolean
  1842                            hash:
  1843                              description: Hash is the hash of a resource's data. This
  1844                                can be used to decide if a resource is changed. For
  1845                                "ApplyOnce" ClusterResourceSet.spec.strategy, this is
  1846                                no-op as that strategy does not act on change.
  1847                              type: string
  1848                            kind:
  1849                              description: 'Kind of the resource. Supported kinds are:
  1850                                Secrets and ConfigMaps.'
  1851                              enum:
  1852                              - Secret
  1853                              - ConfigMap
  1854                              type: string
  1855                            lastAppliedTime:
  1856                              description: LastAppliedTime identifies when this resource
  1857                                was last applied to the cluster.
  1858                              format: date-time
  1859                              type: string
  1860                            name:
  1861                              description: Name of the resource that is in the same
  1862                                namespace with ClusterResourceSet object.
  1863                              minLength: 1
  1864                              type: string
  1865                          required:
  1866                          - applied
  1867                          - kind
  1868                          - name
  1869                          type: object
  1870                        type: array
  1871                    required:
  1872                    - clusterResourceSetName
  1873                    type: object
  1874                  type: array
  1875              type: object
  1876          type: object
  1877      served: true
  1878      storage: false
  1879      subresources:
  1880        status: {}
  1881    - additionalPrinterColumns:
  1882      - description: Time duration since creation of ClusterResourceSetBinding
  1883        jsonPath: .metadata.creationTimestamp
  1884        name: Age
  1885        type: date
  1886      name: v1beta1
  1887      schema:
  1888        openAPIV3Schema:
  1889          description: ClusterResourceSetBinding lists all matching ClusterResourceSets
  1890            with the cluster it belongs to.
  1891          properties:
  1892            apiVersion:
  1893              description: 'APIVersion defines the versioned schema of this representation
  1894                of an object. Servers should convert recognized schemas to the latest
  1895                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1896              type: string
  1897            kind:
  1898              description: 'Kind is a string value representing the REST resource this
  1899                object represents. Servers may infer this from the endpoint the client
  1900                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1901              type: string
  1902            metadata:
  1903              type: object
  1904            spec:
  1905              description: ClusterResourceSetBindingSpec defines the desired state of
  1906                ClusterResourceSetBinding.
  1907              properties:
  1908                bindings:
  1909                  description: Bindings is a list of ClusterResourceSets and their resources.
  1910                  items:
  1911                    description: ResourceSetBinding keeps info on all of the resources
  1912                      in a ClusterResourceSet.
  1913                    properties:
  1914                      clusterResourceSetName:
  1915                        description: ClusterResourceSetName is the name of the ClusterResourceSet
  1916                          that is applied to the owner cluster of the binding.
  1917                        type: string
  1918                      resources:
  1919                        description: Resources is a list of resources that the ClusterResourceSet
  1920                          has.
  1921                        items:
  1922                          description: ResourceBinding shows the status of a resource
  1923                            that belongs to a ClusterResourceSet matched by the owner
  1924                            cluster of the ClusterResourceSetBinding object.
  1925                          properties:
  1926                            applied:
  1927                              description: Applied is to track if a resource is applied
  1928                                to the cluster or not.
  1929                              type: boolean
  1930                            hash:
  1931                              description: Hash is the hash of a resource's data. This
  1932                                can be used to decide if a resource is changed. For
  1933                                "ApplyOnce" ClusterResourceSet.spec.strategy, this is
  1934                                no-op as that strategy does not act on change.
  1935                              type: string
  1936                            kind:
  1937                              description: 'Kind of the resource. Supported kinds are:
  1938                                Secrets and ConfigMaps.'
  1939                              enum:
  1940                              - Secret
  1941                              - ConfigMap
  1942                              type: string
  1943                            lastAppliedTime:
  1944                              description: LastAppliedTime identifies when this resource
  1945                                was last applied to the cluster.
  1946                              format: date-time
  1947                              type: string
  1948                            name:
  1949                              description: Name of the resource that is in the same
  1950                                namespace with ClusterResourceSet object.
  1951                              minLength: 1
  1952                              type: string
  1953                          required:
  1954                          - applied
  1955                          - kind
  1956                          - name
  1957                          type: object
  1958                        type: array
  1959                    required:
  1960                    - clusterResourceSetName
  1961                    type: object
  1962                  type: array
  1963                clusterName:
  1964                  description: 'ClusterName is the name of the Cluster this binding
  1965                    applies to. Note: this field mandatory in v1beta2.'
  1966                  type: string
  1967              type: object
  1968          type: object
  1969      served: true
  1970      storage: true
  1971      subresources:
  1972        status: {}
  1973  ---
  1974  apiVersion: apiextensions.k8s.io/v1
  1975  kind: CustomResourceDefinition
  1976  metadata:
  1977    annotations:
  1978      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
  1979      controller-gen.kubebuilder.io/version: v0.12.0
  1980    labels:
  1981      cluster.x-k8s.io/provider: cluster-api
  1982    name: clusterresourcesets.addons.cluster.x-k8s.io
  1983  spec:
  1984    conversion:
  1985      strategy: Webhook
  1986      webhook:
  1987        clientConfig:
  1988          caBundle: Cg==
  1989          service:
  1990            name: capi-webhook-service
  1991            namespace: capi-system
  1992            path: /convert
  1993        conversionReviewVersions:
  1994        - v1
  1995        - v1beta1
  1996    group: addons.cluster.x-k8s.io
  1997    names:
  1998      categories:
  1999      - cluster-api
  2000      kind: ClusterResourceSet
  2001      listKind: ClusterResourceSetList
  2002      plural: clusterresourcesets
  2003      singular: clusterresourceset
  2004    scope: Namespaced
  2005    versions:
  2006    - deprecated: true
  2007      name: v1alpha3
  2008      schema:
  2009        openAPIV3Schema:
  2010          description: "ClusterResourceSet is the Schema for the clusterresourcesets
  2011            API. \n Deprecated: This type will be removed in one of the next releases."
  2012          properties:
  2013            apiVersion:
  2014              description: 'APIVersion defines the versioned schema of this representation
  2015                of an object. Servers should convert recognized schemas to the latest
  2016                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2017              type: string
  2018            kind:
  2019              description: 'Kind is a string value representing the REST resource this
  2020                object represents. Servers may infer this from the endpoint the client
  2021                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2022              type: string
  2023            metadata:
  2024              type: object
  2025            spec:
  2026              description: ClusterResourceSetSpec defines the desired state of ClusterResourceSet.
  2027              properties:
  2028                clusterSelector:
  2029                  description: Label selector for Clusters. The Clusters that are selected
  2030                    by this will be the ones affected by this ClusterResourceSet. It
  2031                    must match the Cluster labels. This field is immutable.
  2032                  properties:
  2033                    matchExpressions:
  2034                      description: matchExpressions is a list of label selector requirements.
  2035                        The requirements are ANDed.
  2036                      items:
  2037                        description: A label selector requirement is a selector that
  2038                          contains values, a key, and an operator that relates the key
  2039                          and values.
  2040                        properties:
  2041                          key:
  2042                            description: key is the label key that the selector applies
  2043                              to.
  2044                            type: string
  2045                          operator:
  2046                            description: operator represents a key's relationship to
  2047                              a set of values. Valid operators are In, NotIn, Exists
  2048                              and DoesNotExist.
  2049                            type: string
  2050                          values:
  2051                            description: values is an array of string values. If the
  2052                              operator is In or NotIn, the values array must be non-empty.
  2053                              If the operator is Exists or DoesNotExist, the values
  2054                              array must be empty. This array is replaced during a strategic
  2055                              merge patch.
  2056                            items:
  2057                              type: string
  2058                            type: array
  2059                        required:
  2060                        - key
  2061                        - operator
  2062                        type: object
  2063                      type: array
  2064                    matchLabels:
  2065                      additionalProperties:
  2066                        type: string
  2067                      description: matchLabels is a map of {key,value} pairs. A single
  2068                        {key,value} in the matchLabels map is equivalent to an element
  2069                        of matchExpressions, whose key field is "key", the operator
  2070                        is "In", and the values array contains only "value". The requirements
  2071                        are ANDed.
  2072                      type: object
  2073                  type: object
  2074                resources:
  2075                  description: Resources is a list of Secrets/ConfigMaps where each
  2076                    contains 1 or more resources to be applied to remote clusters.
  2077                  items:
  2078                    description: ResourceRef specifies a resource.
  2079                    properties:
  2080                      kind:
  2081                        description: 'Kind of the resource. Supported kinds are: Secrets
  2082                          and ConfigMaps.'
  2083                        enum:
  2084                        - Secret
  2085                        - ConfigMap
  2086                        type: string
  2087                      name:
  2088                        description: Name of the resource that is in the same namespace
  2089                          with ClusterResourceSet object.
  2090                        minLength: 1
  2091                        type: string
  2092                    required:
  2093                    - kind
  2094                    - name
  2095                    type: object
  2096                  type: array
  2097                strategy:
  2098                  description: Strategy is the strategy to be used during applying resources.
  2099                    Defaults to ApplyOnce. This field is immutable.
  2100                  enum:
  2101                  - ApplyOnce
  2102                  type: string
  2103              required:
  2104              - clusterSelector
  2105              type: object
  2106            status:
  2107              description: ClusterResourceSetStatus defines the observed state of ClusterResourceSet.
  2108              properties:
  2109                conditions:
  2110                  description: Conditions defines current state of the ClusterResourceSet.
  2111                  items:
  2112                    description: Condition defines an observation of a Cluster API resource
  2113                      operational state.
  2114                    properties:
  2115                      lastTransitionTime:
  2116                        description: Last time the condition transitioned from one status
  2117                          to another. This should be when the underlying condition changed.
  2118                          If that is not known, then using the time when the API field
  2119                          changed is acceptable.
  2120                        format: date-time
  2121                        type: string
  2122                      message:
  2123                        description: A human readable message indicating details about
  2124                          the transition. This field may be empty.
  2125                        type: string
  2126                      reason:
  2127                        description: The reason for the condition's last transition
  2128                          in CamelCase. The specific API may choose whether or not this
  2129                          field is considered a guaranteed API. This field may not be
  2130                          empty.
  2131                        type: string
  2132                      severity:
  2133                        description: Severity provides an explicit classification of
  2134                          Reason code, so the users or machines can immediately understand
  2135                          the current situation and act accordingly. The Severity field
  2136                          MUST be set only when Status=False.
  2137                        type: string
  2138                      status:
  2139                        description: Status of the condition, one of True, False, Unknown.
  2140                        type: string
  2141                      type:
  2142                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  2143                          Many .condition.type values are consistent across resources
  2144                          like Available, but because arbitrary conditions can be useful
  2145                          (see .node.status.conditions), the ability to deconflict is
  2146                          important.
  2147                        type: string
  2148                    required:
  2149                    - status
  2150                    - type
  2151                    type: object
  2152                  type: array
  2153                observedGeneration:
  2154                  description: ObservedGeneration reflects the generation of the most
  2155                    recently observed ClusterResourceSet.
  2156                  format: int64
  2157                  type: integer
  2158              type: object
  2159          type: object
  2160      served: false
  2161      storage: false
  2162      subresources:
  2163        status: {}
  2164    - additionalPrinterColumns:
  2165      - description: Time duration since creation of ClusterResourceSet
  2166        jsonPath: .metadata.creationTimestamp
  2167        name: Age
  2168        type: date
  2169      deprecated: true
  2170      name: v1alpha4
  2171      schema:
  2172        openAPIV3Schema:
  2173          description: "ClusterResourceSet is the Schema for the clusterresourcesets
  2174            API. \n Deprecated: This type will be removed in one of the next releases."
  2175          properties:
  2176            apiVersion:
  2177              description: 'APIVersion defines the versioned schema of this representation
  2178                of an object. Servers should convert recognized schemas to the latest
  2179                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2180              type: string
  2181            kind:
  2182              description: 'Kind is a string value representing the REST resource this
  2183                object represents. Servers may infer this from the endpoint the client
  2184                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2185              type: string
  2186            metadata:
  2187              type: object
  2188            spec:
  2189              description: ClusterResourceSetSpec defines the desired state of ClusterResourceSet.
  2190              properties:
  2191                clusterSelector:
  2192                  description: Label selector for Clusters. The Clusters that are selected
  2193                    by this will be the ones affected by this ClusterResourceSet. It
  2194                    must match the Cluster labels. This field is immutable. Label selector
  2195                    cannot be empty.
  2196                  properties:
  2197                    matchExpressions:
  2198                      description: matchExpressions is a list of label selector requirements.
  2199                        The requirements are ANDed.
  2200                      items:
  2201                        description: A label selector requirement is a selector that
  2202                          contains values, a key, and an operator that relates the key
  2203                          and values.
  2204                        properties:
  2205                          key:
  2206                            description: key is the label key that the selector applies
  2207                              to.
  2208                            type: string
  2209                          operator:
  2210                            description: operator represents a key's relationship to
  2211                              a set of values. Valid operators are In, NotIn, Exists
  2212                              and DoesNotExist.
  2213                            type: string
  2214                          values:
  2215                            description: values is an array of string values. If the
  2216                              operator is In or NotIn, the values array must be non-empty.
  2217                              If the operator is Exists or DoesNotExist, the values
  2218                              array must be empty. This array is replaced during a strategic
  2219                              merge patch.
  2220                            items:
  2221                              type: string
  2222                            type: array
  2223                        required:
  2224                        - key
  2225                        - operator
  2226                        type: object
  2227                      type: array
  2228                    matchLabels:
  2229                      additionalProperties:
  2230                        type: string
  2231                      description: matchLabels is a map of {key,value} pairs. A single
  2232                        {key,value} in the matchLabels map is equivalent to an element
  2233                        of matchExpressions, whose key field is "key", the operator
  2234                        is "In", and the values array contains only "value". The requirements
  2235                        are ANDed.
  2236                      type: object
  2237                  type: object
  2238                resources:
  2239                  description: Resources is a list of Secrets/ConfigMaps where each
  2240                    contains 1 or more resources to be applied to remote clusters.
  2241                  items:
  2242                    description: ResourceRef specifies a resource.
  2243                    properties:
  2244                      kind:
  2245                        description: 'Kind of the resource. Supported kinds are: Secrets
  2246                          and ConfigMaps.'
  2247                        enum:
  2248                        - Secret
  2249                        - ConfigMap
  2250                        type: string
  2251                      name:
  2252                        description: Name of the resource that is in the same namespace
  2253                          with ClusterResourceSet object.
  2254                        minLength: 1
  2255                        type: string
  2256                    required:
  2257                    - kind
  2258                    - name
  2259                    type: object
  2260                  type: array
  2261                strategy:
  2262                  description: Strategy is the strategy to be used during applying resources.
  2263                    Defaults to ApplyOnce. This field is immutable.
  2264                  enum:
  2265                  - ApplyOnce
  2266                  type: string
  2267              required:
  2268              - clusterSelector
  2269              type: object
  2270            status:
  2271              description: ClusterResourceSetStatus defines the observed state of ClusterResourceSet.
  2272              properties:
  2273                conditions:
  2274                  description: Conditions defines current state of the ClusterResourceSet.
  2275                  items:
  2276                    description: Condition defines an observation of a Cluster API resource
  2277                      operational state.
  2278                    properties:
  2279                      lastTransitionTime:
  2280                        description: Last time the condition transitioned from one status
  2281                          to another. This should be when the underlying condition changed.
  2282                          If that is not known, then using the time when the API field
  2283                          changed is acceptable.
  2284                        format: date-time
  2285                        type: string
  2286                      message:
  2287                        description: A human readable message indicating details about
  2288                          the transition. This field may be empty.
  2289                        type: string
  2290                      reason:
  2291                        description: The reason for the condition's last transition
  2292                          in CamelCase. The specific API may choose whether or not this
  2293                          field is considered a guaranteed API. This field may not be
  2294                          empty.
  2295                        type: string
  2296                      severity:
  2297                        description: Severity provides an explicit classification of
  2298                          Reason code, so the users or machines can immediately understand
  2299                          the current situation and act accordingly. The Severity field
  2300                          MUST be set only when Status=False.
  2301                        type: string
  2302                      status:
  2303                        description: Status of the condition, one of True, False, Unknown.
  2304                        type: string
  2305                      type:
  2306                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  2307                          Many .condition.type values are consistent across resources
  2308                          like Available, but because arbitrary conditions can be useful
  2309                          (see .node.status.conditions), the ability to deconflict is
  2310                          important.
  2311                        type: string
  2312                    required:
  2313                    - status
  2314                    - type
  2315                    type: object
  2316                  type: array
  2317                observedGeneration:
  2318                  description: ObservedGeneration reflects the generation of the most
  2319                    recently observed ClusterResourceSet.
  2320                  format: int64
  2321                  type: integer
  2322              type: object
  2323          type: object
  2324      served: true
  2325      storage: false
  2326      subresources:
  2327        status: {}
  2328    - additionalPrinterColumns:
  2329      - description: Time duration since creation of ClusterResourceSet
  2330        jsonPath: .metadata.creationTimestamp
  2331        name: Age
  2332        type: date
  2333      name: v1beta1
  2334      schema:
  2335        openAPIV3Schema:
  2336          description: ClusterResourceSet is the Schema for the clusterresourcesets
  2337            API.
  2338          properties:
  2339            apiVersion:
  2340              description: 'APIVersion defines the versioned schema of this representation
  2341                of an object. Servers should convert recognized schemas to the latest
  2342                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2343              type: string
  2344            kind:
  2345              description: 'Kind is a string value representing the REST resource this
  2346                object represents. Servers may infer this from the endpoint the client
  2347                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2348              type: string
  2349            metadata:
  2350              type: object
  2351            spec:
  2352              description: ClusterResourceSetSpec defines the desired state of ClusterResourceSet.
  2353              properties:
  2354                clusterSelector:
  2355                  description: Label selector for Clusters. The Clusters that are selected
  2356                    by this will be the ones affected by this ClusterResourceSet. It
  2357                    must match the Cluster labels. This field is immutable. Label selector
  2358                    cannot be empty.
  2359                  properties:
  2360                    matchExpressions:
  2361                      description: matchExpressions is a list of label selector requirements.
  2362                        The requirements are ANDed.
  2363                      items:
  2364                        description: A label selector requirement is a selector that
  2365                          contains values, a key, and an operator that relates the key
  2366                          and values.
  2367                        properties:
  2368                          key:
  2369                            description: key is the label key that the selector applies
  2370                              to.
  2371                            type: string
  2372                          operator:
  2373                            description: operator represents a key's relationship to
  2374                              a set of values. Valid operators are In, NotIn, Exists
  2375                              and DoesNotExist.
  2376                            type: string
  2377                          values:
  2378                            description: values is an array of string values. If the
  2379                              operator is In or NotIn, the values array must be non-empty.
  2380                              If the operator is Exists or DoesNotExist, the values
  2381                              array must be empty. This array is replaced during a strategic
  2382                              merge patch.
  2383                            items:
  2384                              type: string
  2385                            type: array
  2386                        required:
  2387                        - key
  2388                        - operator
  2389                        type: object
  2390                      type: array
  2391                    matchLabels:
  2392                      additionalProperties:
  2393                        type: string
  2394                      description: matchLabels is a map of {key,value} pairs. A single
  2395                        {key,value} in the matchLabels map is equivalent to an element
  2396                        of matchExpressions, whose key field is "key", the operator
  2397                        is "In", and the values array contains only "value". The requirements
  2398                        are ANDed.
  2399                      type: object
  2400                  type: object
  2401                resources:
  2402                  description: Resources is a list of Secrets/ConfigMaps where each
  2403                    contains 1 or more resources to be applied to remote clusters.
  2404                  items:
  2405                    description: ResourceRef specifies a resource.
  2406                    properties:
  2407                      kind:
  2408                        description: 'Kind of the resource. Supported kinds are: Secrets
  2409                          and ConfigMaps.'
  2410                        enum:
  2411                        - Secret
  2412                        - ConfigMap
  2413                        type: string
  2414                      name:
  2415                        description: Name of the resource that is in the same namespace
  2416                          with ClusterResourceSet object.
  2417                        minLength: 1
  2418                        type: string
  2419                    required:
  2420                    - kind
  2421                    - name
  2422                    type: object
  2423                  type: array
  2424                strategy:
  2425                  description: Strategy is the strategy to be used during applying resources.
  2426                    Defaults to ApplyOnce. This field is immutable.
  2427                  enum:
  2428                  - ApplyOnce
  2429                  - Reconcile
  2430                  type: string
  2431              required:
  2432              - clusterSelector
  2433              type: object
  2434            status:
  2435              description: ClusterResourceSetStatus defines the observed state of ClusterResourceSet.
  2436              properties:
  2437                conditions:
  2438                  description: Conditions defines current state of the ClusterResourceSet.
  2439                  items:
  2440                    description: Condition defines an observation of a Cluster API resource
  2441                      operational state.
  2442                    properties:
  2443                      lastTransitionTime:
  2444                        description: Last time the condition transitioned from one status
  2445                          to another. This should be when the underlying condition changed.
  2446                          If that is not known, then using the time when the API field
  2447                          changed is acceptable.
  2448                        format: date-time
  2449                        type: string
  2450                      message:
  2451                        description: A human readable message indicating details about
  2452                          the transition. This field may be empty.
  2453                        type: string
  2454                      reason:
  2455                        description: The reason for the condition's last transition
  2456                          in CamelCase. The specific API may choose whether or not this
  2457                          field is considered a guaranteed API. This field may not be
  2458                          empty.
  2459                        type: string
  2460                      severity:
  2461                        description: Severity provides an explicit classification of
  2462                          Reason code, so the users or machines can immediately understand
  2463                          the current situation and act accordingly. The Severity field
  2464                          MUST be set only when Status=False.
  2465                        type: string
  2466                      status:
  2467                        description: Status of the condition, one of True, False, Unknown.
  2468                        type: string
  2469                      type:
  2470                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  2471                          Many .condition.type values are consistent across resources
  2472                          like Available, but because arbitrary conditions can be useful
  2473                          (see .node.status.conditions), the ability to deconflict is
  2474                          important.
  2475                        type: string
  2476                    required:
  2477                    - lastTransitionTime
  2478                    - status
  2479                    - type
  2480                    type: object
  2481                  type: array
  2482                observedGeneration:
  2483                  description: ObservedGeneration reflects the generation of the most
  2484                    recently observed ClusterResourceSet.
  2485                  format: int64
  2486                  type: integer
  2487              type: object
  2488          type: object
  2489      served: true
  2490      storage: true
  2491      subresources:
  2492        status: {}
  2493  ---
  2494  apiVersion: apiextensions.k8s.io/v1
  2495  kind: CustomResourceDefinition
  2496  metadata:
  2497    annotations:
  2498      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
  2499      controller-gen.kubebuilder.io/version: v0.12.0
  2500    labels:
  2501      cluster.x-k8s.io/provider: cluster-api
  2502    name: clusters.cluster.x-k8s.io
  2503  spec:
  2504    conversion:
  2505      strategy: Webhook
  2506      webhook:
  2507        clientConfig:
  2508          caBundle: Cg==
  2509          service:
  2510            name: capi-webhook-service
  2511            namespace: capi-system
  2512            path: /convert
  2513        conversionReviewVersions:
  2514        - v1
  2515        - v1beta1
  2516    group: cluster.x-k8s.io
  2517    names:
  2518      categories:
  2519      - cluster-api
  2520      kind: Cluster
  2521      listKind: ClusterList
  2522      plural: clusters
  2523      shortNames:
  2524      - cl
  2525      singular: cluster
  2526    scope: Namespaced
  2527    versions:
  2528    - additionalPrinterColumns:
  2529      - description: Cluster status such as Pending/Provisioning/Provisioned/Deleting/Failed
  2530        jsonPath: .status.phase
  2531        name: Phase
  2532        type: string
  2533      deprecated: true
  2534      name: v1alpha3
  2535      schema:
  2536        openAPIV3Schema:
  2537          description: Cluster is the Schema for the clusters API.
  2538          properties:
  2539            apiVersion:
  2540              description: 'APIVersion defines the versioned schema of this representation
  2541                of an object. Servers should convert recognized schemas to the latest
  2542                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2543              type: string
  2544            kind:
  2545              description: 'Kind is a string value representing the REST resource this
  2546                object represents. Servers may infer this from the endpoint the client
  2547                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2548              type: string
  2549            metadata:
  2550              type: object
  2551            spec:
  2552              description: ClusterSpec defines the desired state of Cluster.
  2553              properties:
  2554                clusterNetwork:
  2555                  description: Cluster network configuration.
  2556                  properties:
  2557                    apiServerPort:
  2558                      description: APIServerPort specifies the port the API Server should
  2559                        bind to. Defaults to 6443.
  2560                      format: int32
  2561                      type: integer
  2562                    pods:
  2563                      description: The network ranges from which Pod networks are allocated.
  2564                      properties:
  2565                        cidrBlocks:
  2566                          items:
  2567                            type: string
  2568                          type: array
  2569                      required:
  2570                      - cidrBlocks
  2571                      type: object
  2572                    serviceDomain:
  2573                      description: Domain name for services.
  2574                      type: string
  2575                    services:
  2576                      description: The network ranges from which service VIPs are allocated.
  2577                      properties:
  2578                        cidrBlocks:
  2579                          items:
  2580                            type: string
  2581                          type: array
  2582                      required:
  2583                      - cidrBlocks
  2584                      type: object
  2585                  type: object
  2586                controlPlaneEndpoint:
  2587                  description: ControlPlaneEndpoint represents the endpoint used to
  2588                    communicate with the control plane.
  2589                  properties:
  2590                    host:
  2591                      description: The hostname on which the API server is serving.
  2592                      type: string
  2593                    port:
  2594                      description: The port on which the API server is serving.
  2595                      format: int32
  2596                      type: integer
  2597                  required:
  2598                  - host
  2599                  - port
  2600                  type: object
  2601                controlPlaneRef:
  2602                  description: ControlPlaneRef is an optional reference to a provider-specific
  2603                    resource that holds the details for provisioning the Control Plane
  2604                    for a Cluster.
  2605                  properties:
  2606                    apiVersion:
  2607                      description: API version of the referent.
  2608                      type: string
  2609                    fieldPath:
  2610                      description: 'If referring to a piece of an object instead of
  2611                        an entire object, this string should contain a valid JSON/Go
  2612                        field access statement, such as desiredState.manifest.containers[2].
  2613                        For example, if the object reference is to a container within
  2614                        a pod, this would take on a value like: "spec.containers{name}"
  2615                        (where "name" refers to the name of the container that triggered
  2616                        the event) or if no container name is specified "spec.containers[2]"
  2617                        (container with index 2 in this pod). This syntax is chosen
  2618                        only to have some well-defined way of referencing a part of
  2619                        an object. TODO: this design is not final and this field is
  2620                        subject to change in the future.'
  2621                      type: string
  2622                    kind:
  2623                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2624                      type: string
  2625                    name:
  2626                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2627                      type: string
  2628                    namespace:
  2629                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2630                      type: string
  2631                    resourceVersion:
  2632                      description: 'Specific resourceVersion to which this reference
  2633                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2634                      type: string
  2635                    uid:
  2636                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2637                      type: string
  2638                  type: object
  2639                  x-kubernetes-map-type: atomic
  2640                infrastructureRef:
  2641                  description: InfrastructureRef is a reference to a provider-specific
  2642                    resource that holds the details for provisioning infrastructure
  2643                    for a cluster in said provider.
  2644                  properties:
  2645                    apiVersion:
  2646                      description: API version of the referent.
  2647                      type: string
  2648                    fieldPath:
  2649                      description: 'If referring to a piece of an object instead of
  2650                        an entire object, this string should contain a valid JSON/Go
  2651                        field access statement, such as desiredState.manifest.containers[2].
  2652                        For example, if the object reference is to a container within
  2653                        a pod, this would take on a value like: "spec.containers{name}"
  2654                        (where "name" refers to the name of the container that triggered
  2655                        the event) or if no container name is specified "spec.containers[2]"
  2656                        (container with index 2 in this pod). This syntax is chosen
  2657                        only to have some well-defined way of referencing a part of
  2658                        an object. TODO: this design is not final and this field is
  2659                        subject to change in the future.'
  2660                      type: string
  2661                    kind:
  2662                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2663                      type: string
  2664                    name:
  2665                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2666                      type: string
  2667                    namespace:
  2668                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2669                      type: string
  2670                    resourceVersion:
  2671                      description: 'Specific resourceVersion to which this reference
  2672                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2673                      type: string
  2674                    uid:
  2675                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2676                      type: string
  2677                  type: object
  2678                  x-kubernetes-map-type: atomic
  2679                paused:
  2680                  description: Paused can be used to prevent controllers from processing
  2681                    the Cluster and all its associated objects.
  2682                  type: boolean
  2683              type: object
  2684            status:
  2685              description: ClusterStatus defines the observed state of Cluster.
  2686              properties:
  2687                conditions:
  2688                  description: Conditions defines current service state of the cluster.
  2689                  items:
  2690                    description: Condition defines an observation of a Cluster API resource
  2691                      operational state.
  2692                    properties:
  2693                      lastTransitionTime:
  2694                        description: Last time the condition transitioned from one status
  2695                          to another. This should be when the underlying condition changed.
  2696                          If that is not known, then using the time when the API field
  2697                          changed is acceptable.
  2698                        format: date-time
  2699                        type: string
  2700                      message:
  2701                        description: A human readable message indicating details about
  2702                          the transition. This field may be empty.
  2703                        type: string
  2704                      reason:
  2705                        description: The reason for the condition's last transition
  2706                          in CamelCase. The specific API may choose whether or not this
  2707                          field is considered a guaranteed API. This field may not be
  2708                          empty.
  2709                        type: string
  2710                      severity:
  2711                        description: Severity provides an explicit classification of
  2712                          Reason code, so the users or machines can immediately understand
  2713                          the current situation and act accordingly. The Severity field
  2714                          MUST be set only when Status=False.
  2715                        type: string
  2716                      status:
  2717                        description: Status of the condition, one of True, False, Unknown.
  2718                        type: string
  2719                      type:
  2720                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  2721                          Many .condition.type values are consistent across resources
  2722                          like Available, but because arbitrary conditions can be useful
  2723                          (see .node.status.conditions), the ability to deconflict is
  2724                          important.
  2725                        type: string
  2726                    required:
  2727                    - status
  2728                    - type
  2729                    type: object
  2730                  type: array
  2731                controlPlaneInitialized:
  2732                  description: ControlPlaneInitialized defines if the control plane
  2733                    has been initialized.
  2734                  type: boolean
  2735                controlPlaneReady:
  2736                  description: ControlPlaneReady defines if the control plane is ready.
  2737                  type: boolean
  2738                failureDomains:
  2739                  additionalProperties:
  2740                    description: FailureDomainSpec is the Schema for Cluster API failure
  2741                      domains. It allows controllers to understand how many failure
  2742                      domains a cluster can optionally span across.
  2743                    properties:
  2744                      attributes:
  2745                        additionalProperties:
  2746                          type: string
  2747                        description: Attributes is a free form map of attributes an
  2748                          infrastructure provider might use or require.
  2749                        type: object
  2750                      controlPlane:
  2751                        description: ControlPlane determines if this failure domain
  2752                          is suitable for use by control plane machines.
  2753                        type: boolean
  2754                    type: object
  2755                  description: FailureDomains is a slice of failure domain objects synced
  2756                    from the infrastructure provider.
  2757                  type: object
  2758                failureMessage:
  2759                  description: FailureMessage indicates that there is a fatal problem
  2760                    reconciling the state, and will be set to a descriptive error message.
  2761                  type: string
  2762                failureReason:
  2763                  description: FailureReason indicates that there is a fatal problem
  2764                    reconciling the state, and will be set to a token value suitable
  2765                    for programmatic interpretation.
  2766                  type: string
  2767                infrastructureReady:
  2768                  description: InfrastructureReady is the state of the infrastructure
  2769                    provider.
  2770                  type: boolean
  2771                observedGeneration:
  2772                  description: ObservedGeneration is the latest generation observed
  2773                    by the controller.
  2774                  format: int64
  2775                  type: integer
  2776                phase:
  2777                  description: Phase represents the current phase of cluster actuation.
  2778                    E.g. Pending, Running, Terminating, Failed etc.
  2779                  type: string
  2780              type: object
  2781          type: object
  2782      served: false
  2783      storage: false
  2784      subresources:
  2785        status: {}
  2786    - additionalPrinterColumns:
  2787      - description: Time duration since creation of Cluster
  2788        jsonPath: .metadata.creationTimestamp
  2789        name: Age
  2790        type: date
  2791      - description: Cluster status such as Pending/Provisioning/Provisioned/Deleting/Failed
  2792        jsonPath: .status.phase
  2793        name: Phase
  2794        type: string
  2795      deprecated: true
  2796      name: v1alpha4
  2797      schema:
  2798        openAPIV3Schema:
  2799          description: "Cluster is the Schema for the clusters API. \n Deprecated: This
  2800            type will be removed in one of the next releases."
  2801          properties:
  2802            apiVersion:
  2803              description: 'APIVersion defines the versioned schema of this representation
  2804                of an object. Servers should convert recognized schemas to the latest
  2805                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2806              type: string
  2807            kind:
  2808              description: 'Kind is a string value representing the REST resource this
  2809                object represents. Servers may infer this from the endpoint the client
  2810                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2811              type: string
  2812            metadata:
  2813              type: object
  2814            spec:
  2815              description: ClusterSpec defines the desired state of Cluster.
  2816              properties:
  2817                clusterNetwork:
  2818                  description: Cluster network configuration.
  2819                  properties:
  2820                    apiServerPort:
  2821                      description: APIServerPort specifies the port the API Server should
  2822                        bind to. Defaults to 6443.
  2823                      format: int32
  2824                      type: integer
  2825                    pods:
  2826                      description: The network ranges from which Pod networks are allocated.
  2827                      properties:
  2828                        cidrBlocks:
  2829                          items:
  2830                            type: string
  2831                          type: array
  2832                      required:
  2833                      - cidrBlocks
  2834                      type: object
  2835                    serviceDomain:
  2836                      description: Domain name for services.
  2837                      type: string
  2838                    services:
  2839                      description: The network ranges from which service VIPs are allocated.
  2840                      properties:
  2841                        cidrBlocks:
  2842                          items:
  2843                            type: string
  2844                          type: array
  2845                      required:
  2846                      - cidrBlocks
  2847                      type: object
  2848                  type: object
  2849                controlPlaneEndpoint:
  2850                  description: ControlPlaneEndpoint represents the endpoint used to
  2851                    communicate with the control plane.
  2852                  properties:
  2853                    host:
  2854                      description: The hostname on which the API server is serving.
  2855                      type: string
  2856                    port:
  2857                      description: The port on which the API server is serving.
  2858                      format: int32
  2859                      type: integer
  2860                  required:
  2861                  - host
  2862                  - port
  2863                  type: object
  2864                controlPlaneRef:
  2865                  description: ControlPlaneRef is an optional reference to a provider-specific
  2866                    resource that holds the details for provisioning the Control Plane
  2867                    for a Cluster.
  2868                  properties:
  2869                    apiVersion:
  2870                      description: API version of the referent.
  2871                      type: string
  2872                    fieldPath:
  2873                      description: 'If referring to a piece of an object instead of
  2874                        an entire object, this string should contain a valid JSON/Go
  2875                        field access statement, such as desiredState.manifest.containers[2].
  2876                        For example, if the object reference is to a container within
  2877                        a pod, this would take on a value like: "spec.containers{name}"
  2878                        (where "name" refers to the name of the container that triggered
  2879                        the event) or if no container name is specified "spec.containers[2]"
  2880                        (container with index 2 in this pod). This syntax is chosen
  2881                        only to have some well-defined way of referencing a part of
  2882                        an object. TODO: this design is not final and this field is
  2883                        subject to change in the future.'
  2884                      type: string
  2885                    kind:
  2886                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2887                      type: string
  2888                    name:
  2889                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2890                      type: string
  2891                    namespace:
  2892                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2893                      type: string
  2894                    resourceVersion:
  2895                      description: 'Specific resourceVersion to which this reference
  2896                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2897                      type: string
  2898                    uid:
  2899                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2900                      type: string
  2901                  type: object
  2902                  x-kubernetes-map-type: atomic
  2903                infrastructureRef:
  2904                  description: InfrastructureRef is a reference to a provider-specific
  2905                    resource that holds the details for provisioning infrastructure
  2906                    for a cluster in said provider.
  2907                  properties:
  2908                    apiVersion:
  2909                      description: API version of the referent.
  2910                      type: string
  2911                    fieldPath:
  2912                      description: 'If referring to a piece of an object instead of
  2913                        an entire object, this string should contain a valid JSON/Go
  2914                        field access statement, such as desiredState.manifest.containers[2].
  2915                        For example, if the object reference is to a container within
  2916                        a pod, this would take on a value like: "spec.containers{name}"
  2917                        (where "name" refers to the name of the container that triggered
  2918                        the event) or if no container name is specified "spec.containers[2]"
  2919                        (container with index 2 in this pod). This syntax is chosen
  2920                        only to have some well-defined way of referencing a part of
  2921                        an object. TODO: this design is not final and this field is
  2922                        subject to change in the future.'
  2923                      type: string
  2924                    kind:
  2925                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2926                      type: string
  2927                    name:
  2928                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2929                      type: string
  2930                    namespace:
  2931                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2932                      type: string
  2933                    resourceVersion:
  2934                      description: 'Specific resourceVersion to which this reference
  2935                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2936                      type: string
  2937                    uid:
  2938                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2939                      type: string
  2940                  type: object
  2941                  x-kubernetes-map-type: atomic
  2942                paused:
  2943                  description: Paused can be used to prevent controllers from processing
  2944                    the Cluster and all its associated objects.
  2945                  type: boolean
  2946                topology:
  2947                  description: 'This encapsulates the topology for the cluster. NOTE:
  2948                    It is required to enable the ClusterTopology feature gate flag to
  2949                    activate managed topologies support; this feature is highly experimental,
  2950                    and parts of it might still be not implemented.'
  2951                  properties:
  2952                    class:
  2953                      description: The name of the ClusterClass object to create the
  2954                        topology.
  2955                      type: string
  2956                    controlPlane:
  2957                      description: ControlPlane describes the cluster control plane.
  2958                      properties:
  2959                        metadata:
  2960                          description: "Metadata is the metadata applied to the machines
  2961                            of the ControlPlane. At runtime this metadata is merged
  2962                            with the corresponding metadata from the ClusterClass. \n
  2963                            This field is supported if and only if the control plane
  2964                            provider template referenced in the ClusterClass is Machine
  2965                            based."
  2966                          properties:
  2967                            annotations:
  2968                              additionalProperties:
  2969                                type: string
  2970                              description: 'Annotations is an unstructured key value
  2971                                map stored with a resource that may be set by external
  2972                                tools to store and retrieve arbitrary metadata. They
  2973                                are not queryable and should be preserved when modifying
  2974                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
  2975                              type: object
  2976                            labels:
  2977                              additionalProperties:
  2978                                type: string
  2979                              description: 'Map of string keys and values that can be
  2980                                used to organize and categorize (scope and select) objects.
  2981                                May match selectors of replication controllers and services.
  2982                                More info: http://kubernetes.io/docs/user-guide/labels'
  2983                              type: object
  2984                          type: object
  2985                        replicas:
  2986                          description: Replicas is the number of control plane nodes.
  2987                            If the value is nil, the ControlPlane object is created
  2988                            without the number of Replicas and it's assumed that the
  2989                            control plane controller does not implement support for
  2990                            this field. When specified against a control plane provider
  2991                            that lacks support for this field, this value will be ignored.
  2992                          format: int32
  2993                          type: integer
  2994                      type: object
  2995                    rolloutAfter:
  2996                      description: RolloutAfter performs a rollout of the entire cluster
  2997                        one component at a time, control plane first and then machine
  2998                        deployments.
  2999                      format: date-time
  3000                      type: string
  3001                    version:
  3002                      description: The Kubernetes version of the cluster.
  3003                      type: string
  3004                    workers:
  3005                      description: Workers encapsulates the different constructs that
  3006                        form the worker nodes for the cluster.
  3007                      properties:
  3008                        machineDeployments:
  3009                          description: MachineDeployments is a list of machine deployments
  3010                            in the cluster.
  3011                          items:
  3012                            description: MachineDeploymentTopology specifies the different
  3013                              parameters for a set of worker nodes in the topology.
  3014                              This set of nodes is managed by a MachineDeployment object
  3015                              whose lifecycle is managed by the Cluster controller.
  3016                            properties:
  3017                              class:
  3018                                description: Class is the name of the MachineDeploymentClass
  3019                                  used to create the set of worker nodes. This should
  3020                                  match one of the deployment classes defined in the
  3021                                  ClusterClass object mentioned in the `Cluster.Spec.Class`
  3022                                  field.
  3023                                type: string
  3024                              metadata:
  3025                                description: Metadata is the metadata applied to the
  3026                                  machines of the MachineDeployment. At runtime this
  3027                                  metadata is merged with the corresponding metadata
  3028                                  from the ClusterClass.
  3029                                properties:
  3030                                  annotations:
  3031                                    additionalProperties:
  3032                                      type: string
  3033                                    description: 'Annotations is an unstructured key
  3034                                      value map stored with a resource that may be set
  3035                                      by external tools to store and retrieve arbitrary
  3036                                      metadata. They are not queryable and should be
  3037                                      preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
  3038                                    type: object
  3039                                  labels:
  3040                                    additionalProperties:
  3041                                      type: string
  3042                                    description: 'Map of string keys and values that
  3043                                      can be used to organize and categorize (scope
  3044                                      and select) objects. May match selectors of replication
  3045                                      controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
  3046                                    type: object
  3047                                type: object
  3048                              name:
  3049                                description: Name is the unique identifier for this
  3050                                  MachineDeploymentTopology. The value is used with
  3051                                  other unique identifiers to create a MachineDeployment's
  3052                                  Name (e.g. cluster's name, etc). In case the name
  3053                                  is greater than the allowed maximum length, the values
  3054                                  are hashed together.
  3055                                type: string
  3056                              replicas:
  3057                                description: Replicas is the number of worker nodes
  3058                                  belonging to this set. If the value is nil, the MachineDeployment
  3059                                  is created without the number of Replicas (defaulting
  3060                                  to zero) and it's assumed that an external entity
  3061                                  (like cluster autoscaler) is responsible for the management
  3062                                  of this value.
  3063                                format: int32
  3064                                type: integer
  3065                            required:
  3066                            - class
  3067                            - name
  3068                            type: object
  3069                          type: array
  3070                      type: object
  3071                  required:
  3072                  - class
  3073                  - version
  3074                  type: object
  3075              type: object
  3076            status:
  3077              description: ClusterStatus defines the observed state of Cluster.
  3078              properties:
  3079                conditions:
  3080                  description: Conditions defines current service state of the cluster.
  3081                  items:
  3082                    description: Condition defines an observation of a Cluster API resource
  3083                      operational state.
  3084                    properties:
  3085                      lastTransitionTime:
  3086                        description: Last time the condition transitioned from one status
  3087                          to another. This should be when the underlying condition changed.
  3088                          If that is not known, then using the time when the API field
  3089                          changed is acceptable.
  3090                        format: date-time
  3091                        type: string
  3092                      message:
  3093                        description: A human readable message indicating details about
  3094                          the transition. This field may be empty.
  3095                        type: string
  3096                      reason:
  3097                        description: The reason for the condition's last transition
  3098                          in CamelCase. The specific API may choose whether or not this
  3099                          field is considered a guaranteed API. This field may not be
  3100                          empty.
  3101                        type: string
  3102                      severity:
  3103                        description: Severity provides an explicit classification of
  3104                          Reason code, so the users or machines can immediately understand
  3105                          the current situation and act accordingly. The Severity field
  3106                          MUST be set only when Status=False.
  3107                        type: string
  3108                      status:
  3109                        description: Status of the condition, one of True, False, Unknown.
  3110                        type: string
  3111                      type:
  3112                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  3113                          Many .condition.type values are consistent across resources
  3114                          like Available, but because arbitrary conditions can be useful
  3115                          (see .node.status.conditions), the ability to deconflict is
  3116                          important.
  3117                        type: string
  3118                    required:
  3119                    - status
  3120                    - type
  3121                    type: object
  3122                  type: array
  3123                controlPlaneReady:
  3124                  description: ControlPlaneReady defines if the control plane is ready.
  3125                  type: boolean
  3126                failureDomains:
  3127                  additionalProperties:
  3128                    description: FailureDomainSpec is the Schema for Cluster API failure
  3129                      domains. It allows controllers to understand how many failure
  3130                      domains a cluster can optionally span across.
  3131                    properties:
  3132                      attributes:
  3133                        additionalProperties:
  3134                          type: string
  3135                        description: Attributes is a free form map of attributes an
  3136                          infrastructure provider might use or require.
  3137                        type: object
  3138                      controlPlane:
  3139                        description: ControlPlane determines if this failure domain
  3140                          is suitable for use by control plane machines.
  3141                        type: boolean
  3142                    type: object
  3143                  description: FailureDomains is a slice of failure domain objects synced
  3144                    from the infrastructure provider.
  3145                  type: object
  3146                failureMessage:
  3147                  description: FailureMessage indicates that there is a fatal problem
  3148                    reconciling the state, and will be set to a descriptive error message.
  3149                  type: string
  3150                failureReason:
  3151                  description: FailureReason indicates that there is a fatal problem
  3152                    reconciling the state, and will be set to a token value suitable
  3153                    for programmatic interpretation.
  3154                  type: string
  3155                infrastructureReady:
  3156                  description: InfrastructureReady is the state of the infrastructure
  3157                    provider.
  3158                  type: boolean
  3159                observedGeneration:
  3160                  description: ObservedGeneration is the latest generation observed
  3161                    by the controller.
  3162                  format: int64
  3163                  type: integer
  3164                phase:
  3165                  description: Phase represents the current phase of cluster actuation.
  3166                    E.g. Pending, Running, Terminating, Failed etc.
  3167                  type: string
  3168              type: object
  3169          type: object
  3170      served: true
  3171      storage: false
  3172      subresources:
  3173        status: {}
  3174    - additionalPrinterColumns:
  3175      - description: Cluster status such as Pending/Provisioning/Provisioned/Deleting/Failed
  3176        jsonPath: .status.phase
  3177        name: Phase
  3178        type: string
  3179      - description: Time duration since creation of Cluster
  3180        jsonPath: .metadata.creationTimestamp
  3181        name: Age
  3182        type: date
  3183      - description: Kubernetes version associated with this Cluster
  3184        jsonPath: .spec.topology.version
  3185        name: Version
  3186        type: string
  3187      name: v1beta1
  3188      schema:
  3189        openAPIV3Schema:
  3190          description: Cluster is the Schema for the clusters API.
  3191          properties:
  3192            apiVersion:
  3193              description: 'APIVersion defines the versioned schema of this representation
  3194                of an object. Servers should convert recognized schemas to the latest
  3195                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3196              type: string
  3197            kind:
  3198              description: 'Kind is a string value representing the REST resource this
  3199                object represents. Servers may infer this from the endpoint the client
  3200                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3201              type: string
  3202            metadata:
  3203              type: object
  3204            spec:
  3205              description: ClusterSpec defines the desired state of Cluster.
  3206              properties:
  3207                clusterNetwork:
  3208                  description: Cluster network configuration.
  3209                  properties:
  3210                    apiServerPort:
  3211                      description: APIServerPort specifies the port the API Server should
  3212                        bind to. Defaults to 6443.
  3213                      format: int32
  3214                      type: integer
  3215                    pods:
  3216                      description: The network ranges from which Pod networks are allocated.
  3217                      properties:
  3218                        cidrBlocks:
  3219                          items:
  3220                            type: string
  3221                          type: array
  3222                      required:
  3223                      - cidrBlocks
  3224                      type: object
  3225                    serviceDomain:
  3226                      description: Domain name for services.
  3227                      type: string
  3228                    services:
  3229                      description: The network ranges from which service VIPs are allocated.
  3230                      properties:
  3231                        cidrBlocks:
  3232                          items:
  3233                            type: string
  3234                          type: array
  3235                      required:
  3236                      - cidrBlocks
  3237                      type: object
  3238                  type: object
  3239                controlPlaneEndpoint:
  3240                  description: ControlPlaneEndpoint represents the endpoint used to
  3241                    communicate with the control plane.
  3242                  properties:
  3243                    host:
  3244                      description: The hostname on which the API server is serving.
  3245                      type: string
  3246                    port:
  3247                      description: The port on which the API server is serving.
  3248                      format: int32
  3249                      type: integer
  3250                  required:
  3251                  - host
  3252                  - port
  3253                  type: object
  3254                controlPlaneRef:
  3255                  description: ControlPlaneRef is an optional reference to a provider-specific
  3256                    resource that holds the details for provisioning the Control Plane
  3257                    for a Cluster.
  3258                  properties:
  3259                    apiVersion:
  3260                      description: API version of the referent.
  3261                      type: string
  3262                    fieldPath:
  3263                      description: 'If referring to a piece of an object instead of
  3264                        an entire object, this string should contain a valid JSON/Go
  3265                        field access statement, such as desiredState.manifest.containers[2].
  3266                        For example, if the object reference is to a container within
  3267                        a pod, this would take on a value like: "spec.containers{name}"
  3268                        (where "name" refers to the name of the container that triggered
  3269                        the event) or if no container name is specified "spec.containers[2]"
  3270                        (container with index 2 in this pod). This syntax is chosen
  3271                        only to have some well-defined way of referencing a part of
  3272                        an object. TODO: this design is not final and this field is
  3273                        subject to change in the future.'
  3274                      type: string
  3275                    kind:
  3276                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3277                      type: string
  3278                    name:
  3279                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3280                      type: string
  3281                    namespace:
  3282                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  3283                      type: string
  3284                    resourceVersion:
  3285                      description: 'Specific resourceVersion to which this reference
  3286                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  3287                      type: string
  3288                    uid:
  3289                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  3290                      type: string
  3291                  type: object
  3292                  x-kubernetes-map-type: atomic
  3293                infrastructureRef:
  3294                  description: InfrastructureRef is a reference to a provider-specific
  3295                    resource that holds the details for provisioning infrastructure
  3296                    for a cluster in said provider.
  3297                  properties:
  3298                    apiVersion:
  3299                      description: API version of the referent.
  3300                      type: string
  3301                    fieldPath:
  3302                      description: 'If referring to a piece of an object instead of
  3303                        an entire object, this string should contain a valid JSON/Go
  3304                        field access statement, such as desiredState.manifest.containers[2].
  3305                        For example, if the object reference is to a container within
  3306                        a pod, this would take on a value like: "spec.containers{name}"
  3307                        (where "name" refers to the name of the container that triggered
  3308                        the event) or if no container name is specified "spec.containers[2]"
  3309                        (container with index 2 in this pod). This syntax is chosen
  3310                        only to have some well-defined way of referencing a part of
  3311                        an object. TODO: this design is not final and this field is
  3312                        subject to change in the future.'
  3313                      type: string
  3314                    kind:
  3315                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3316                      type: string
  3317                    name:
  3318                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3319                      type: string
  3320                    namespace:
  3321                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  3322                      type: string
  3323                    resourceVersion:
  3324                      description: 'Specific resourceVersion to which this reference
  3325                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  3326                      type: string
  3327                    uid:
  3328                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  3329                      type: string
  3330                  type: object
  3331                  x-kubernetes-map-type: atomic
  3332                paused:
  3333                  description: Paused can be used to prevent controllers from processing
  3334                    the Cluster and all its associated objects.
  3335                  type: boolean
  3336                topology:
  3337                  description: 'This encapsulates the topology for the cluster. NOTE:
  3338                    It is required to enable the ClusterTopology feature gate flag to
  3339                    activate managed topologies support; this feature is highly experimental,
  3340                    and parts of it might still be not implemented.'
  3341                  properties:
  3342                    class:
  3343                      description: The name of the ClusterClass object to create the
  3344                        topology.
  3345                      type: string
  3346                    controlPlane:
  3347                      description: ControlPlane describes the cluster control plane.
  3348                      properties:
  3349                        machineHealthCheck:
  3350                          description: MachineHealthCheck allows to enable, disable
  3351                            and override the MachineHealthCheck configuration in the
  3352                            ClusterClass for this control plane.
  3353                          properties:
  3354                            enable:
  3355                              description: "Enable controls if a MachineHealthCheck
  3356                                should be created for the target machines. \n If false:
  3357                                No MachineHealthCheck will be created. \n If not set(default):
  3358                                A MachineHealthCheck will be created if it is defined
  3359                                here or in the associated ClusterClass. If no MachineHealthCheck
  3360                                is defined then none will be created. \n If true: A
  3361                                MachineHealthCheck is guaranteed to be created. Cluster
  3362                                validation will block if `enable` is true and no MachineHealthCheck
  3363                                definition is available."
  3364                              type: boolean
  3365                            maxUnhealthy:
  3366                              anyOf:
  3367                              - type: integer
  3368                              - type: string
  3369                              description: Any further remediation is only allowed if
  3370                                at most "MaxUnhealthy" machines selected by "selector"
  3371                                are not healthy.
  3372                              x-kubernetes-int-or-string: true
  3373                            nodeStartupTimeout:
  3374                              description: Machines older than this duration without
  3375                                a node will be considered to have failed and will be
  3376                                remediated. If you wish to disable this feature, set
  3377                                the value explicitly to 0.
  3378                              type: string
  3379                            remediationTemplate:
  3380                              description: "RemediationTemplate is a reference to a
  3381                                remediation template provided by an infrastructure provider.
  3382                                \n This field is completely optional, when filled, the
  3383                                MachineHealthCheck controller creates a new object from
  3384                                the template referenced and hands off remediation of
  3385                                the machine to a controller that lives outside of Cluster
  3386                                API."
  3387                              properties:
  3388                                apiVersion:
  3389                                  description: API version of the referent.
  3390                                  type: string
  3391                                fieldPath:
  3392                                  description: 'If referring to a piece of an object
  3393                                    instead of an entire object, this string should
  3394                                    contain a valid JSON/Go field access statement,
  3395                                    such as desiredState.manifest.containers[2]. For
  3396                                    example, if the object reference is to a container
  3397                                    within a pod, this would take on a value like: "spec.containers{name}"
  3398                                    (where "name" refers to the name of the container
  3399                                    that triggered the event) or if no container name
  3400                                    is specified "spec.containers[2]" (container with
  3401                                    index 2 in this pod). This syntax is chosen only
  3402                                    to have some well-defined way of referencing a part
  3403                                    of an object. TODO: this design is not final and
  3404                                    this field is subject to change in the future.'
  3405                                  type: string
  3406                                kind:
  3407                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3408                                  type: string
  3409                                name:
  3410                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3411                                  type: string
  3412                                namespace:
  3413                                  description: 'Namespace of the referent. More info:
  3414                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  3415                                  type: string
  3416                                resourceVersion:
  3417                                  description: 'Specific resourceVersion to which this
  3418                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  3419                                  type: string
  3420                                uid:
  3421                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  3422                                  type: string
  3423                              type: object
  3424                              x-kubernetes-map-type: atomic
  3425                            unhealthyConditions:
  3426                              description: UnhealthyConditions contains a list of the
  3427                                conditions that determine whether a node is considered
  3428                                unhealthy. The conditions are combined in a logical
  3429                                OR, i.e. if any of the conditions is met, the node is
  3430                                unhealthy.
  3431                              items:
  3432                                description: UnhealthyCondition represents a Node condition
  3433                                  type and value with a timeout specified as a duration.  When
  3434                                  the named condition has been in the given status for
  3435                                  at least the timeout value, a node is considered unhealthy.
  3436                                properties:
  3437                                  status:
  3438                                    minLength: 1
  3439                                    type: string
  3440                                  timeout:
  3441                                    type: string
  3442                                  type:
  3443                                    minLength: 1
  3444                                    type: string
  3445                                required:
  3446                                - status
  3447                                - timeout
  3448                                - type
  3449                                type: object
  3450                              type: array
  3451                            unhealthyRange:
  3452                              description: 'Any further remediation is only allowed
  3453                                if the number of machines selected by "selector" as
  3454                                not healthy is within the range of "UnhealthyRange".
  3455                                Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This
  3456                                means that remediation will be allowed only when: (a)
  3457                                there are at least 3 unhealthy machines (and) (b) there
  3458                                are at most 5 unhealthy machines'
  3459                              pattern: ^\[[0-9]+-[0-9]+\]$
  3460                              type: string
  3461                          type: object
  3462                        metadata:
  3463                          description: Metadata is the metadata applied to the ControlPlane
  3464                            and the Machines of the ControlPlane if the ControlPlaneTemplate
  3465                            referenced by the ClusterClass is machine based. If not,
  3466                            it is applied only to the ControlPlane. At runtime this
  3467                            metadata is merged with the corresponding metadata from
  3468                            the ClusterClass.
  3469                          properties:
  3470                            annotations:
  3471                              additionalProperties:
  3472                                type: string
  3473                              description: 'Annotations is an unstructured key value
  3474                                map stored with a resource that may be set by external
  3475                                tools to store and retrieve arbitrary metadata. They
  3476                                are not queryable and should be preserved when modifying
  3477                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
  3478                              type: object
  3479                            labels:
  3480                              additionalProperties:
  3481                                type: string
  3482                              description: 'Map of string keys and values that can be
  3483                                used to organize and categorize (scope and select) objects.
  3484                                May match selectors of replication controllers and services.
  3485                                More info: http://kubernetes.io/docs/user-guide/labels'
  3486                              type: object
  3487                          type: object
  3488                        nodeDeletionTimeout:
  3489                          description: NodeDeletionTimeout defines how long the controller
  3490                            will attempt to delete the Node that the Machine hosts after
  3491                            the Machine is marked for deletion. A duration of 0 will
  3492                            retry deletion indefinitely. Defaults to 10 seconds.
  3493                          type: string
  3494                        nodeDrainTimeout:
  3495                          description: 'NodeDrainTimeout is the total amount of time
  3496                            that the controller will spend on draining a node. The default
  3497                            value is 0, meaning that the node can be drained without
  3498                            any time limitations. NOTE: NodeDrainTimeout is different
  3499                            from `kubectl drain --timeout`'
  3500                          type: string
  3501                        nodeVolumeDetachTimeout:
  3502                          description: NodeVolumeDetachTimeout is the total amount of
  3503                            time that the controller will spend on waiting for all volumes
  3504                            to be detached. The default value is 0, meaning that the
  3505                            volumes can be detached without any time limitations.
  3506                          type: string
  3507                        replicas:
  3508                          description: Replicas is the number of control plane nodes.
  3509                            If the value is nil, the ControlPlane object is created
  3510                            without the number of Replicas and it's assumed that the
  3511                            control plane controller does not implement support for
  3512                            this field. When specified against a control plane provider
  3513                            that lacks support for this field, this value will be ignored.
  3514                          format: int32
  3515                          type: integer
  3516                      type: object
  3517                    rolloutAfter:
  3518                      description: "RolloutAfter performs a rollout of the entire cluster
  3519                        one component at a time, control plane first and then machine
  3520                        deployments. \n Deprecated: This field has no function and is
  3521                        going to be removed in the next apiVersion."
  3522                      format: date-time
  3523                      type: string
  3524                    variables:
  3525                      description: Variables can be used to customize the Cluster through
  3526                        patches. They must comply to the corresponding VariableClasses
  3527                        defined in the ClusterClass.
  3528                      items:
  3529                        description: ClusterVariable can be used to customize the Cluster
  3530                          through patches. Each ClusterVariable is associated with a
  3531                          Variable definition in the ClusterClass `status` variables.
  3532                        properties:
  3533                          definitionFrom:
  3534                            description: 'DefinitionFrom specifies where the definition
  3535                              of this Variable is from. DefinitionFrom is `inline` when
  3536                              the definition is from the ClusterClass `.spec.variables`
  3537                              or the name of a patch defined in the ClusterClass `.spec.patches`
  3538                              where the patch is external and provides external variables.
  3539                              This field is mandatory if the variable has `DefinitionsConflict:
  3540                              true` in ClusterClass `status.variables[]`'
  3541                            type: string
  3542                          name:
  3543                            description: Name of the variable.
  3544                            type: string
  3545                          value:
  3546                            description: 'Value of the variable. Note: the value will
  3547                              be validated against the schema of the corresponding ClusterClassVariable
  3548                              from the ClusterClass. Note: We have to use apiextensionsv1.JSON
  3549                              instead of a custom JSON type, because controller-tools
  3550                              has a hard-coded schema for apiextensionsv1.JSON which
  3551                              cannot be produced by another type via controller-tools,
  3552                              i.e. it is not possible to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111'
  3553                            x-kubernetes-preserve-unknown-fields: true
  3554                        required:
  3555                        - name
  3556                        - value
  3557                        type: object
  3558                      type: array
  3559                    version:
  3560                      description: The Kubernetes version of the cluster.
  3561                      type: string
  3562                    workers:
  3563                      description: Workers encapsulates the different constructs that
  3564                        form the worker nodes for the cluster.
  3565                      properties:
  3566                        machineDeployments:
  3567                          description: MachineDeployments is a list of machine deployments
  3568                            in the cluster.
  3569                          items:
  3570                            description: MachineDeploymentTopology specifies the different
  3571                              parameters for a set of worker nodes in the topology.
  3572                              This set of nodes is managed by a MachineDeployment object
  3573                              whose lifecycle is managed by the Cluster controller.
  3574                            properties:
  3575                              class:
  3576                                description: Class is the name of the MachineDeploymentClass
  3577                                  used to create the set of worker nodes. This should
  3578                                  match one of the deployment classes defined in the
  3579                                  ClusterClass object mentioned in the `Cluster.Spec.Class`
  3580                                  field.
  3581                                type: string
  3582                              failureDomain:
  3583                                description: FailureDomain is the failure domain the
  3584                                  machines will be created in. Must match a key in the
  3585                                  FailureDomains map stored on the cluster object.
  3586                                type: string
  3587                              machineHealthCheck:
  3588                                description: MachineHealthCheck allows to enable, disable
  3589                                  and override the MachineHealthCheck configuration
  3590                                  in the ClusterClass for this MachineDeployment.
  3591                                properties:
  3592                                  enable:
  3593                                    description: "Enable controls if a MachineHealthCheck
  3594                                      should be created for the target machines. \n
  3595                                      If false: No MachineHealthCheck will be created.
  3596                                      \n If not set(default): A MachineHealthCheck will
  3597                                      be created if it is defined here or in the associated
  3598                                      ClusterClass. If no MachineHealthCheck is defined
  3599                                      then none will be created. \n If true: A MachineHealthCheck
  3600                                      is guaranteed to be created. Cluster validation
  3601                                      will block if `enable` is true and no MachineHealthCheck
  3602                                      definition is available."
  3603                                    type: boolean
  3604                                  maxUnhealthy:
  3605                                    anyOf:
  3606                                    - type: integer
  3607                                    - type: string
  3608                                    description: Any further remediation is only allowed
  3609                                      if at most "MaxUnhealthy" machines selected by
  3610                                      "selector" are not healthy.
  3611                                    x-kubernetes-int-or-string: true
  3612                                  nodeStartupTimeout:
  3613                                    description: Machines older than this duration without
  3614                                      a node will be considered to have failed and will
  3615                                      be remediated. If you wish to disable this feature,
  3616                                      set the value explicitly to 0.
  3617                                    type: string
  3618                                  remediationTemplate:
  3619                                    description: "RemediationTemplate is a reference
  3620                                      to a remediation template provided by an infrastructure
  3621                                      provider. \n This field is completely optional,
  3622                                      when filled, the MachineHealthCheck controller
  3623                                      creates a new object from the template referenced
  3624                                      and hands off remediation of the machine to a
  3625                                      controller that lives outside of Cluster API."
  3626                                    properties:
  3627                                      apiVersion:
  3628                                        description: API version of the referent.
  3629                                        type: string
  3630                                      fieldPath:
  3631                                        description: 'If referring to a piece of an
  3632                                          object instead of an entire object, this string
  3633                                          should contain a valid JSON/Go field access
  3634                                          statement, such as desiredState.manifest.containers[2].
  3635                                          For example, if the object reference is to
  3636                                          a container within a pod, this would take
  3637                                          on a value like: "spec.containers{name}" (where
  3638                                          "name" refers to the name of the container
  3639                                          that triggered the event) or if no container
  3640                                          name is specified "spec.containers[2]" (container
  3641                                          with index 2 in this pod). This syntax is
  3642                                          chosen only to have some well-defined way
  3643                                          of referencing a part of an object. TODO:
  3644                                          this design is not final and this field is
  3645                                          subject to change in the future.'
  3646                                        type: string
  3647                                      kind:
  3648                                        description: 'Kind of the referent. More info:
  3649                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3650                                        type: string
  3651                                      name:
  3652                                        description: 'Name of the referent. More info:
  3653                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3654                                        type: string
  3655                                      namespace:
  3656                                        description: 'Namespace of the referent. More
  3657                                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  3658                                        type: string
  3659                                      resourceVersion:
  3660                                        description: 'Specific resourceVersion to which
  3661                                          this reference is made, if any. More info:
  3662                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  3663                                        type: string
  3664                                      uid:
  3665                                        description: 'UID of the referent. More info:
  3666                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  3667                                        type: string
  3668                                    type: object
  3669                                    x-kubernetes-map-type: atomic
  3670                                  unhealthyConditions:
  3671                                    description: UnhealthyConditions contains a list
  3672                                      of the conditions that determine whether a node
  3673                                      is considered unhealthy. The conditions are combined
  3674                                      in a logical OR, i.e. if any of the conditions
  3675                                      is met, the node is unhealthy.
  3676                                    items:
  3677                                      description: UnhealthyCondition represents a Node
  3678                                        condition type and value with a timeout specified
  3679                                        as a duration.  When the named condition has
  3680                                        been in the given status for at least the timeout
  3681                                        value, a node is considered unhealthy.
  3682                                      properties:
  3683                                        status:
  3684                                          minLength: 1
  3685                                          type: string
  3686                                        timeout:
  3687                                          type: string
  3688                                        type:
  3689                                          minLength: 1
  3690                                          type: string
  3691                                      required:
  3692                                      - status
  3693                                      - timeout
  3694                                      - type
  3695                                      type: object
  3696                                    type: array
  3697                                  unhealthyRange:
  3698                                    description: 'Any further remediation is only allowed
  3699                                      if the number of machines selected by "selector"
  3700                                      as not healthy is within the range of "UnhealthyRange".
  3701                                      Takes precedence over MaxUnhealthy. Eg. "[3-5]"
  3702                                      - This means that remediation will be allowed
  3703                                      only when: (a) there are at least 3 unhealthy
  3704                                      machines (and) (b) there are at most 5 unhealthy
  3705                                      machines'
  3706                                    pattern: ^\[[0-9]+-[0-9]+\]$
  3707                                    type: string
  3708                                type: object
  3709                              metadata:
  3710                                description: Metadata is the metadata applied to the
  3711                                  MachineDeployment and the machines of the MachineDeployment.
  3712                                  At runtime this metadata is merged with the corresponding
  3713                                  metadata from the ClusterClass.
  3714                                properties:
  3715                                  annotations:
  3716                                    additionalProperties:
  3717                                      type: string
  3718                                    description: 'Annotations is an unstructured key
  3719                                      value map stored with a resource that may be set
  3720                                      by external tools to store and retrieve arbitrary
  3721                                      metadata. They are not queryable and should be
  3722                                      preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
  3723                                    type: object
  3724                                  labels:
  3725                                    additionalProperties:
  3726                                      type: string
  3727                                    description: 'Map of string keys and values that
  3728                                      can be used to organize and categorize (scope
  3729                                      and select) objects. May match selectors of replication
  3730                                      controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
  3731                                    type: object
  3732                                type: object
  3733                              minReadySeconds:
  3734                                description: Minimum number of seconds for which a newly
  3735                                  created machine should be ready. Defaults to 0 (machine
  3736                                  will be considered available as soon as it is ready)
  3737                                format: int32
  3738                                type: integer
  3739                              name:
  3740                                description: Name is the unique identifier for this
  3741                                  MachineDeploymentTopology. The value is used with
  3742                                  other unique identifiers to create a MachineDeployment's
  3743                                  Name (e.g. cluster's name, etc). In case the name
  3744                                  is greater than the allowed maximum length, the values
  3745                                  are hashed together.
  3746                                type: string
  3747                              nodeDeletionTimeout:
  3748                                description: NodeDeletionTimeout defines how long the
  3749                                  controller will attempt to delete the Node that the
  3750                                  Machine hosts after the Machine is marked for deletion.
  3751                                  A duration of 0 will retry deletion indefinitely.
  3752                                  Defaults to 10 seconds.
  3753                                type: string
  3754                              nodeDrainTimeout:
  3755                                description: 'NodeDrainTimeout is the total amount of
  3756                                  time that the controller will spend on draining a
  3757                                  node. The default value is 0, meaning that the node
  3758                                  can be drained without any time limitations. NOTE:
  3759                                  NodeDrainTimeout is different from `kubectl drain
  3760                                  --timeout`'
  3761                                type: string
  3762                              nodeVolumeDetachTimeout:
  3763                                description: NodeVolumeDetachTimeout is the total amount
  3764                                  of time that the controller will spend on waiting
  3765                                  for all volumes to be detached. The default value
  3766                                  is 0, meaning that the volumes can be detached without
  3767                                  any time limitations.
  3768                                type: string
  3769                              replicas:
  3770                                description: Replicas is the number of worker nodes
  3771                                  belonging to this set. If the value is nil, the MachineDeployment
  3772                                  is created without the number of Replicas (defaulting
  3773                                  to 1) and it's assumed that an external entity (like
  3774                                  cluster autoscaler) is responsible for the management
  3775                                  of this value.
  3776                                format: int32
  3777                                type: integer
  3778                              strategy:
  3779                                description: The deployment strategy to use to replace
  3780                                  existing machines with new ones.
  3781                                properties:
  3782                                  rollingUpdate:
  3783                                    description: Rolling update config params. Present
  3784                                      only if MachineDeploymentStrategyType = RollingUpdate.
  3785                                    properties:
  3786                                      deletePolicy:
  3787                                        description: DeletePolicy defines the policy
  3788                                          used by the MachineDeployment to identify
  3789                                          nodes to delete when downscaling. Valid values
  3790                                          are "Random, "Newest", "Oldest" When no value
  3791                                          is supplied, the default DeletePolicy of MachineSet
  3792                                          is used
  3793                                        enum:
  3794                                        - Random
  3795                                        - Newest
  3796                                        - Oldest
  3797                                        type: string
  3798                                      maxSurge:
  3799                                        anyOf:
  3800                                        - type: integer
  3801                                        - type: string
  3802                                        description: 'The maximum number of machines
  3803                                          that can be scheduled above the desired number
  3804                                          of machines. Value can be an absolute number
  3805                                          (ex: 5) or a percentage of desired machines
  3806                                          (ex: 10%). This can not be 0 if MaxUnavailable
  3807                                          is 0. Absolute number is calculated from percentage
  3808                                          by rounding up. Defaults to 1. Example: when
  3809                                          this is set to 30%, the new MachineSet can
  3810                                          be scaled up immediately when the rolling
  3811                                          update starts, such that the total number
  3812                                          of old and new machines do not exceed 130%
  3813                                          of desired machines. Once old machines have
  3814                                          been killed, new MachineSet can be scaled
  3815                                          up further, ensuring that total number of
  3816                                          machines running at any time during the update
  3817                                          is at most 130% of desired machines.'
  3818                                        x-kubernetes-int-or-string: true
  3819                                      maxUnavailable:
  3820                                        anyOf:
  3821                                        - type: integer
  3822                                        - type: string
  3823                                        description: 'The maximum number of machines
  3824                                          that can be unavailable during the update.
  3825                                          Value can be an absolute number (ex: 5) or
  3826                                          a percentage of desired machines (ex: 10%).
  3827                                          Absolute number is calculated from percentage
  3828                                          by rounding down. This can not be 0 if MaxSurge
  3829                                          is 0. Defaults to 0. Example: when this is
  3830                                          set to 30%, the old MachineSet can be scaled
  3831                                          down to 70% of desired machines immediately
  3832                                          when the rolling update starts. Once new machines
  3833                                          are ready, old MachineSet can be scaled down
  3834                                          further, followed by scaling up the new MachineSet,
  3835                                          ensuring that the total number of machines
  3836                                          available at all times during the update is
  3837                                          at least 70% of desired machines.'
  3838                                        x-kubernetes-int-or-string: true
  3839                                    type: object
  3840                                  type:
  3841                                    description: Type of deployment. Default is RollingUpdate.
  3842                                    enum:
  3843                                    - RollingUpdate
  3844                                    - OnDelete
  3845                                    type: string
  3846                                type: object
  3847                              variables:
  3848                                description: Variables can be used to customize the
  3849                                  MachineDeployment through patches.
  3850                                properties:
  3851                                  overrides:
  3852                                    description: Overrides can be used to override Cluster
  3853                                      level variables.
  3854                                    items:
  3855                                      description: ClusterVariable can be used to customize
  3856                                        the Cluster through patches. Each ClusterVariable
  3857                                        is associated with a Variable definition in
  3858                                        the ClusterClass `status` variables.
  3859                                      properties:
  3860                                        definitionFrom:
  3861                                          description: 'DefinitionFrom specifies where
  3862                                            the definition of this Variable is from.
  3863                                            DefinitionFrom is `inline` when the definition
  3864                                            is from the ClusterClass `.spec.variables`
  3865                                            or the name of a patch defined in the ClusterClass
  3866                                            `.spec.patches` where the patch is external
  3867                                            and provides external variables. This field
  3868                                            is mandatory if the variable has `DefinitionsConflict:
  3869                                            true` in ClusterClass `status.variables[]`'
  3870                                          type: string
  3871                                        name:
  3872                                          description: Name of the variable.
  3873                                          type: string
  3874                                        value:
  3875                                          description: 'Value of the variable. Note:
  3876                                            the value will be validated against the
  3877                                            schema of the corresponding ClusterClassVariable
  3878                                            from the ClusterClass. Note: We have to
  3879                                            use apiextensionsv1.JSON instead of a custom
  3880                                            JSON type, because controller-tools has
  3881                                            a hard-coded schema for apiextensionsv1.JSON
  3882                                            which cannot be produced by another type
  3883                                            via controller-tools, i.e. it is not possible
  3884                                            to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111'
  3885                                          x-kubernetes-preserve-unknown-fields: true
  3886                                      required:
  3887                                      - name
  3888                                      - value
  3889                                      type: object
  3890                                    type: array
  3891                                type: object
  3892                            required:
  3893                            - class
  3894                            - name
  3895                            type: object
  3896                          type: array
  3897                      type: object
  3898                  required:
  3899                  - class
  3900                  - version
  3901                  type: object
  3902              type: object
  3903            status:
  3904              description: ClusterStatus defines the observed state of Cluster.
  3905              properties:
  3906                conditions:
  3907                  description: Conditions defines current service state of the cluster.
  3908                  items:
  3909                    description: Condition defines an observation of a Cluster API resource
  3910                      operational state.
  3911                    properties:
  3912                      lastTransitionTime:
  3913                        description: Last time the condition transitioned from one status
  3914                          to another. This should be when the underlying condition changed.
  3915                          If that is not known, then using the time when the API field
  3916                          changed is acceptable.
  3917                        format: date-time
  3918                        type: string
  3919                      message:
  3920                        description: A human readable message indicating details about
  3921                          the transition. This field may be empty.
  3922                        type: string
  3923                      reason:
  3924                        description: The reason for the condition's last transition
  3925                          in CamelCase. The specific API may choose whether or not this
  3926                          field is considered a guaranteed API. This field may not be
  3927                          empty.
  3928                        type: string
  3929                      severity:
  3930                        description: Severity provides an explicit classification of
  3931                          Reason code, so the users or machines can immediately understand
  3932                          the current situation and act accordingly. The Severity field
  3933                          MUST be set only when Status=False.
  3934                        type: string
  3935                      status:
  3936                        description: Status of the condition, one of True, False, Unknown.
  3937                        type: string
  3938                      type:
  3939                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  3940                          Many .condition.type values are consistent across resources
  3941                          like Available, but because arbitrary conditions can be useful
  3942                          (see .node.status.conditions), the ability to deconflict is
  3943                          important.
  3944                        type: string
  3945                    required:
  3946                    - lastTransitionTime
  3947                    - status
  3948                    - type
  3949                    type: object
  3950                  type: array
  3951                controlPlaneReady:
  3952                  description: ControlPlaneReady defines if the control plane is ready.
  3953                  type: boolean
  3954                failureDomains:
  3955                  additionalProperties:
  3956                    description: FailureDomainSpec is the Schema for Cluster API failure
  3957                      domains. It allows controllers to understand how many failure
  3958                      domains a cluster can optionally span across.
  3959                    properties:
  3960                      attributes:
  3961                        additionalProperties:
  3962                          type: string
  3963                        description: Attributes is a free form map of attributes an
  3964                          infrastructure provider might use or require.
  3965                        type: object
  3966                      controlPlane:
  3967                        description: ControlPlane determines if this failure domain
  3968                          is suitable for use by control plane machines.
  3969                        type: boolean
  3970                    type: object
  3971                  description: FailureDomains is a slice of failure domain objects synced
  3972                    from the infrastructure provider.
  3973                  type: object
  3974                failureMessage:
  3975                  description: FailureMessage indicates that there is a fatal problem
  3976                    reconciling the state, and will be set to a descriptive error message.
  3977                  type: string
  3978                failureReason:
  3979                  description: FailureReason indicates that there is a fatal problem
  3980                    reconciling the state, and will be set to a token value suitable
  3981                    for programmatic interpretation.
  3982                  type: string
  3983                infrastructureReady:
  3984                  description: InfrastructureReady is the state of the infrastructure
  3985                    provider.
  3986                  type: boolean
  3987                observedGeneration:
  3988                  description: ObservedGeneration is the latest generation observed
  3989                    by the controller.
  3990                  format: int64
  3991                  type: integer
  3992                phase:
  3993                  description: Phase represents the current phase of cluster actuation.
  3994                    E.g. Pending, Running, Terminating, Failed etc.
  3995                  type: string
  3996              type: object
  3997          type: object
  3998      served: true
  3999      storage: true
  4000      subresources:
  4001        status: {}
  4002  ---
  4003  apiVersion: apiextensions.k8s.io/v1
  4004  kind: CustomResourceDefinition
  4005  metadata:
  4006    annotations:
  4007      controller-gen.kubebuilder.io/version: v0.12.0
  4008    labels:
  4009      cluster.x-k8s.io/provider: cluster-api
  4010    name: extensionconfigs.runtime.cluster.x-k8s.io
  4011  spec:
  4012    group: runtime.cluster.x-k8s.io
  4013    names:
  4014      categories:
  4015      - cluster-api
  4016      kind: ExtensionConfig
  4017      listKind: ExtensionConfigList
  4018      plural: extensionconfigs
  4019      shortNames:
  4020      - ext
  4021      singular: extensionconfig
  4022    scope: Cluster
  4023    versions:
  4024    - additionalPrinterColumns:
  4025      - description: Time duration since creation of ExtensionConfig
  4026        jsonPath: .metadata.creationTimestamp
  4027        name: Age
  4028        type: date
  4029      name: v1alpha1
  4030      schema:
  4031        openAPIV3Schema:
  4032          description: ExtensionConfig is the Schema for the ExtensionConfig API.
  4033          properties:
  4034            apiVersion:
  4035              description: 'APIVersion defines the versioned schema of this representation
  4036                of an object. Servers should convert recognized schemas to the latest
  4037                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4038              type: string
  4039            kind:
  4040              description: 'Kind is a string value representing the REST resource this
  4041                object represents. Servers may infer this from the endpoint the client
  4042                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4043              type: string
  4044            metadata:
  4045              type: object
  4046            spec:
  4047              description: ExtensionConfigSpec is the desired state of the ExtensionConfig
  4048              properties:
  4049                clientConfig:
  4050                  description: ClientConfig defines how to communicate with the Extension
  4051                    server.
  4052                  properties:
  4053                    caBundle:
  4054                      description: CABundle is a PEM encoded CA bundle which will be
  4055                        used to validate the Extension server's server certificate.
  4056                      format: byte
  4057                      type: string
  4058                    service:
  4059                      description: "Service is a reference to the Kubernetes service
  4060                        for the Extension server. Note: Exactly one of `url` or `service`
  4061                        must be specified. \n If the Extension server is running within
  4062                        a cluster, then you should use `service`."
  4063                      properties:
  4064                        name:
  4065                          description: Name is the name of the service.
  4066                          type: string
  4067                        namespace:
  4068                          description: Namespace is the namespace of the service.
  4069                          type: string
  4070                        path:
  4071                          description: Path is an optional URL path and if present may
  4072                            be any string permissible in a URL. If a path is set it
  4073                            will be used as prefix to the hook-specific path.
  4074                          type: string
  4075                        port:
  4076                          description: Port is the port on the service that's hosting
  4077                            the Extension server. Defaults to 443. Port should be a
  4078                            valid port number (1-65535, inclusive).
  4079                          format: int32
  4080                          type: integer
  4081                      required:
  4082                      - name
  4083                      - namespace
  4084                      type: object
  4085                    url:
  4086                      description: "URL gives the location of the Extension server,
  4087                        in standard URL form (`scheme://host:port/path`). Note: Exactly
  4088                        one of `url` or `service` must be specified. \n The scheme must
  4089                        be \"https\". \n The `host` should not refer to a service running
  4090                        in the cluster; use the `service` field instead. \n A path is
  4091                        optional, and if present may be any string permissible in a
  4092                        URL. If a path is set it will be used as prefix to the hook-specific
  4093                        path. \n Attempting to use a user or basic auth e.g. \"user:password@\"
  4094                        is not allowed. Fragments (\"#...\") and query parameters (\"?...\")
  4095                        are not allowed either."
  4096                      type: string
  4097                  type: object
  4098                namespaceSelector:
  4099                  description: NamespaceSelector decides whether to call the hook for
  4100                    an object based on whether the namespace for that object matches
  4101                    the selector. Defaults to the empty LabelSelector, which matches
  4102                    all objects.
  4103                  properties:
  4104                    matchExpressions:
  4105                      description: matchExpressions is a list of label selector requirements.
  4106                        The requirements are ANDed.
  4107                      items:
  4108                        description: A label selector requirement is a selector that
  4109                          contains values, a key, and an operator that relates the key
  4110                          and values.
  4111                        properties:
  4112                          key:
  4113                            description: key is the label key that the selector applies
  4114                              to.
  4115                            type: string
  4116                          operator:
  4117                            description: operator represents a key's relationship to
  4118                              a set of values. Valid operators are In, NotIn, Exists
  4119                              and DoesNotExist.
  4120                            type: string
  4121                          values:
  4122                            description: values is an array of string values. If the
  4123                              operator is In or NotIn, the values array must be non-empty.
  4124                              If the operator is Exists or DoesNotExist, the values
  4125                              array must be empty. This array is replaced during a strategic
  4126                              merge patch.
  4127                            items:
  4128                              type: string
  4129                            type: array
  4130                        required:
  4131                        - key
  4132                        - operator
  4133                        type: object
  4134                      type: array
  4135                    matchLabels:
  4136                      additionalProperties:
  4137                        type: string
  4138                      description: matchLabels is a map of {key,value} pairs. A single
  4139                        {key,value} in the matchLabels map is equivalent to an element
  4140                        of matchExpressions, whose key field is "key", the operator
  4141                        is "In", and the values array contains only "value". The requirements
  4142                        are ANDed.
  4143                      type: object
  4144                  type: object
  4145                settings:
  4146                  additionalProperties:
  4147                    type: string
  4148                  description: 'Settings defines key value pairs to be passed to all
  4149                    calls to all supported RuntimeExtensions. Note: Settings can be
  4150                    overridden on the ClusterClass.'
  4151                  type: object
  4152              required:
  4153              - clientConfig
  4154              type: object
  4155            status:
  4156              description: ExtensionConfigStatus is the current state of the ExtensionConfig
  4157              properties:
  4158                conditions:
  4159                  description: Conditions define the current service state of the ExtensionConfig.
  4160                  items:
  4161                    description: Condition defines an observation of a Cluster API resource
  4162                      operational state.
  4163                    properties:
  4164                      lastTransitionTime:
  4165                        description: Last time the condition transitioned from one status
  4166                          to another. This should be when the underlying condition changed.
  4167                          If that is not known, then using the time when the API field
  4168                          changed is acceptable.
  4169                        format: date-time
  4170                        type: string
  4171                      message:
  4172                        description: A human readable message indicating details about
  4173                          the transition. This field may be empty.
  4174                        type: string
  4175                      reason:
  4176                        description: The reason for the condition's last transition
  4177                          in CamelCase. The specific API may choose whether or not this
  4178                          field is considered a guaranteed API. This field may not be
  4179                          empty.
  4180                        type: string
  4181                      severity:
  4182                        description: Severity provides an explicit classification of
  4183                          Reason code, so the users or machines can immediately understand
  4184                          the current situation and act accordingly. The Severity field
  4185                          MUST be set only when Status=False.
  4186                        type: string
  4187                      status:
  4188                        description: Status of the condition, one of True, False, Unknown.
  4189                        type: string
  4190                      type:
  4191                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  4192                          Many .condition.type values are consistent across resources
  4193                          like Available, but because arbitrary conditions can be useful
  4194                          (see .node.status.conditions), the ability to deconflict is
  4195                          important.
  4196                        type: string
  4197                    required:
  4198                    - lastTransitionTime
  4199                    - status
  4200                    - type
  4201                    type: object
  4202                  type: array
  4203                handlers:
  4204                  description: Handlers defines the current ExtensionHandlers supported
  4205                    by an Extension.
  4206                  items:
  4207                    description: ExtensionHandler specifies the details of a handler
  4208                      for a particular runtime hook registered by an Extension server.
  4209                    properties:
  4210                      failurePolicy:
  4211                        description: FailurePolicy defines how failures in calls to
  4212                          the ExtensionHandler should be handled by a client. Defaults
  4213                          to Fail if not set.
  4214                        type: string
  4215                      name:
  4216                        description: Name is the unique name of the ExtensionHandler.
  4217                        type: string
  4218                      requestHook:
  4219                        description: RequestHook defines the versioned runtime hook
  4220                          which this ExtensionHandler serves.
  4221                        properties:
  4222                          apiVersion:
  4223                            description: APIVersion is the group and version of the
  4224                              Hook.
  4225                            type: string
  4226                          hook:
  4227                            description: Hook is the name of the hook.
  4228                            type: string
  4229                        required:
  4230                        - apiVersion
  4231                        - hook
  4232                        type: object
  4233                      timeoutSeconds:
  4234                        description: TimeoutSeconds defines the timeout duration for
  4235                          client calls to the ExtensionHandler. Defaults to 10 is not
  4236                          set.
  4237                        format: int32
  4238                        type: integer
  4239                    required:
  4240                    - name
  4241                    - requestHook
  4242                    type: object
  4243                  type: array
  4244                  x-kubernetes-list-map-keys:
  4245                  - name
  4246                  x-kubernetes-list-type: map
  4247              type: object
  4248          type: object
  4249      served: true
  4250      storage: true
  4251      subresources:
  4252        status: {}
  4253  ---
  4254  apiVersion: apiextensions.k8s.io/v1
  4255  kind: CustomResourceDefinition
  4256  metadata:
  4257    annotations:
  4258      controller-gen.kubebuilder.io/version: v0.12.0
  4259    labels:
  4260      cluster.x-k8s.io/provider: cluster-api
  4261    name: ipaddressclaims.ipam.cluster.x-k8s.io
  4262  spec:
  4263    group: ipam.cluster.x-k8s.io
  4264    names:
  4265      categories:
  4266      - cluster-api
  4267      kind: IPAddressClaim
  4268      listKind: IPAddressClaimList
  4269      plural: ipaddressclaims
  4270      singular: ipaddressclaim
  4271    scope: Namespaced
  4272    versions:
  4273    - additionalPrinterColumns:
  4274      - description: Name of the pool to allocate an address from
  4275        jsonPath: .spec.poolRef.name
  4276        name: Pool Name
  4277        type: string
  4278      - description: Kind of the pool to allocate an address from
  4279        jsonPath: .spec.poolRef.kind
  4280        name: Pool Kind
  4281        type: string
  4282      name: v1alpha1
  4283      schema:
  4284        openAPIV3Schema:
  4285          description: IPAddressClaim is the Schema for the ipaddressclaim API.
  4286          properties:
  4287            apiVersion:
  4288              description: 'APIVersion defines the versioned schema of this representation
  4289                of an object. Servers should convert recognized schemas to the latest
  4290                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4291              type: string
  4292            kind:
  4293              description: 'Kind is a string value representing the REST resource this
  4294                object represents. Servers may infer this from the endpoint the client
  4295                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4296              type: string
  4297            metadata:
  4298              type: object
  4299            spec:
  4300              description: IPAddressClaimSpec is the desired state of an IPAddressClaim.
  4301              properties:
  4302                poolRef:
  4303                  description: PoolRef is a reference to the pool from which an IP address
  4304                    should be created.
  4305                  properties:
  4306                    apiGroup:
  4307                      description: APIGroup is the group for the resource being referenced.
  4308                        If APIGroup is not specified, the specified Kind must be in
  4309                        the core API group. For any other third-party types, APIGroup
  4310                        is required.
  4311                      type: string
  4312                    kind:
  4313                      description: Kind is the type of resource being referenced
  4314                      type: string
  4315                    name:
  4316                      description: Name is the name of resource being referenced
  4317                      type: string
  4318                  required:
  4319                  - apiGroup
  4320                  - kind
  4321                  - name
  4322                  type: object
  4323              required:
  4324              - poolRef
  4325              type: object
  4326            status:
  4327              description: IPAddressClaimStatus is the observed status of a IPAddressClaim.
  4328              properties:
  4329                addressRef:
  4330                  description: AddressRef is a reference to the address that was created
  4331                    for this claim.
  4332                  properties:
  4333                    name:
  4334                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  4335                        TODO: Add other useful fields. apiVersion, kind, uid?'
  4336                      type: string
  4337                  type: object
  4338                conditions:
  4339                  description: Conditions summarises the current state of the IPAddressClaim
  4340                  items:
  4341                    description: Condition defines an observation of a Cluster API resource
  4342                      operational state.
  4343                    properties:
  4344                      lastTransitionTime:
  4345                        description: Last time the condition transitioned from one status
  4346                          to another. This should be when the underlying condition changed.
  4347                          If that is not known, then using the time when the API field
  4348                          changed is acceptable.
  4349                        format: date-time
  4350                        type: string
  4351                      message:
  4352                        description: A human readable message indicating details about
  4353                          the transition. This field may be empty.
  4354                        type: string
  4355                      reason:
  4356                        description: The reason for the condition's last transition
  4357                          in CamelCase. The specific API may choose whether or not this
  4358                          field is considered a guaranteed API. This field may not be
  4359                          empty.
  4360                        type: string
  4361                      severity:
  4362                        description: Severity provides an explicit classification of
  4363                          Reason code, so the users or machines can immediately understand
  4364                          the current situation and act accordingly. The Severity field
  4365                          MUST be set only when Status=False.
  4366                        type: string
  4367                      status:
  4368                        description: Status of the condition, one of True, False, Unknown.
  4369                        type: string
  4370                      type:
  4371                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  4372                          Many .condition.type values are consistent across resources
  4373                          like Available, but because arbitrary conditions can be useful
  4374                          (see .node.status.conditions), the ability to deconflict is
  4375                          important.
  4376                        type: string
  4377                    required:
  4378                    - lastTransitionTime
  4379                    - status
  4380                    - type
  4381                    type: object
  4382                  type: array
  4383              type: object
  4384          type: object
  4385      served: true
  4386      storage: true
  4387      subresources:
  4388        status: {}
  4389  ---
  4390  apiVersion: apiextensions.k8s.io/v1
  4391  kind: CustomResourceDefinition
  4392  metadata:
  4393    annotations:
  4394      controller-gen.kubebuilder.io/version: v0.12.0
  4395    labels:
  4396      cluster.x-k8s.io/provider: cluster-api
  4397    name: ipaddresses.ipam.cluster.x-k8s.io
  4398  spec:
  4399    group: ipam.cluster.x-k8s.io
  4400    names:
  4401      categories:
  4402      - cluster-api
  4403      kind: IPAddress
  4404      listKind: IPAddressList
  4405      plural: ipaddresses
  4406      singular: ipaddress
  4407    scope: Namespaced
  4408    versions:
  4409    - additionalPrinterColumns:
  4410      - description: Address
  4411        jsonPath: .spec.address
  4412        name: Address
  4413        type: string
  4414      - description: Name of the pool the address is from
  4415        jsonPath: .spec.poolRef.name
  4416        name: Pool Name
  4417        type: string
  4418      - description: Kind of the pool the address is from
  4419        jsonPath: .spec.poolRef.kind
  4420        name: Pool Kind
  4421        type: string
  4422      name: v1alpha1
  4423      schema:
  4424        openAPIV3Schema:
  4425          description: IPAddress is the Schema for the ipaddress API.
  4426          properties:
  4427            apiVersion:
  4428              description: 'APIVersion defines the versioned schema of this representation
  4429                of an object. Servers should convert recognized schemas to the latest
  4430                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4431              type: string
  4432            kind:
  4433              description: 'Kind is a string value representing the REST resource this
  4434                object represents. Servers may infer this from the endpoint the client
  4435                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4436              type: string
  4437            metadata:
  4438              type: object
  4439            spec:
  4440              description: IPAddressSpec is the desired state of an IPAddress.
  4441              properties:
  4442                address:
  4443                  description: Address is the IP address.
  4444                  type: string
  4445                claimRef:
  4446                  description: ClaimRef is a reference to the claim this IPAddress was
  4447                    created for.
  4448                  properties:
  4449                    name:
  4450                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  4451                        TODO: Add other useful fields. apiVersion, kind, uid?'
  4452                      type: string
  4453                  type: object
  4454                gateway:
  4455                  description: Gateway is the network gateway of the network the address
  4456                    is from.
  4457                  type: string
  4458                poolRef:
  4459                  description: PoolRef is a reference to the pool that this IPAddress
  4460                    was created from.
  4461                  properties:
  4462                    apiGroup:
  4463                      description: APIGroup is the group for the resource being referenced.
  4464                        If APIGroup is not specified, the specified Kind must be in
  4465                        the core API group. For any other third-party types, APIGroup
  4466                        is required.
  4467                      type: string
  4468                    kind:
  4469                      description: Kind is the type of resource being referenced
  4470                      type: string
  4471                    name:
  4472                      description: Name is the name of resource being referenced
  4473                      type: string
  4474                  required:
  4475                  - apiGroup
  4476                  - kind
  4477                  - name
  4478                  type: object
  4479                prefix:
  4480                  description: Prefix is the prefix of the address.
  4481                  type: integer
  4482              required:
  4483              - address
  4484              - claimRef
  4485              - poolRef
  4486              - prefix
  4487              type: object
  4488          type: object
  4489      served: true
  4490      storage: true
  4491      subresources: {}
  4492  ---
  4493  apiVersion: apiextensions.k8s.io/v1
  4494  kind: CustomResourceDefinition
  4495  metadata:
  4496    annotations:
  4497      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
  4498      controller-gen.kubebuilder.io/version: v0.12.0
  4499    labels:
  4500      cluster.x-k8s.io/provider: cluster-api
  4501    name: machinedeployments.cluster.x-k8s.io
  4502  spec:
  4503    conversion:
  4504      strategy: Webhook
  4505      webhook:
  4506        clientConfig:
  4507          caBundle: Cg==
  4508          service:
  4509            name: capi-webhook-service
  4510            namespace: capi-system
  4511            path: /convert
  4512        conversionReviewVersions:
  4513        - v1
  4514        - v1beta1
  4515    group: cluster.x-k8s.io
  4516    names:
  4517      categories:
  4518      - cluster-api
  4519      kind: MachineDeployment
  4520      listKind: MachineDeploymentList
  4521      plural: machinedeployments
  4522      shortNames:
  4523      - md
  4524      singular: machinedeployment
  4525    scope: Namespaced
  4526    versions:
  4527    - additionalPrinterColumns:
  4528      - description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown
  4529        jsonPath: .status.phase
  4530        name: Phase
  4531        type: string
  4532      - description: Total number of non-terminated machines targeted by this MachineDeployment
  4533        jsonPath: .status.replicas
  4534        name: Replicas
  4535        type: integer
  4536      - description: Total number of ready machines targeted by this MachineDeployment
  4537        jsonPath: .status.readyReplicas
  4538        name: Ready
  4539        type: integer
  4540      - description: Total number of non-terminated machines targeted by this deployment
  4541          that have the desired template spec
  4542        jsonPath: .status.updatedReplicas
  4543        name: Updated
  4544        type: integer
  4545      - description: Total number of unavailable machines targeted by this MachineDeployment
  4546        jsonPath: .status.unavailableReplicas
  4547        name: Unavailable
  4548        type: integer
  4549      deprecated: true
  4550      name: v1alpha3
  4551      schema:
  4552        openAPIV3Schema:
  4553          description: "MachineDeployment is the Schema for the machinedeployments API.
  4554            \n Deprecated: This type will be removed in one of the next releases."
  4555          properties:
  4556            apiVersion:
  4557              description: 'APIVersion defines the versioned schema of this representation
  4558                of an object. Servers should convert recognized schemas to the latest
  4559                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4560              type: string
  4561            kind:
  4562              description: 'Kind is a string value representing the REST resource this
  4563                object represents. Servers may infer this from the endpoint the client
  4564                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4565              type: string
  4566            metadata:
  4567              type: object
  4568            spec:
  4569              description: MachineDeploymentSpec defines the desired state of MachineDeployment.
  4570              properties:
  4571                clusterName:
  4572                  description: ClusterName is the name of the Cluster this object belongs
  4573                    to.
  4574                  minLength: 1
  4575                  type: string
  4576                minReadySeconds:
  4577                  description: Minimum number of seconds for which a newly created machine
  4578                    should be ready. Defaults to 0 (machine will be considered available
  4579                    as soon as it is ready)
  4580                  format: int32
  4581                  type: integer
  4582                paused:
  4583                  description: Indicates that the deployment is paused.
  4584                  type: boolean
  4585                progressDeadlineSeconds:
  4586                  description: The maximum time in seconds for a deployment to make
  4587                    progress before it is considered to be failed. The deployment controller
  4588                    will continue to process failed deployments and a condition with
  4589                    a ProgressDeadlineExceeded reason will be surfaced in the deployment
  4590                    status. Note that progress will not be estimated during the time
  4591                    a deployment is paused. Defaults to 600s.
  4592                  format: int32
  4593                  type: integer
  4594                replicas:
  4595                  description: Number of desired machines. Defaults to 1. This is a
  4596                    pointer to distinguish between explicit zero and not specified.
  4597                  format: int32
  4598                  type: integer
  4599                revisionHistoryLimit:
  4600                  description: The number of old MachineSets to retain to allow rollback.
  4601                    This is a pointer to distinguish between explicit zero and not specified.
  4602                    Defaults to 1.
  4603                  format: int32
  4604                  type: integer
  4605                selector:
  4606                  description: Label selector for machines. Existing MachineSets whose
  4607                    machines are selected by this will be the ones affected by this
  4608                    deployment. It must match the machine template's labels.
  4609                  properties:
  4610                    matchExpressions:
  4611                      description: matchExpressions is a list of label selector requirements.
  4612                        The requirements are ANDed.
  4613                      items:
  4614                        description: A label selector requirement is a selector that
  4615                          contains values, a key, and an operator that relates the key
  4616                          and values.
  4617                        properties:
  4618                          key:
  4619                            description: key is the label key that the selector applies
  4620                              to.
  4621                            type: string
  4622                          operator:
  4623                            description: operator represents a key's relationship to
  4624                              a set of values. Valid operators are In, NotIn, Exists
  4625                              and DoesNotExist.
  4626                            type: string
  4627                          values:
  4628                            description: values is an array of string values. If the
  4629                              operator is In or NotIn, the values array must be non-empty.
  4630                              If the operator is Exists or DoesNotExist, the values
  4631                              array must be empty. This array is replaced during a strategic
  4632                              merge patch.
  4633                            items:
  4634                              type: string
  4635                            type: array
  4636                        required:
  4637                        - key
  4638                        - operator
  4639                        type: object
  4640                      type: array
  4641                    matchLabels:
  4642                      additionalProperties:
  4643                        type: string
  4644                      description: matchLabels is a map of {key,value} pairs. A single
  4645                        {key,value} in the matchLabels map is equivalent to an element
  4646                        of matchExpressions, whose key field is "key", the operator
  4647                        is "In", and the values array contains only "value". The requirements
  4648                        are ANDed.
  4649                      type: object
  4650                  type: object
  4651                  x-kubernetes-map-type: atomic
  4652                strategy:
  4653                  description: The deployment strategy to use to replace existing machines
  4654                    with new ones.
  4655                  properties:
  4656                    rollingUpdate:
  4657                      description: Rolling update config params. Present only if MachineDeploymentStrategyType
  4658                        = RollingUpdate.
  4659                      properties:
  4660                        maxSurge:
  4661                          anyOf:
  4662                          - type: integer
  4663                          - type: string
  4664                          description: 'The maximum number of machines that can be scheduled
  4665                            above the desired number of machines. Value can be an absolute
  4666                            number (ex: 5) or a percentage of desired machines (ex:
  4667                            10%). This can not be 0 if MaxUnavailable is 0. Absolute
  4668                            number is calculated from percentage by rounding up. Defaults
  4669                            to 1. Example: when this is set to 30%, the new MachineSet
  4670                            can be scaled up immediately when the rolling update starts,
  4671                            such that the total number of old and new machines do not
  4672                            exceed 130% of desired machines. Once old machines have
  4673                            been killed, new MachineSet can be scaled up further, ensuring
  4674                            that total number of machines running at any time during
  4675                            the update is at most 130% of desired machines.'
  4676                          x-kubernetes-int-or-string: true
  4677                        maxUnavailable:
  4678                          anyOf:
  4679                          - type: integer
  4680                          - type: string
  4681                          description: 'The maximum number of machines that can be unavailable
  4682                            during the update. Value can be an absolute number (ex:
  4683                            5) or a percentage of desired machines (ex: 10%). Absolute
  4684                            number is calculated from percentage by rounding down. This
  4685                            can not be 0 if MaxSurge is 0. Defaults to 0. Example: when
  4686                            this is set to 30%, the old MachineSet can be scaled down
  4687                            to 70% of desired machines immediately when the rolling
  4688                            update starts. Once new machines are ready, old MachineSet
  4689                            can be scaled down further, followed by scaling up the new
  4690                            MachineSet, ensuring that the total number of machines available
  4691                            at all times during the update is at least 70% of desired
  4692                            machines.'
  4693                          x-kubernetes-int-or-string: true
  4694                      type: object
  4695                    type:
  4696                      description: Type of deployment. Currently the only supported
  4697                        strategy is "RollingUpdate". Default is RollingUpdate.
  4698                      type: string
  4699                  type: object
  4700                template:
  4701                  description: Template describes the machines that will be created.
  4702                  properties:
  4703                    metadata:
  4704                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  4705                      properties:
  4706                        annotations:
  4707                          additionalProperties:
  4708                            type: string
  4709                          description: 'Annotations is an unstructured key value map
  4710                            stored with a resource that may be set by external tools
  4711                            to store and retrieve arbitrary metadata. They are not queryable
  4712                            and should be preserved when modifying objects. More info:
  4713                            http://kubernetes.io/docs/user-guide/annotations'
  4714                          type: object
  4715                        generateName:
  4716                          description: "GenerateName is an optional prefix, used by
  4717                            the server, to generate a unique name ONLY IF the Name field
  4718                            has not been provided. If this field is used, the name returned
  4719                            to the client will be different than the name passed. This
  4720                            value will also be combined with a unique suffix. The provided
  4721                            value has the same validation rules as the Name field, and
  4722                            may be truncated by the length of the suffix required to
  4723                            make the value unique on the server. \n If this field is
  4724                            specified and the generated name exists, the server will
  4725                            NOT return a 409 - instead, it will either return 201 Created
  4726                            or 500 with Reason ServerTimeout indicating a unique name
  4727                            could not be found in the time allotted, and the client
  4728                            should retry (optionally after the time indicated in the
  4729                            Retry-After header). \n Applied only if Name is not specified.
  4730                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
  4731                            \n Deprecated: This field has no function and is going to
  4732                            be removed in a next release."
  4733                          type: string
  4734                        labels:
  4735                          additionalProperties:
  4736                            type: string
  4737                          description: 'Map of string keys and values that can be used
  4738                            to organize and categorize (scope and select) objects. May
  4739                            match selectors of replication controllers and services.
  4740                            More info: http://kubernetes.io/docs/user-guide/labels'
  4741                          type: object
  4742                        name:
  4743                          description: "Name must be unique within a namespace. Is required
  4744                            when creating resources, although some resources may allow
  4745                            a client to request the generation of an appropriate name
  4746                            automatically. Name is primarily intended for creation idempotence
  4747                            and configuration definition. Cannot be updated. More info:
  4748                            http://kubernetes.io/docs/user-guide/identifiers#names \n
  4749                            Deprecated: This field has no function and is going to be
  4750                            removed in a next release."
  4751                          type: string
  4752                        namespace:
  4753                          description: "Namespace defines the space within each name
  4754                            must be unique. An empty namespace is equivalent to the
  4755                            \"default\" namespace, but \"default\" is the canonical
  4756                            representation. Not all objects are required to be scoped
  4757                            to a namespace - the value of this field for those objects
  4758                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
  4759                            More info: http://kubernetes.io/docs/user-guide/namespaces
  4760                            \n Deprecated: This field has no function and is going to
  4761                            be removed in a next release."
  4762                          type: string
  4763                        ownerReferences:
  4764                          description: "List of objects depended by this object. If
  4765                            ALL objects in the list have been deleted, this object will
  4766                            be garbage collected. If this object is managed by a controller,
  4767                            then an entry in this list will point to this controller,
  4768                            with the controller field set to true. There cannot be more
  4769                            than one managing controller. \n Deprecated: This field
  4770                            has no function and is going to be removed in a next release."
  4771                          items:
  4772                            description: OwnerReference contains enough information
  4773                              to let you identify an owning object. An owning object
  4774                              must be in the same namespace as the dependent, or be
  4775                              cluster-scoped, so there is no namespace field.
  4776                            properties:
  4777                              apiVersion:
  4778                                description: API version of the referent.
  4779                                type: string
  4780                              blockOwnerDeletion:
  4781                                description: If true, AND if the owner has the "foregroundDeletion"
  4782                                  finalizer, then the owner cannot be deleted from the
  4783                                  key-value store until this reference is removed. See
  4784                                  https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
  4785                                  for how the garbage collector interacts with this
  4786                                  field and enforces the foreground deletion. Defaults
  4787                                  to false. To set this field, a user needs "delete"
  4788                                  permission of the owner, otherwise 422 (Unprocessable
  4789                                  Entity) will be returned.
  4790                                type: boolean
  4791                              controller:
  4792                                description: If true, this reference points to the managing
  4793                                  controller.
  4794                                type: boolean
  4795                              kind:
  4796                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4797                                type: string
  4798                              name:
  4799                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names'
  4800                                type: string
  4801                              uid:
  4802                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids'
  4803                                type: string
  4804                            required:
  4805                            - apiVersion
  4806                            - kind
  4807                            - name
  4808                            - uid
  4809                            type: object
  4810                            x-kubernetes-map-type: atomic
  4811                          type: array
  4812                      type: object
  4813                    spec:
  4814                      description: 'Specification of the desired behavior of the machine.
  4815                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  4816                      properties:
  4817                        bootstrap:
  4818                          description: Bootstrap is a reference to a local struct which
  4819                            encapsulates fields to configure the Machine’s bootstrapping
  4820                            mechanism.
  4821                          properties:
  4822                            configRef:
  4823                              description: ConfigRef is a reference to a bootstrap provider-specific
  4824                                resource that holds configuration details. The reference
  4825                                is optional to allow users/operators to specify Bootstrap.Data
  4826                                without the need of a controller.
  4827                              properties:
  4828                                apiVersion:
  4829                                  description: API version of the referent.
  4830                                  type: string
  4831                                fieldPath:
  4832                                  description: 'If referring to a piece of an object
  4833                                    instead of an entire object, this string should
  4834                                    contain a valid JSON/Go field access statement,
  4835                                    such as desiredState.manifest.containers[2]. For
  4836                                    example, if the object reference is to a container
  4837                                    within a pod, this would take on a value like: "spec.containers{name}"
  4838                                    (where "name" refers to the name of the container
  4839                                    that triggered the event) or if no container name
  4840                                    is specified "spec.containers[2]" (container with
  4841                                    index 2 in this pod). This syntax is chosen only
  4842                                    to have some well-defined way of referencing a part
  4843                                    of an object. TODO: this design is not final and
  4844                                    this field is subject to change in the future.'
  4845                                  type: string
  4846                                kind:
  4847                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4848                                  type: string
  4849                                name:
  4850                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4851                                  type: string
  4852                                namespace:
  4853                                  description: 'Namespace of the referent. More info:
  4854                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  4855                                  type: string
  4856                                resourceVersion:
  4857                                  description: 'Specific resourceVersion to which this
  4858                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  4859                                  type: string
  4860                                uid:
  4861                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  4862                                  type: string
  4863                              type: object
  4864                              x-kubernetes-map-type: atomic
  4865                            data:
  4866                              description: "Data contains the bootstrap data, such as
  4867                                cloud-init details scripts. If nil, the Machine should
  4868                                remain in the Pending state. \n Deprecated: Switch to
  4869                                DataSecretName."
  4870                              type: string
  4871                            dataSecretName:
  4872                              description: DataSecretName is the name of the secret
  4873                                that stores the bootstrap data script. If nil, the Machine
  4874                                should remain in the Pending state.
  4875                              type: string
  4876                          type: object
  4877                        clusterName:
  4878                          description: ClusterName is the name of the Cluster this object
  4879                            belongs to.
  4880                          minLength: 1
  4881                          type: string
  4882                        failureDomain:
  4883                          description: FailureDomain is the failure domain the machine
  4884                            will be created in. Must match a key in the FailureDomains
  4885                            map stored on the cluster object.
  4886                          type: string
  4887                        infrastructureRef:
  4888                          description: InfrastructureRef is a required reference to
  4889                            a custom resource offered by an infrastructure provider.
  4890                          properties:
  4891                            apiVersion:
  4892                              description: API version of the referent.
  4893                              type: string
  4894                            fieldPath:
  4895                              description: 'If referring to a piece of an object instead
  4896                                of an entire object, this string should contain a valid
  4897                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
  4898                                For example, if the object reference is to a container
  4899                                within a pod, this would take on a value like: "spec.containers{name}"
  4900                                (where "name" refers to the name of the container that
  4901                                triggered the event) or if no container name is specified
  4902                                "spec.containers[2]" (container with index 2 in this
  4903                                pod). This syntax is chosen only to have some well-defined
  4904                                way of referencing a part of an object. TODO: this design
  4905                                is not final and this field is subject to change in
  4906                                the future.'
  4907                              type: string
  4908                            kind:
  4909                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4910                              type: string
  4911                            name:
  4912                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4913                              type: string
  4914                            namespace:
  4915                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  4916                              type: string
  4917                            resourceVersion:
  4918                              description: 'Specific resourceVersion to which this reference
  4919                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  4920                              type: string
  4921                            uid:
  4922                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  4923                              type: string
  4924                          type: object
  4925                          x-kubernetes-map-type: atomic
  4926                        nodeDrainTimeout:
  4927                          description: 'NodeDrainTimeout is the total amount of time
  4928                            that the controller will spend on draining a node. The default
  4929                            value is 0, meaning that the node can be drained without
  4930                            any time limitations. NOTE: NodeDrainTimeout is different
  4931                            from `kubectl drain --timeout`'
  4932                          type: string
  4933                        providerID:
  4934                          description: ProviderID is the identification ID of the machine
  4935                            provided by the provider. This field must match the provider
  4936                            ID as seen on the node object corresponding to this machine.
  4937                            This field is required by higher level consumers of cluster-api.
  4938                            Example use case is cluster autoscaler with cluster-api
  4939                            as provider. Clean-up logic in the autoscaler compares machines
  4940                            to nodes to find out machines at provider which could not
  4941                            get registered as Kubernetes nodes. With cluster-api as
  4942                            a generic out-of-tree provider for autoscaler, this field
  4943                            is required by autoscaler to be able to have a provider
  4944                            view of the list of machines. Another list of nodes is queried
  4945                            from the k8s apiserver and then a comparison is done to
  4946                            find out unregistered machines and are marked for delete.
  4947                            This field will be set by the actuators and consumed by
  4948                            higher level entities like autoscaler that will be interfacing
  4949                            with cluster-api as generic provider.
  4950                          type: string
  4951                        version:
  4952                          description: Version defines the desired Kubernetes version.
  4953                            This field is meant to be optionally used by bootstrap providers.
  4954                          type: string
  4955                      required:
  4956                      - bootstrap
  4957                      - clusterName
  4958                      - infrastructureRef
  4959                      type: object
  4960                  type: object
  4961              required:
  4962              - clusterName
  4963              - selector
  4964              - template
  4965              type: object
  4966            status:
  4967              description: MachineDeploymentStatus defines the observed state of MachineDeployment.
  4968              properties:
  4969                availableReplicas:
  4970                  description: Total number of available machines (ready for at least
  4971                    minReadySeconds) targeted by this deployment.
  4972                  format: int32
  4973                  type: integer
  4974                observedGeneration:
  4975                  description: The generation observed by the deployment controller.
  4976                  format: int64
  4977                  type: integer
  4978                phase:
  4979                  description: Phase represents the current phase of a MachineDeployment
  4980                    (ScalingUp, ScalingDown, Running, Failed, or Unknown).
  4981                  type: string
  4982                readyReplicas:
  4983                  description: Total number of ready machines targeted by this deployment.
  4984                  format: int32
  4985                  type: integer
  4986                replicas:
  4987                  description: Total number of non-terminated machines targeted by this
  4988                    deployment (their labels match the selector).
  4989                  format: int32
  4990                  type: integer
  4991                selector:
  4992                  description: 'Selector is the same as the label selector but in the
  4993                    string format to avoid introspection by clients. The string will
  4994                    be in the same format as the query-param syntax. More info about
  4995                    label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors'
  4996                  type: string
  4997                unavailableReplicas:
  4998                  description: Total number of unavailable machines targeted by this
  4999                    deployment. This is the total number of machines that are still
  5000                    required for the deployment to have 100% available capacity. They
  5001                    may either be machines that are running but not yet available or
  5002                    machines that still have not been created.
  5003                  format: int32
  5004                  type: integer
  5005                updatedReplicas:
  5006                  description: Total number of non-terminated machines targeted by this
  5007                    deployment that have the desired template spec.
  5008                  format: int32
  5009                  type: integer
  5010              type: object
  5011          type: object
  5012      served: false
  5013      storage: false
  5014      subresources:
  5015        scale:
  5016          labelSelectorPath: .status.selector
  5017          specReplicasPath: .spec.replicas
  5018          statusReplicasPath: .status.replicas
  5019        status: {}
  5020    - additionalPrinterColumns:
  5021      - description: Cluster
  5022        jsonPath: .spec.clusterName
  5023        name: Cluster
  5024        type: string
  5025      - description: Time duration since creation of MachineDeployment
  5026        jsonPath: .metadata.creationTimestamp
  5027        name: Age
  5028        type: date
  5029      - description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown
  5030        jsonPath: .status.phase
  5031        name: Phase
  5032        type: string
  5033      - description: Total number of non-terminated machines targeted by this MachineDeployment
  5034        jsonPath: .status.replicas
  5035        name: Replicas
  5036        type: integer
  5037      - description: Total number of ready machines targeted by this MachineDeployment
  5038        jsonPath: .status.readyReplicas
  5039        name: Ready
  5040        type: integer
  5041      - description: Total number of non-terminated machines targeted by this deployment
  5042          that have the desired template spec
  5043        jsonPath: .status.updatedReplicas
  5044        name: Updated
  5045        type: integer
  5046      - description: Total number of unavailable machines targeted by this MachineDeployment
  5047        jsonPath: .status.unavailableReplicas
  5048        name: Unavailable
  5049        type: integer
  5050      deprecated: true
  5051      name: v1alpha4
  5052      schema:
  5053        openAPIV3Schema:
  5054          description: "MachineDeployment is the Schema for the machinedeployments API.
  5055            \n Deprecated: This type will be removed in one of the next releases."
  5056          properties:
  5057            apiVersion:
  5058              description: 'APIVersion defines the versioned schema of this representation
  5059                of an object. Servers should convert recognized schemas to the latest
  5060                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  5061              type: string
  5062            kind:
  5063              description: 'Kind is a string value representing the REST resource this
  5064                object represents. Servers may infer this from the endpoint the client
  5065                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5066              type: string
  5067            metadata:
  5068              type: object
  5069            spec:
  5070              description: MachineDeploymentSpec defines the desired state of MachineDeployment.
  5071              properties:
  5072                clusterName:
  5073                  description: ClusterName is the name of the Cluster this object belongs
  5074                    to.
  5075                  minLength: 1
  5076                  type: string
  5077                minReadySeconds:
  5078                  description: Minimum number of seconds for which a newly created machine
  5079                    should be ready. Defaults to 0 (machine will be considered available
  5080                    as soon as it is ready)
  5081                  format: int32
  5082                  type: integer
  5083                paused:
  5084                  description: Indicates that the deployment is paused.
  5085                  type: boolean
  5086                progressDeadlineSeconds:
  5087                  description: The maximum time in seconds for a deployment to make
  5088                    progress before it is considered to be failed. The deployment controller
  5089                    will continue to process failed deployments and a condition with
  5090                    a ProgressDeadlineExceeded reason will be surfaced in the deployment
  5091                    status. Note that progress will not be estimated during the time
  5092                    a deployment is paused. Defaults to 600s.
  5093                  format: int32
  5094                  type: integer
  5095                replicas:
  5096                  default: 1
  5097                  description: Number of desired machines. Defaults to 1. This is a
  5098                    pointer to distinguish between explicit zero and not specified.
  5099                  format: int32
  5100                  type: integer
  5101                revisionHistoryLimit:
  5102                  description: The number of old MachineSets to retain to allow rollback.
  5103                    This is a pointer to distinguish between explicit zero and not specified.
  5104                    Defaults to 1.
  5105                  format: int32
  5106                  type: integer
  5107                selector:
  5108                  description: Label selector for machines. Existing MachineSets whose
  5109                    machines are selected by this will be the ones affected by this
  5110                    deployment. It must match the machine template's labels.
  5111                  properties:
  5112                    matchExpressions:
  5113                      description: matchExpressions is a list of label selector requirements.
  5114                        The requirements are ANDed.
  5115                      items:
  5116                        description: A label selector requirement is a selector that
  5117                          contains values, a key, and an operator that relates the key
  5118                          and values.
  5119                        properties:
  5120                          key:
  5121                            description: key is the label key that the selector applies
  5122                              to.
  5123                            type: string
  5124                          operator:
  5125                            description: operator represents a key's relationship to
  5126                              a set of values. Valid operators are In, NotIn, Exists
  5127                              and DoesNotExist.
  5128                            type: string
  5129                          values:
  5130                            description: values is an array of string values. If the
  5131                              operator is In or NotIn, the values array must be non-empty.
  5132                              If the operator is Exists or DoesNotExist, the values
  5133                              array must be empty. This array is replaced during a strategic
  5134                              merge patch.
  5135                            items:
  5136                              type: string
  5137                            type: array
  5138                        required:
  5139                        - key
  5140                        - operator
  5141                        type: object
  5142                      type: array
  5143                    matchLabels:
  5144                      additionalProperties:
  5145                        type: string
  5146                      description: matchLabels is a map of {key,value} pairs. A single
  5147                        {key,value} in the matchLabels map is equivalent to an element
  5148                        of matchExpressions, whose key field is "key", the operator
  5149                        is "In", and the values array contains only "value". The requirements
  5150                        are ANDed.
  5151                      type: object
  5152                  type: object
  5153                  x-kubernetes-map-type: atomic
  5154                strategy:
  5155                  description: The deployment strategy to use to replace existing machines
  5156                    with new ones.
  5157                  properties:
  5158                    rollingUpdate:
  5159                      description: Rolling update config params. Present only if MachineDeploymentStrategyType
  5160                        = RollingUpdate.
  5161                      properties:
  5162                        deletePolicy:
  5163                          description: DeletePolicy defines the policy used by the MachineDeployment
  5164                            to identify nodes to delete when downscaling. Valid values
  5165                            are "Random, "Newest", "Oldest" When no value is supplied,
  5166                            the default DeletePolicy of MachineSet is used
  5167                          enum:
  5168                          - Random
  5169                          - Newest
  5170                          - Oldest
  5171                          type: string
  5172                        maxSurge:
  5173                          anyOf:
  5174                          - type: integer
  5175                          - type: string
  5176                          description: 'The maximum number of machines that can be scheduled
  5177                            above the desired number of machines. Value can be an absolute
  5178                            number (ex: 5) or a percentage of desired machines (ex:
  5179                            10%). This can not be 0 if MaxUnavailable is 0. Absolute
  5180                            number is calculated from percentage by rounding up. Defaults
  5181                            to 1. Example: when this is set to 30%, the new MachineSet
  5182                            can be scaled up immediately when the rolling update starts,
  5183                            such that the total number of old and new machines do not
  5184                            exceed 130% of desired machines. Once old machines have
  5185                            been killed, new MachineSet can be scaled up further, ensuring
  5186                            that total number of machines running at any time during
  5187                            the update is at most 130% of desired machines.'
  5188                          x-kubernetes-int-or-string: true
  5189                        maxUnavailable:
  5190                          anyOf:
  5191                          - type: integer
  5192                          - type: string
  5193                          description: 'The maximum number of machines that can be unavailable
  5194                            during the update. Value can be an absolute number (ex:
  5195                            5) or a percentage of desired machines (ex: 10%). Absolute
  5196                            number is calculated from percentage by rounding down. This
  5197                            can not be 0 if MaxSurge is 0. Defaults to 0. Example: when
  5198                            this is set to 30%, the old MachineSet can be scaled down
  5199                            to 70% of desired machines immediately when the rolling
  5200                            update starts. Once new machines are ready, old MachineSet
  5201                            can be scaled down further, followed by scaling up the new
  5202                            MachineSet, ensuring that the total number of machines available
  5203                            at all times during the update is at least 70% of desired
  5204                            machines.'
  5205                          x-kubernetes-int-or-string: true
  5206                      type: object
  5207                    type:
  5208                      description: Type of deployment. Default is RollingUpdate.
  5209                      enum:
  5210                      - RollingUpdate
  5211                      - OnDelete
  5212                      type: string
  5213                  type: object
  5214                template:
  5215                  description: Template describes the machines that will be created.
  5216                  properties:
  5217                    metadata:
  5218                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  5219                      properties:
  5220                        annotations:
  5221                          additionalProperties:
  5222                            type: string
  5223                          description: 'Annotations is an unstructured key value map
  5224                            stored with a resource that may be set by external tools
  5225                            to store and retrieve arbitrary metadata. They are not queryable
  5226                            and should be preserved when modifying objects. More info:
  5227                            http://kubernetes.io/docs/user-guide/annotations'
  5228                          type: object
  5229                        labels:
  5230                          additionalProperties:
  5231                            type: string
  5232                          description: 'Map of string keys and values that can be used
  5233                            to organize and categorize (scope and select) objects. May
  5234                            match selectors of replication controllers and services.
  5235                            More info: http://kubernetes.io/docs/user-guide/labels'
  5236                          type: object
  5237                      type: object
  5238                    spec:
  5239                      description: 'Specification of the desired behavior of the machine.
  5240                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  5241                      properties:
  5242                        bootstrap:
  5243                          description: Bootstrap is a reference to a local struct which
  5244                            encapsulates fields to configure the Machine’s bootstrapping
  5245                            mechanism.
  5246                          properties:
  5247                            configRef:
  5248                              description: ConfigRef is a reference to a bootstrap provider-specific
  5249                                resource that holds configuration details. The reference
  5250                                is optional to allow users/operators to specify Bootstrap.DataSecretName
  5251                                without the need of a controller.
  5252                              properties:
  5253                                apiVersion:
  5254                                  description: API version of the referent.
  5255                                  type: string
  5256                                fieldPath:
  5257                                  description: 'If referring to a piece of an object
  5258                                    instead of an entire object, this string should
  5259                                    contain a valid JSON/Go field access statement,
  5260                                    such as desiredState.manifest.containers[2]. For
  5261                                    example, if the object reference is to a container
  5262                                    within a pod, this would take on a value like: "spec.containers{name}"
  5263                                    (where "name" refers to the name of the container
  5264                                    that triggered the event) or if no container name
  5265                                    is specified "spec.containers[2]" (container with
  5266                                    index 2 in this pod). This syntax is chosen only
  5267                                    to have some well-defined way of referencing a part
  5268                                    of an object. TODO: this design is not final and
  5269                                    this field is subject to change in the future.'
  5270                                  type: string
  5271                                kind:
  5272                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5273                                  type: string
  5274                                name:
  5275                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5276                                  type: string
  5277                                namespace:
  5278                                  description: 'Namespace of the referent. More info:
  5279                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  5280                                  type: string
  5281                                resourceVersion:
  5282                                  description: 'Specific resourceVersion to which this
  5283                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  5284                                  type: string
  5285                                uid:
  5286                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  5287                                  type: string
  5288                              type: object
  5289                              x-kubernetes-map-type: atomic
  5290                            dataSecretName:
  5291                              description: DataSecretName is the name of the secret
  5292                                that stores the bootstrap data script. If nil, the Machine
  5293                                should remain in the Pending state.
  5294                              type: string
  5295                          type: object
  5296                        clusterName:
  5297                          description: ClusterName is the name of the Cluster this object
  5298                            belongs to.
  5299                          minLength: 1
  5300                          type: string
  5301                        failureDomain:
  5302                          description: FailureDomain is the failure domain the machine
  5303                            will be created in. Must match a key in the FailureDomains
  5304                            map stored on the cluster object.
  5305                          type: string
  5306                        infrastructureRef:
  5307                          description: InfrastructureRef is a required reference to
  5308                            a custom resource offered by an infrastructure provider.
  5309                          properties:
  5310                            apiVersion:
  5311                              description: API version of the referent.
  5312                              type: string
  5313                            fieldPath:
  5314                              description: 'If referring to a piece of an object instead
  5315                                of an entire object, this string should contain a valid
  5316                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
  5317                                For example, if the object reference is to a container
  5318                                within a pod, this would take on a value like: "spec.containers{name}"
  5319                                (where "name" refers to the name of the container that
  5320                                triggered the event) or if no container name is specified
  5321                                "spec.containers[2]" (container with index 2 in this
  5322                                pod). This syntax is chosen only to have some well-defined
  5323                                way of referencing a part of an object. TODO: this design
  5324                                is not final and this field is subject to change in
  5325                                the future.'
  5326                              type: string
  5327                            kind:
  5328                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5329                              type: string
  5330                            name:
  5331                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5332                              type: string
  5333                            namespace:
  5334                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  5335                              type: string
  5336                            resourceVersion:
  5337                              description: 'Specific resourceVersion to which this reference
  5338                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  5339                              type: string
  5340                            uid:
  5341                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  5342                              type: string
  5343                          type: object
  5344                          x-kubernetes-map-type: atomic
  5345                        nodeDrainTimeout:
  5346                          description: 'NodeDrainTimeout is the total amount of time
  5347                            that the controller will spend on draining a node. The default
  5348                            value is 0, meaning that the node can be drained without
  5349                            any time limitations. NOTE: NodeDrainTimeout is different
  5350                            from `kubectl drain --timeout`'
  5351                          type: string
  5352                        providerID:
  5353                          description: ProviderID is the identification ID of the machine
  5354                            provided by the provider. This field must match the provider
  5355                            ID as seen on the node object corresponding to this machine.
  5356                            This field is required by higher level consumers of cluster-api.
  5357                            Example use case is cluster autoscaler with cluster-api
  5358                            as provider. Clean-up logic in the autoscaler compares machines
  5359                            to nodes to find out machines at provider which could not
  5360                            get registered as Kubernetes nodes. With cluster-api as
  5361                            a generic out-of-tree provider for autoscaler, this field
  5362                            is required by autoscaler to be able to have a provider
  5363                            view of the list of machines. Another list of nodes is queried
  5364                            from the k8s apiserver and then a comparison is done to
  5365                            find out unregistered machines and are marked for delete.
  5366                            This field will be set by the actuators and consumed by
  5367                            higher level entities like autoscaler that will be interfacing
  5368                            with cluster-api as generic provider.
  5369                          type: string
  5370                        version:
  5371                          description: Version defines the desired Kubernetes version.
  5372                            This field is meant to be optionally used by bootstrap providers.
  5373                          type: string
  5374                      required:
  5375                      - bootstrap
  5376                      - clusterName
  5377                      - infrastructureRef
  5378                      type: object
  5379                  type: object
  5380              required:
  5381              - clusterName
  5382              - selector
  5383              - template
  5384              type: object
  5385            status:
  5386              description: MachineDeploymentStatus defines the observed state of MachineDeployment.
  5387              properties:
  5388                availableReplicas:
  5389                  description: Total number of available machines (ready for at least
  5390                    minReadySeconds) targeted by this deployment.
  5391                  format: int32
  5392                  type: integer
  5393                conditions:
  5394                  description: Conditions defines current service state of the MachineDeployment.
  5395                  items:
  5396                    description: Condition defines an observation of a Cluster API resource
  5397                      operational state.
  5398                    properties:
  5399                      lastTransitionTime:
  5400                        description: Last time the condition transitioned from one status
  5401                          to another. This should be when the underlying condition changed.
  5402                          If that is not known, then using the time when the API field
  5403                          changed is acceptable.
  5404                        format: date-time
  5405                        type: string
  5406                      message:
  5407                        description: A human readable message indicating details about
  5408                          the transition. This field may be empty.
  5409                        type: string
  5410                      reason:
  5411                        description: The reason for the condition's last transition
  5412                          in CamelCase. The specific API may choose whether or not this
  5413                          field is considered a guaranteed API. This field may not be
  5414                          empty.
  5415                        type: string
  5416                      severity:
  5417                        description: Severity provides an explicit classification of
  5418                          Reason code, so the users or machines can immediately understand
  5419                          the current situation and act accordingly. The Severity field
  5420                          MUST be set only when Status=False.
  5421                        type: string
  5422                      status:
  5423                        description: Status of the condition, one of True, False, Unknown.
  5424                        type: string
  5425                      type:
  5426                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  5427                          Many .condition.type values are consistent across resources
  5428                          like Available, but because arbitrary conditions can be useful
  5429                          (see .node.status.conditions), the ability to deconflict is
  5430                          important.
  5431                        type: string
  5432                    required:
  5433                    - status
  5434                    - type
  5435                    type: object
  5436                  type: array
  5437                observedGeneration:
  5438                  description: The generation observed by the deployment controller.
  5439                  format: int64
  5440                  type: integer
  5441                phase:
  5442                  description: Phase represents the current phase of a MachineDeployment
  5443                    (ScalingUp, ScalingDown, Running, Failed, or Unknown).
  5444                  type: string
  5445                readyReplicas:
  5446                  description: Total number of ready machines targeted by this deployment.
  5447                  format: int32
  5448                  type: integer
  5449                replicas:
  5450                  description: Total number of non-terminated machines targeted by this
  5451                    deployment (their labels match the selector).
  5452                  format: int32
  5453                  type: integer
  5454                selector:
  5455                  description: 'Selector is the same as the label selector but in the
  5456                    string format to avoid introspection by clients. The string will
  5457                    be in the same format as the query-param syntax. More info about
  5458                    label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors'
  5459                  type: string
  5460                unavailableReplicas:
  5461                  description: Total number of unavailable machines targeted by this
  5462                    deployment. This is the total number of machines that are still
  5463                    required for the deployment to have 100% available capacity. They
  5464                    may either be machines that are running but not yet available or
  5465                    machines that still have not been created.
  5466                  format: int32
  5467                  type: integer
  5468                updatedReplicas:
  5469                  description: Total number of non-terminated machines targeted by this
  5470                    deployment that have the desired template spec.
  5471                  format: int32
  5472                  type: integer
  5473              type: object
  5474          type: object
  5475      served: true
  5476      storage: false
  5477      subresources:
  5478        scale:
  5479          labelSelectorPath: .status.selector
  5480          specReplicasPath: .spec.replicas
  5481          statusReplicasPath: .status.replicas
  5482        status: {}
  5483    - additionalPrinterColumns:
  5484      - description: Cluster
  5485        jsonPath: .spec.clusterName
  5486        name: Cluster
  5487        type: string
  5488      - description: Total number of machines desired by this MachineDeployment
  5489        jsonPath: .spec.replicas
  5490        name: Desired
  5491        priority: 10
  5492        type: integer
  5493      - description: Total number of non-terminated machines targeted by this MachineDeployment
  5494        jsonPath: .status.replicas
  5495        name: Replicas
  5496        type: integer
  5497      - description: Total number of ready machines targeted by this MachineDeployment
  5498        jsonPath: .status.readyReplicas
  5499        name: Ready
  5500        type: integer
  5501      - description: Total number of non-terminated machines targeted by this deployment
  5502          that have the desired template spec
  5503        jsonPath: .status.updatedReplicas
  5504        name: Updated
  5505        type: integer
  5506      - description: Total number of unavailable machines targeted by this MachineDeployment
  5507        jsonPath: .status.unavailableReplicas
  5508        name: Unavailable
  5509        type: integer
  5510      - description: MachineDeployment status such as ScalingUp/ScalingDown/Running/Failed/Unknown
  5511        jsonPath: .status.phase
  5512        name: Phase
  5513        type: string
  5514      - description: Time duration since creation of MachineDeployment
  5515        jsonPath: .metadata.creationTimestamp
  5516        name: Age
  5517        type: date
  5518      - description: Kubernetes version associated with this MachineDeployment
  5519        jsonPath: .spec.template.spec.version
  5520        name: Version
  5521        type: string
  5522      name: v1beta1
  5523      schema:
  5524        openAPIV3Schema:
  5525          description: MachineDeployment is the Schema for the machinedeployments API.
  5526          properties:
  5527            apiVersion:
  5528              description: 'APIVersion defines the versioned schema of this representation
  5529                of an object. Servers should convert recognized schemas to the latest
  5530                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  5531              type: string
  5532            kind:
  5533              description: 'Kind is a string value representing the REST resource this
  5534                object represents. Servers may infer this from the endpoint the client
  5535                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5536              type: string
  5537            metadata:
  5538              type: object
  5539            spec:
  5540              description: MachineDeploymentSpec defines the desired state of MachineDeployment.
  5541              properties:
  5542                clusterName:
  5543                  description: ClusterName is the name of the Cluster this object belongs
  5544                    to.
  5545                  minLength: 1
  5546                  type: string
  5547                minReadySeconds:
  5548                  description: MinReadySeconds is the minimum number of seconds for
  5549                    which a Node for a newly created machine should be ready before
  5550                    considering the replica available. Defaults to 0 (machine will be
  5551                    considered available as soon as the Node is ready)
  5552                  format: int32
  5553                  type: integer
  5554                paused:
  5555                  description: Indicates that the deployment is paused.
  5556                  type: boolean
  5557                progressDeadlineSeconds:
  5558                  description: The maximum time in seconds for a deployment to make
  5559                    progress before it is considered to be failed. The deployment controller
  5560                    will continue to process failed deployments and a condition with
  5561                    a ProgressDeadlineExceeded reason will be surfaced in the deployment
  5562                    status. Note that progress will not be estimated during the time
  5563                    a deployment is paused. Defaults to 600s.
  5564                  format: int32
  5565                  type: integer
  5566                replicas:
  5567                  description: "Number of desired machines. This is a pointer to distinguish
  5568                    between explicit zero and not specified. \n Defaults to: * if the
  5569                    Kubernetes autoscaler min size and max size annotations are set:
  5570                    - if it's a new MachineDeployment, use min size - if the replicas
  5571                    field of the old MachineDeployment is < min size, use min size -
  5572                    if the replicas field of the old MachineDeployment is > max size,
  5573                    use max size - if the replicas field of the old MachineDeployment
  5574                    is in the (min size, max size) range, keep the value from the oldMD
  5575                    * otherwise use 1 Note: Defaulting will be run whenever the replicas
  5576                    field is not set: * A new MachineDeployment is created with replicas
  5577                    not set. * On an existing MachineDeployment the replicas field was
  5578                    first set and is now unset. Those cases are especially relevant
  5579                    for the following Kubernetes autoscaler use cases: * A new MachineDeployment
  5580                    is created and replicas should be managed by the autoscaler * An
  5581                    existing MachineDeployment which initially wasn't controlled by
  5582                    the autoscaler should be later controlled by the autoscaler"
  5583                  format: int32
  5584                  type: integer
  5585                revisionHistoryLimit:
  5586                  description: The number of old MachineSets to retain to allow rollback.
  5587                    This is a pointer to distinguish between explicit zero and not specified.
  5588                    Defaults to 1.
  5589                  format: int32
  5590                  type: integer
  5591                rolloutAfter:
  5592                  description: 'RolloutAfter is a field to indicate a rollout should
  5593                    be performed after the specified time even if no changes have been
  5594                    made to the MachineDeployment. Example: In the YAML the time can
  5595                    be specified in the RFC3339 format. To specify the rolloutAfter
  5596                    target as March 9, 2023, at 9 am UTC use "2023-03-09T09:00:00Z".'
  5597                  format: date-time
  5598                  type: string
  5599                selector:
  5600                  description: Label selector for machines. Existing MachineSets whose
  5601                    machines are selected by this will be the ones affected by this
  5602                    deployment. It must match the machine template's labels.
  5603                  properties:
  5604                    matchExpressions:
  5605                      description: matchExpressions is a list of label selector requirements.
  5606                        The requirements are ANDed.
  5607                      items:
  5608                        description: A label selector requirement is a selector that
  5609                          contains values, a key, and an operator that relates the key
  5610                          and values.
  5611                        properties:
  5612                          key:
  5613                            description: key is the label key that the selector applies
  5614                              to.
  5615                            type: string
  5616                          operator:
  5617                            description: operator represents a key's relationship to
  5618                              a set of values. Valid operators are In, NotIn, Exists
  5619                              and DoesNotExist.
  5620                            type: string
  5621                          values:
  5622                            description: values is an array of string values. If the
  5623                              operator is In or NotIn, the values array must be non-empty.
  5624                              If the operator is Exists or DoesNotExist, the values
  5625                              array must be empty. This array is replaced during a strategic
  5626                              merge patch.
  5627                            items:
  5628                              type: string
  5629                            type: array
  5630                        required:
  5631                        - key
  5632                        - operator
  5633                        type: object
  5634                      type: array
  5635                    matchLabels:
  5636                      additionalProperties:
  5637                        type: string
  5638                      description: matchLabels is a map of {key,value} pairs. A single
  5639                        {key,value} in the matchLabels map is equivalent to an element
  5640                        of matchExpressions, whose key field is "key", the operator
  5641                        is "In", and the values array contains only "value". The requirements
  5642                        are ANDed.
  5643                      type: object
  5644                  type: object
  5645                  x-kubernetes-map-type: atomic
  5646                strategy:
  5647                  description: The deployment strategy to use to replace existing machines
  5648                    with new ones.
  5649                  properties:
  5650                    rollingUpdate:
  5651                      description: Rolling update config params. Present only if MachineDeploymentStrategyType
  5652                        = RollingUpdate.
  5653                      properties:
  5654                        deletePolicy:
  5655                          description: DeletePolicy defines the policy used by the MachineDeployment
  5656                            to identify nodes to delete when downscaling. Valid values
  5657                            are "Random, "Newest", "Oldest" When no value is supplied,
  5658                            the default DeletePolicy of MachineSet is used
  5659                          enum:
  5660                          - Random
  5661                          - Newest
  5662                          - Oldest
  5663                          type: string
  5664                        maxSurge:
  5665                          anyOf:
  5666                          - type: integer
  5667                          - type: string
  5668                          description: 'The maximum number of machines that can be scheduled
  5669                            above the desired number of machines. Value can be an absolute
  5670                            number (ex: 5) or a percentage of desired machines (ex:
  5671                            10%). This can not be 0 if MaxUnavailable is 0. Absolute
  5672                            number is calculated from percentage by rounding up. Defaults
  5673                            to 1. Example: when this is set to 30%, the new MachineSet
  5674                            can be scaled up immediately when the rolling update starts,
  5675                            such that the total number of old and new machines do not
  5676                            exceed 130% of desired machines. Once old machines have
  5677                            been killed, new MachineSet can be scaled up further, ensuring
  5678                            that total number of machines running at any time during
  5679                            the update is at most 130% of desired machines.'
  5680                          x-kubernetes-int-or-string: true
  5681                        maxUnavailable:
  5682                          anyOf:
  5683                          - type: integer
  5684                          - type: string
  5685                          description: 'The maximum number of machines that can be unavailable
  5686                            during the update. Value can be an absolute number (ex:
  5687                            5) or a percentage of desired machines (ex: 10%). Absolute
  5688                            number is calculated from percentage by rounding down. This
  5689                            can not be 0 if MaxSurge is 0. Defaults to 0. Example: when
  5690                            this is set to 30%, the old MachineSet can be scaled down
  5691                            to 70% of desired machines immediately when the rolling
  5692                            update starts. Once new machines are ready, old MachineSet
  5693                            can be scaled down further, followed by scaling up the new
  5694                            MachineSet, ensuring that the total number of machines available
  5695                            at all times during the update is at least 70% of desired
  5696                            machines.'
  5697                          x-kubernetes-int-or-string: true
  5698                      type: object
  5699                    type:
  5700                      description: Type of deployment. Default is RollingUpdate.
  5701                      enum:
  5702                      - RollingUpdate
  5703                      - OnDelete
  5704                      type: string
  5705                  type: object
  5706                template:
  5707                  description: Template describes the machines that will be created.
  5708                  properties:
  5709                    metadata:
  5710                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  5711                      properties:
  5712                        annotations:
  5713                          additionalProperties:
  5714                            type: string
  5715                          description: 'Annotations is an unstructured key value map
  5716                            stored with a resource that may be set by external tools
  5717                            to store and retrieve arbitrary metadata. They are not queryable
  5718                            and should be preserved when modifying objects. More info:
  5719                            http://kubernetes.io/docs/user-guide/annotations'
  5720                          type: object
  5721                        labels:
  5722                          additionalProperties:
  5723                            type: string
  5724                          description: 'Map of string keys and values that can be used
  5725                            to organize and categorize (scope and select) objects. May
  5726                            match selectors of replication controllers and services.
  5727                            More info: http://kubernetes.io/docs/user-guide/labels'
  5728                          type: object
  5729                      type: object
  5730                    spec:
  5731                      description: 'Specification of the desired behavior of the machine.
  5732                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  5733                      properties:
  5734                        bootstrap:
  5735                          description: Bootstrap is a reference to a local struct which
  5736                            encapsulates fields to configure the Machine’s bootstrapping
  5737                            mechanism.
  5738                          properties:
  5739                            configRef:
  5740                              description: ConfigRef is a reference to a bootstrap provider-specific
  5741                                resource that holds configuration details. The reference
  5742                                is optional to allow users/operators to specify Bootstrap.DataSecretName
  5743                                without the need of a controller.
  5744                              properties:
  5745                                apiVersion:
  5746                                  description: API version of the referent.
  5747                                  type: string
  5748                                fieldPath:
  5749                                  description: 'If referring to a piece of an object
  5750                                    instead of an entire object, this string should
  5751                                    contain a valid JSON/Go field access statement,
  5752                                    such as desiredState.manifest.containers[2]. For
  5753                                    example, if the object reference is to a container
  5754                                    within a pod, this would take on a value like: "spec.containers{name}"
  5755                                    (where "name" refers to the name of the container
  5756                                    that triggered the event) or if no container name
  5757                                    is specified "spec.containers[2]" (container with
  5758                                    index 2 in this pod). This syntax is chosen only
  5759                                    to have some well-defined way of referencing a part
  5760                                    of an object. TODO: this design is not final and
  5761                                    this field is subject to change in the future.'
  5762                                  type: string
  5763                                kind:
  5764                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5765                                  type: string
  5766                                name:
  5767                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5768                                  type: string
  5769                                namespace:
  5770                                  description: 'Namespace of the referent. More info:
  5771                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  5772                                  type: string
  5773                                resourceVersion:
  5774                                  description: 'Specific resourceVersion to which this
  5775                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  5776                                  type: string
  5777                                uid:
  5778                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  5779                                  type: string
  5780                              type: object
  5781                              x-kubernetes-map-type: atomic
  5782                            dataSecretName:
  5783                              description: DataSecretName is the name of the secret
  5784                                that stores the bootstrap data script. If nil, the Machine
  5785                                should remain in the Pending state.
  5786                              type: string
  5787                          type: object
  5788                        clusterName:
  5789                          description: ClusterName is the name of the Cluster this object
  5790                            belongs to.
  5791                          minLength: 1
  5792                          type: string
  5793                        failureDomain:
  5794                          description: FailureDomain is the failure domain the machine
  5795                            will be created in. Must match a key in the FailureDomains
  5796                            map stored on the cluster object.
  5797                          type: string
  5798                        infrastructureRef:
  5799                          description: InfrastructureRef is a required reference to
  5800                            a custom resource offered by an infrastructure provider.
  5801                          properties:
  5802                            apiVersion:
  5803                              description: API version of the referent.
  5804                              type: string
  5805                            fieldPath:
  5806                              description: 'If referring to a piece of an object instead
  5807                                of an entire object, this string should contain a valid
  5808                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
  5809                                For example, if the object reference is to a container
  5810                                within a pod, this would take on a value like: "spec.containers{name}"
  5811                                (where "name" refers to the name of the container that
  5812                                triggered the event) or if no container name is specified
  5813                                "spec.containers[2]" (container with index 2 in this
  5814                                pod). This syntax is chosen only to have some well-defined
  5815                                way of referencing a part of an object. TODO: this design
  5816                                is not final and this field is subject to change in
  5817                                the future.'
  5818                              type: string
  5819                            kind:
  5820                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5821                              type: string
  5822                            name:
  5823                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5824                              type: string
  5825                            namespace:
  5826                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  5827                              type: string
  5828                            resourceVersion:
  5829                              description: 'Specific resourceVersion to which this reference
  5830                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  5831                              type: string
  5832                            uid:
  5833                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  5834                              type: string
  5835                          type: object
  5836                          x-kubernetes-map-type: atomic
  5837                        nodeDeletionTimeout:
  5838                          description: NodeDeletionTimeout defines how long the controller
  5839                            will attempt to delete the Node that the Machine hosts after
  5840                            the Machine is marked for deletion. A duration of 0 will
  5841                            retry deletion indefinitely. Defaults to 10 seconds.
  5842                          type: string
  5843                        nodeDrainTimeout:
  5844                          description: 'NodeDrainTimeout is the total amount of time
  5845                            that the controller will spend on draining a node. The default
  5846                            value is 0, meaning that the node can be drained without
  5847                            any time limitations. NOTE: NodeDrainTimeout is different
  5848                            from `kubectl drain --timeout`'
  5849                          type: string
  5850                        nodeVolumeDetachTimeout:
  5851                          description: NodeVolumeDetachTimeout is the total amount of
  5852                            time that the controller will spend on waiting for all volumes
  5853                            to be detached. The default value is 0, meaning that the
  5854                            volumes can be detached without any time limitations.
  5855                          type: string
  5856                        providerID:
  5857                          description: ProviderID is the identification ID of the machine
  5858                            provided by the provider. This field must match the provider
  5859                            ID as seen on the node object corresponding to this machine.
  5860                            This field is required by higher level consumers of cluster-api.
  5861                            Example use case is cluster autoscaler with cluster-api
  5862                            as provider. Clean-up logic in the autoscaler compares machines
  5863                            to nodes to find out machines at provider which could not
  5864                            get registered as Kubernetes nodes. With cluster-api as
  5865                            a generic out-of-tree provider for autoscaler, this field
  5866                            is required by autoscaler to be able to have a provider
  5867                            view of the list of machines. Another list of nodes is queried
  5868                            from the k8s apiserver and then a comparison is done to
  5869                            find out unregistered machines and are marked for delete.
  5870                            This field will be set by the actuators and consumed by
  5871                            higher level entities like autoscaler that will be interfacing
  5872                            with cluster-api as generic provider.
  5873                          type: string
  5874                        version:
  5875                          description: Version defines the desired Kubernetes version.
  5876                            This field is meant to be optionally used by bootstrap providers.
  5877                          type: string
  5878                      required:
  5879                      - bootstrap
  5880                      - clusterName
  5881                      - infrastructureRef
  5882                      type: object
  5883                  type: object
  5884              required:
  5885              - clusterName
  5886              - selector
  5887              - template
  5888              type: object
  5889            status:
  5890              description: MachineDeploymentStatus defines the observed state of MachineDeployment.
  5891              properties:
  5892                availableReplicas:
  5893                  description: Total number of available machines (ready for at least
  5894                    minReadySeconds) targeted by this deployment.
  5895                  format: int32
  5896                  type: integer
  5897                conditions:
  5898                  description: Conditions defines current service state of the MachineDeployment.
  5899                  items:
  5900                    description: Condition defines an observation of a Cluster API resource
  5901                      operational state.
  5902                    properties:
  5903                      lastTransitionTime:
  5904                        description: Last time the condition transitioned from one status
  5905                          to another. This should be when the underlying condition changed.
  5906                          If that is not known, then using the time when the API field
  5907                          changed is acceptable.
  5908                        format: date-time
  5909                        type: string
  5910                      message:
  5911                        description: A human readable message indicating details about
  5912                          the transition. This field may be empty.
  5913                        type: string
  5914                      reason:
  5915                        description: The reason for the condition's last transition
  5916                          in CamelCase. The specific API may choose whether or not this
  5917                          field is considered a guaranteed API. This field may not be
  5918                          empty.
  5919                        type: string
  5920                      severity:
  5921                        description: Severity provides an explicit classification of
  5922                          Reason code, so the users or machines can immediately understand
  5923                          the current situation and act accordingly. The Severity field
  5924                          MUST be set only when Status=False.
  5925                        type: string
  5926                      status:
  5927                        description: Status of the condition, one of True, False, Unknown.
  5928                        type: string
  5929                      type:
  5930                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  5931                          Many .condition.type values are consistent across resources
  5932                          like Available, but because arbitrary conditions can be useful
  5933                          (see .node.status.conditions), the ability to deconflict is
  5934                          important.
  5935                        type: string
  5936                    required:
  5937                    - lastTransitionTime
  5938                    - status
  5939                    - type
  5940                    type: object
  5941                  type: array
  5942                observedGeneration:
  5943                  description: The generation observed by the deployment controller.
  5944                  format: int64
  5945                  type: integer
  5946                phase:
  5947                  description: Phase represents the current phase of a MachineDeployment
  5948                    (ScalingUp, ScalingDown, Running, Failed, or Unknown).
  5949                  type: string
  5950                readyReplicas:
  5951                  description: Total number of ready machines targeted by this deployment.
  5952                  format: int32
  5953                  type: integer
  5954                replicas:
  5955                  description: Total number of non-terminated machines targeted by this
  5956                    deployment (their labels match the selector).
  5957                  format: int32
  5958                  type: integer
  5959                selector:
  5960                  description: 'Selector is the same as the label selector but in the
  5961                    string format to avoid introspection by clients. The string will
  5962                    be in the same format as the query-param syntax. More info about
  5963                    label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors'
  5964                  type: string
  5965                unavailableReplicas:
  5966                  description: Total number of unavailable machines targeted by this
  5967                    deployment. This is the total number of machines that are still
  5968                    required for the deployment to have 100% available capacity. They
  5969                    may either be machines that are running but not yet available or
  5970                    machines that still have not been created.
  5971                  format: int32
  5972                  type: integer
  5973                updatedReplicas:
  5974                  description: Total number of non-terminated machines targeted by this
  5975                    deployment that have the desired template spec.
  5976                  format: int32
  5977                  type: integer
  5978              type: object
  5979          type: object
  5980      served: true
  5981      storage: true
  5982      subresources:
  5983        scale:
  5984          labelSelectorPath: .status.selector
  5985          specReplicasPath: .spec.replicas
  5986          statusReplicasPath: .status.replicas
  5987        status: {}
  5988  ---
  5989  apiVersion: apiextensions.k8s.io/v1
  5990  kind: CustomResourceDefinition
  5991  metadata:
  5992    annotations:
  5993      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
  5994      controller-gen.kubebuilder.io/version: v0.12.0
  5995    labels:
  5996      cluster.x-k8s.io/provider: cluster-api
  5997    name: machinehealthchecks.cluster.x-k8s.io
  5998  spec:
  5999    conversion:
  6000      strategy: Webhook
  6001      webhook:
  6002        clientConfig:
  6003          caBundle: Cg==
  6004          service:
  6005            name: capi-webhook-service
  6006            namespace: capi-system
  6007            path: /convert
  6008        conversionReviewVersions:
  6009        - v1
  6010        - v1beta1
  6011    group: cluster.x-k8s.io
  6012    names:
  6013      categories:
  6014      - cluster-api
  6015      kind: MachineHealthCheck
  6016      listKind: MachineHealthCheckList
  6017      plural: machinehealthchecks
  6018      shortNames:
  6019      - mhc
  6020      - mhcs
  6021      singular: machinehealthcheck
  6022    scope: Namespaced
  6023    versions:
  6024    - additionalPrinterColumns:
  6025      - description: Maximum number of unhealthy machines allowed
  6026        jsonPath: .spec.maxUnhealthy
  6027        name: MaxUnhealthy
  6028        type: string
  6029      - description: Number of machines currently monitored
  6030        jsonPath: .status.expectedMachines
  6031        name: ExpectedMachines
  6032        type: integer
  6033      - description: Current observed healthy machines
  6034        jsonPath: .status.currentHealthy
  6035        name: CurrentHealthy
  6036        type: integer
  6037      deprecated: true
  6038      name: v1alpha3
  6039      schema:
  6040        openAPIV3Schema:
  6041          description: "MachineHealthCheck is the Schema for the machinehealthchecks
  6042            API. \n Deprecated: This type will be removed in one of the next releases."
  6043          properties:
  6044            apiVersion:
  6045              description: 'APIVersion defines the versioned schema of this representation
  6046                of an object. Servers should convert recognized schemas to the latest
  6047                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  6048              type: string
  6049            kind:
  6050              description: 'Kind is a string value representing the REST resource this
  6051                object represents. Servers may infer this from the endpoint the client
  6052                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6053              type: string
  6054            metadata:
  6055              type: object
  6056            spec:
  6057              description: Specification of machine health check policy
  6058              properties:
  6059                clusterName:
  6060                  description: ClusterName is the name of the Cluster this object belongs
  6061                    to.
  6062                  minLength: 1
  6063                  type: string
  6064                maxUnhealthy:
  6065                  anyOf:
  6066                  - type: integer
  6067                  - type: string
  6068                  description: Any further remediation is only allowed if at most "MaxUnhealthy"
  6069                    machines selected by "selector" are not healthy.
  6070                  x-kubernetes-int-or-string: true
  6071                nodeStartupTimeout:
  6072                  description: Machines older than this duration without a node will
  6073                    be considered to have failed and will be remediated.
  6074                  type: string
  6075                remediationTemplate:
  6076                  description: "RemediationTemplate is a reference to a remediation
  6077                    template provided by an infrastructure provider. \n This field is
  6078                    completely optional, when filled, the MachineHealthCheck controller
  6079                    creates a new object from the template referenced and hands off
  6080                    remediation of the machine to a controller that lives outside of
  6081                    Cluster API."
  6082                  properties:
  6083                    apiVersion:
  6084                      description: API version of the referent.
  6085                      type: string
  6086                    fieldPath:
  6087                      description: 'If referring to a piece of an object instead of
  6088                        an entire object, this string should contain a valid JSON/Go
  6089                        field access statement, such as desiredState.manifest.containers[2].
  6090                        For example, if the object reference is to a container within
  6091                        a pod, this would take on a value like: "spec.containers{name}"
  6092                        (where "name" refers to the name of the container that triggered
  6093                        the event) or if no container name is specified "spec.containers[2]"
  6094                        (container with index 2 in this pod). This syntax is chosen
  6095                        only to have some well-defined way of referencing a part of
  6096                        an object. TODO: this design is not final and this field is
  6097                        subject to change in the future.'
  6098                      type: string
  6099                    kind:
  6100                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6101                      type: string
  6102                    name:
  6103                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6104                      type: string
  6105                    namespace:
  6106                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  6107                      type: string
  6108                    resourceVersion:
  6109                      description: 'Specific resourceVersion to which this reference
  6110                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  6111                      type: string
  6112                    uid:
  6113                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  6114                      type: string
  6115                  type: object
  6116                  x-kubernetes-map-type: atomic
  6117                selector:
  6118                  description: Label selector to match machines whose health will be
  6119                    exercised
  6120                  properties:
  6121                    matchExpressions:
  6122                      description: matchExpressions is a list of label selector requirements.
  6123                        The requirements are ANDed.
  6124                      items:
  6125                        description: A label selector requirement is a selector that
  6126                          contains values, a key, and an operator that relates the key
  6127                          and values.
  6128                        properties:
  6129                          key:
  6130                            description: key is the label key that the selector applies
  6131                              to.
  6132                            type: string
  6133                          operator:
  6134                            description: operator represents a key's relationship to
  6135                              a set of values. Valid operators are In, NotIn, Exists
  6136                              and DoesNotExist.
  6137                            type: string
  6138                          values:
  6139                            description: values is an array of string values. If the
  6140                              operator is In or NotIn, the values array must be non-empty.
  6141                              If the operator is Exists or DoesNotExist, the values
  6142                              array must be empty. This array is replaced during a strategic
  6143                              merge patch.
  6144                            items:
  6145                              type: string
  6146                            type: array
  6147                        required:
  6148                        - key
  6149                        - operator
  6150                        type: object
  6151                      type: array
  6152                    matchLabels:
  6153                      additionalProperties:
  6154                        type: string
  6155                      description: matchLabels is a map of {key,value} pairs. A single
  6156                        {key,value} in the matchLabels map is equivalent to an element
  6157                        of matchExpressions, whose key field is "key", the operator
  6158                        is "In", and the values array contains only "value". The requirements
  6159                        are ANDed.
  6160                      type: object
  6161                  type: object
  6162                  x-kubernetes-map-type: atomic
  6163                unhealthyConditions:
  6164                  description: UnhealthyConditions contains a list of the conditions
  6165                    that determine whether a node is considered unhealthy.  The conditions
  6166                    are combined in a logical OR, i.e. if any of the conditions is met,
  6167                    the node is unhealthy.
  6168                  items:
  6169                    description: UnhealthyCondition represents a Node condition type
  6170                      and value with a timeout specified as a duration.  When the named
  6171                      condition has been in the given status for at least the timeout
  6172                      value, a node is considered unhealthy.
  6173                    properties:
  6174                      status:
  6175                        minLength: 1
  6176                        type: string
  6177                      timeout:
  6178                        type: string
  6179                      type:
  6180                        minLength: 1
  6181                        type: string
  6182                    required:
  6183                    - status
  6184                    - timeout
  6185                    - type
  6186                    type: object
  6187                  minItems: 1
  6188                  type: array
  6189              required:
  6190              - clusterName
  6191              - selector
  6192              - unhealthyConditions
  6193              type: object
  6194            status:
  6195              description: Most recently observed status of MachineHealthCheck resource
  6196              properties:
  6197                conditions:
  6198                  description: Conditions defines current service state of the MachineHealthCheck.
  6199                  items:
  6200                    description: Condition defines an observation of a Cluster API resource
  6201                      operational state.
  6202                    properties:
  6203                      lastTransitionTime:
  6204                        description: Last time the condition transitioned from one status
  6205                          to another. This should be when the underlying condition changed.
  6206                          If that is not known, then using the time when the API field
  6207                          changed is acceptable.
  6208                        format: date-time
  6209                        type: string
  6210                      message:
  6211                        description: A human readable message indicating details about
  6212                          the transition. This field may be empty.
  6213                        type: string
  6214                      reason:
  6215                        description: The reason for the condition's last transition
  6216                          in CamelCase. The specific API may choose whether or not this
  6217                          field is considered a guaranteed API. This field may not be
  6218                          empty.
  6219                        type: string
  6220                      severity:
  6221                        description: Severity provides an explicit classification of
  6222                          Reason code, so the users or machines can immediately understand
  6223                          the current situation and act accordingly. The Severity field
  6224                          MUST be set only when Status=False.
  6225                        type: string
  6226                      status:
  6227                        description: Status of the condition, one of True, False, Unknown.
  6228                        type: string
  6229                      type:
  6230                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  6231                          Many .condition.type values are consistent across resources
  6232                          like Available, but because arbitrary conditions can be useful
  6233                          (see .node.status.conditions), the ability to deconflict is
  6234                          important.
  6235                        type: string
  6236                    required:
  6237                    - status
  6238                    - type
  6239                    type: object
  6240                  type: array
  6241                currentHealthy:
  6242                  description: total number of healthy machines counted by this machine
  6243                    health check
  6244                  format: int32
  6245                  minimum: 0
  6246                  type: integer
  6247                expectedMachines:
  6248                  description: total number of machines counted by this machine health
  6249                    check
  6250                  format: int32
  6251                  minimum: 0
  6252                  type: integer
  6253                observedGeneration:
  6254                  description: ObservedGeneration is the latest generation observed
  6255                    by the controller.
  6256                  format: int64
  6257                  type: integer
  6258                remediationsAllowed:
  6259                  description: RemediationsAllowed is the number of further remediations
  6260                    allowed by this machine health check before maxUnhealthy short circuiting
  6261                    will be applied
  6262                  format: int32
  6263                  minimum: 0
  6264                  type: integer
  6265                targets:
  6266                  description: Targets shows the current list of machines the machine
  6267                    health check is watching
  6268                  items:
  6269                    type: string
  6270                  type: array
  6271              type: object
  6272          type: object
  6273      served: false
  6274      storage: false
  6275      subresources:
  6276        status: {}
  6277    - additionalPrinterColumns:
  6278      - description: Cluster
  6279        jsonPath: .spec.clusterName
  6280        name: Cluster
  6281        type: string
  6282      - description: Time duration since creation of MachineHealthCheck
  6283        jsonPath: .metadata.creationTimestamp
  6284        name: Age
  6285        type: date
  6286      - description: Maximum number of unhealthy machines allowed
  6287        jsonPath: .spec.maxUnhealthy
  6288        name: MaxUnhealthy
  6289        type: string
  6290      - description: Number of machines currently monitored
  6291        jsonPath: .status.expectedMachines
  6292        name: ExpectedMachines
  6293        type: integer
  6294      - description: Current observed healthy machines
  6295        jsonPath: .status.currentHealthy
  6296        name: CurrentHealthy
  6297        type: integer
  6298      deprecated: true
  6299      name: v1alpha4
  6300      schema:
  6301        openAPIV3Schema:
  6302          description: "MachineHealthCheck is the Schema for the machinehealthchecks
  6303            API. \n Deprecated: This type will be removed in one of the next releases."
  6304          properties:
  6305            apiVersion:
  6306              description: 'APIVersion defines the versioned schema of this representation
  6307                of an object. Servers should convert recognized schemas to the latest
  6308                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  6309              type: string
  6310            kind:
  6311              description: 'Kind is a string value representing the REST resource this
  6312                object represents. Servers may infer this from the endpoint the client
  6313                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6314              type: string
  6315            metadata:
  6316              type: object
  6317            spec:
  6318              description: Specification of machine health check policy
  6319              properties:
  6320                clusterName:
  6321                  description: ClusterName is the name of the Cluster this object belongs
  6322                    to.
  6323                  minLength: 1
  6324                  type: string
  6325                maxUnhealthy:
  6326                  anyOf:
  6327                  - type: integer
  6328                  - type: string
  6329                  description: Any further remediation is only allowed if at most "MaxUnhealthy"
  6330                    machines selected by "selector" are not healthy.
  6331                  x-kubernetes-int-or-string: true
  6332                nodeStartupTimeout:
  6333                  description: Machines older than this duration without a node will
  6334                    be considered to have failed and will be remediated. If not set,
  6335                    this value is defaulted to 10 minutes. If you wish to disable this
  6336                    feature, set the value explicitly to 0.
  6337                  type: string
  6338                remediationTemplate:
  6339                  description: "RemediationTemplate is a reference to a remediation
  6340                    template provided by an infrastructure provider. \n This field is
  6341                    completely optional, when filled, the MachineHealthCheck controller
  6342                    creates a new object from the template referenced and hands off
  6343                    remediation of the machine to a controller that lives outside of
  6344                    Cluster API."
  6345                  properties:
  6346                    apiVersion:
  6347                      description: API version of the referent.
  6348                      type: string
  6349                    fieldPath:
  6350                      description: 'If referring to a piece of an object instead of
  6351                        an entire object, this string should contain a valid JSON/Go
  6352                        field access statement, such as desiredState.manifest.containers[2].
  6353                        For example, if the object reference is to a container within
  6354                        a pod, this would take on a value like: "spec.containers{name}"
  6355                        (where "name" refers to the name of the container that triggered
  6356                        the event) or if no container name is specified "spec.containers[2]"
  6357                        (container with index 2 in this pod). This syntax is chosen
  6358                        only to have some well-defined way of referencing a part of
  6359                        an object. TODO: this design is not final and this field is
  6360                        subject to change in the future.'
  6361                      type: string
  6362                    kind:
  6363                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6364                      type: string
  6365                    name:
  6366                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6367                      type: string
  6368                    namespace:
  6369                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  6370                      type: string
  6371                    resourceVersion:
  6372                      description: 'Specific resourceVersion to which this reference
  6373                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  6374                      type: string
  6375                    uid:
  6376                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  6377                      type: string
  6378                  type: object
  6379                  x-kubernetes-map-type: atomic
  6380                selector:
  6381                  description: Label selector to match machines whose health will be
  6382                    exercised
  6383                  properties:
  6384                    matchExpressions:
  6385                      description: matchExpressions is a list of label selector requirements.
  6386                        The requirements are ANDed.
  6387                      items:
  6388                        description: A label selector requirement is a selector that
  6389                          contains values, a key, and an operator that relates the key
  6390                          and values.
  6391                        properties:
  6392                          key:
  6393                            description: key is the label key that the selector applies
  6394                              to.
  6395                            type: string
  6396                          operator:
  6397                            description: operator represents a key's relationship to
  6398                              a set of values. Valid operators are In, NotIn, Exists
  6399                              and DoesNotExist.
  6400                            type: string
  6401                          values:
  6402                            description: values is an array of string values. If the
  6403                              operator is In or NotIn, the values array must be non-empty.
  6404                              If the operator is Exists or DoesNotExist, the values
  6405                              array must be empty. This array is replaced during a strategic
  6406                              merge patch.
  6407                            items:
  6408                              type: string
  6409                            type: array
  6410                        required:
  6411                        - key
  6412                        - operator
  6413                        type: object
  6414                      type: array
  6415                    matchLabels:
  6416                      additionalProperties:
  6417                        type: string
  6418                      description: matchLabels is a map of {key,value} pairs. A single
  6419                        {key,value} in the matchLabels map is equivalent to an element
  6420                        of matchExpressions, whose key field is "key", the operator
  6421                        is "In", and the values array contains only "value". The requirements
  6422                        are ANDed.
  6423                      type: object
  6424                  type: object
  6425                  x-kubernetes-map-type: atomic
  6426                unhealthyConditions:
  6427                  description: UnhealthyConditions contains a list of the conditions
  6428                    that determine whether a node is considered unhealthy.  The conditions
  6429                    are combined in a logical OR, i.e. if any of the conditions is met,
  6430                    the node is unhealthy.
  6431                  items:
  6432                    description: UnhealthyCondition represents a Node condition type
  6433                      and value with a timeout specified as a duration.  When the named
  6434                      condition has been in the given status for at least the timeout
  6435                      value, a node is considered unhealthy.
  6436                    properties:
  6437                      status:
  6438                        minLength: 1
  6439                        type: string
  6440                      timeout:
  6441                        type: string
  6442                      type:
  6443                        minLength: 1
  6444                        type: string
  6445                    required:
  6446                    - status
  6447                    - timeout
  6448                    - type
  6449                    type: object
  6450                  minItems: 1
  6451                  type: array
  6452                unhealthyRange:
  6453                  description: 'Any further remediation is only allowed if the number
  6454                    of machines selected by "selector" as not healthy is within the
  6455                    range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg.
  6456                    "[3-5]" - This means that remediation will be allowed only when:
  6457                    (a) there are at least 3 unhealthy machines (and) (b) there are
  6458                    at most 5 unhealthy machines'
  6459                  pattern: ^\[[0-9]+-[0-9]+\]$
  6460                  type: string
  6461              required:
  6462              - clusterName
  6463              - selector
  6464              - unhealthyConditions
  6465              type: object
  6466            status:
  6467              description: Most recently observed status of MachineHealthCheck resource
  6468              properties:
  6469                conditions:
  6470                  description: Conditions defines current service state of the MachineHealthCheck.
  6471                  items:
  6472                    description: Condition defines an observation of a Cluster API resource
  6473                      operational state.
  6474                    properties:
  6475                      lastTransitionTime:
  6476                        description: Last time the condition transitioned from one status
  6477                          to another. This should be when the underlying condition changed.
  6478                          If that is not known, then using the time when the API field
  6479                          changed is acceptable.
  6480                        format: date-time
  6481                        type: string
  6482                      message:
  6483                        description: A human readable message indicating details about
  6484                          the transition. This field may be empty.
  6485                        type: string
  6486                      reason:
  6487                        description: The reason for the condition's last transition
  6488                          in CamelCase. The specific API may choose whether or not this
  6489                          field is considered a guaranteed API. This field may not be
  6490                          empty.
  6491                        type: string
  6492                      severity:
  6493                        description: Severity provides an explicit classification of
  6494                          Reason code, so the users or machines can immediately understand
  6495                          the current situation and act accordingly. The Severity field
  6496                          MUST be set only when Status=False.
  6497                        type: string
  6498                      status:
  6499                        description: Status of the condition, one of True, False, Unknown.
  6500                        type: string
  6501                      type:
  6502                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  6503                          Many .condition.type values are consistent across resources
  6504                          like Available, but because arbitrary conditions can be useful
  6505                          (see .node.status.conditions), the ability to deconflict is
  6506                          important.
  6507                        type: string
  6508                    required:
  6509                    - status
  6510                    - type
  6511                    type: object
  6512                  type: array
  6513                currentHealthy:
  6514                  description: total number of healthy machines counted by this machine
  6515                    health check
  6516                  format: int32
  6517                  minimum: 0
  6518                  type: integer
  6519                expectedMachines:
  6520                  description: total number of machines counted by this machine health
  6521                    check
  6522                  format: int32
  6523                  minimum: 0
  6524                  type: integer
  6525                observedGeneration:
  6526                  description: ObservedGeneration is the latest generation observed
  6527                    by the controller.
  6528                  format: int64
  6529                  type: integer
  6530                remediationsAllowed:
  6531                  description: RemediationsAllowed is the number of further remediations
  6532                    allowed by this machine health check before maxUnhealthy short circuiting
  6533                    will be applied
  6534                  format: int32
  6535                  minimum: 0
  6536                  type: integer
  6537                targets:
  6538                  description: Targets shows the current list of machines the machine
  6539                    health check is watching
  6540                  items:
  6541                    type: string
  6542                  type: array
  6543              type: object
  6544          type: object
  6545      served: true
  6546      storage: false
  6547      subresources:
  6548        status: {}
  6549    - additionalPrinterColumns:
  6550      - description: Cluster
  6551        jsonPath: .spec.clusterName
  6552        name: Cluster
  6553        type: string
  6554      - description: Number of machines currently monitored
  6555        jsonPath: .status.expectedMachines
  6556        name: ExpectedMachines
  6557        type: integer
  6558      - description: Maximum number of unhealthy machines allowed
  6559        jsonPath: .spec.maxUnhealthy
  6560        name: MaxUnhealthy
  6561        type: string
  6562      - description: Current observed healthy machines
  6563        jsonPath: .status.currentHealthy
  6564        name: CurrentHealthy
  6565        type: integer
  6566      - description: Time duration since creation of MachineHealthCheck
  6567        jsonPath: .metadata.creationTimestamp
  6568        name: Age
  6569        type: date
  6570      name: v1beta1
  6571      schema:
  6572        openAPIV3Schema:
  6573          description: MachineHealthCheck is the Schema for the machinehealthchecks
  6574            API.
  6575          properties:
  6576            apiVersion:
  6577              description: 'APIVersion defines the versioned schema of this representation
  6578                of an object. Servers should convert recognized schemas to the latest
  6579                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  6580              type: string
  6581            kind:
  6582              description: 'Kind is a string value representing the REST resource this
  6583                object represents. Servers may infer this from the endpoint the client
  6584                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6585              type: string
  6586            metadata:
  6587              type: object
  6588            spec:
  6589              description: Specification of machine health check policy
  6590              properties:
  6591                clusterName:
  6592                  description: ClusterName is the name of the Cluster this object belongs
  6593                    to.
  6594                  minLength: 1
  6595                  type: string
  6596                maxUnhealthy:
  6597                  anyOf:
  6598                  - type: integer
  6599                  - type: string
  6600                  description: Any further remediation is only allowed if at most "MaxUnhealthy"
  6601                    machines selected by "selector" are not healthy.
  6602                  x-kubernetes-int-or-string: true
  6603                nodeStartupTimeout:
  6604                  description: Machines older than this duration without a node will
  6605                    be considered to have failed and will be remediated. If not set,
  6606                    this value is defaulted to 10 minutes. If you wish to disable this
  6607                    feature, set the value explicitly to 0.
  6608                  type: string
  6609                remediationTemplate:
  6610                  description: "RemediationTemplate is a reference to a remediation
  6611                    template provided by an infrastructure provider. \n This field is
  6612                    completely optional, when filled, the MachineHealthCheck controller
  6613                    creates a new object from the template referenced and hands off
  6614                    remediation of the machine to a controller that lives outside of
  6615                    Cluster API."
  6616                  properties:
  6617                    apiVersion:
  6618                      description: API version of the referent.
  6619                      type: string
  6620                    fieldPath:
  6621                      description: 'If referring to a piece of an object instead of
  6622                        an entire object, this string should contain a valid JSON/Go
  6623                        field access statement, such as desiredState.manifest.containers[2].
  6624                        For example, if the object reference is to a container within
  6625                        a pod, this would take on a value like: "spec.containers{name}"
  6626                        (where "name" refers to the name of the container that triggered
  6627                        the event) or if no container name is specified "spec.containers[2]"
  6628                        (container with index 2 in this pod). This syntax is chosen
  6629                        only to have some well-defined way of referencing a part of
  6630                        an object. TODO: this design is not final and this field is
  6631                        subject to change in the future.'
  6632                      type: string
  6633                    kind:
  6634                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6635                      type: string
  6636                    name:
  6637                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6638                      type: string
  6639                    namespace:
  6640                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  6641                      type: string
  6642                    resourceVersion:
  6643                      description: 'Specific resourceVersion to which this reference
  6644                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  6645                      type: string
  6646                    uid:
  6647                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  6648                      type: string
  6649                  type: object
  6650                  x-kubernetes-map-type: atomic
  6651                selector:
  6652                  description: Label selector to match machines whose health will be
  6653                    exercised
  6654                  properties:
  6655                    matchExpressions:
  6656                      description: matchExpressions is a list of label selector requirements.
  6657                        The requirements are ANDed.
  6658                      items:
  6659                        description: A label selector requirement is a selector that
  6660                          contains values, a key, and an operator that relates the key
  6661                          and values.
  6662                        properties:
  6663                          key:
  6664                            description: key is the label key that the selector applies
  6665                              to.
  6666                            type: string
  6667                          operator:
  6668                            description: operator represents a key's relationship to
  6669                              a set of values. Valid operators are In, NotIn, Exists
  6670                              and DoesNotExist.
  6671                            type: string
  6672                          values:
  6673                            description: values is an array of string values. If the
  6674                              operator is In or NotIn, the values array must be non-empty.
  6675                              If the operator is Exists or DoesNotExist, the values
  6676                              array must be empty. This array is replaced during a strategic
  6677                              merge patch.
  6678                            items:
  6679                              type: string
  6680                            type: array
  6681                        required:
  6682                        - key
  6683                        - operator
  6684                        type: object
  6685                      type: array
  6686                    matchLabels:
  6687                      additionalProperties:
  6688                        type: string
  6689                      description: matchLabels is a map of {key,value} pairs. A single
  6690                        {key,value} in the matchLabels map is equivalent to an element
  6691                        of matchExpressions, whose key field is "key", the operator
  6692                        is "In", and the values array contains only "value". The requirements
  6693                        are ANDed.
  6694                      type: object
  6695                  type: object
  6696                  x-kubernetes-map-type: atomic
  6697                unhealthyConditions:
  6698                  description: UnhealthyConditions contains a list of the conditions
  6699                    that determine whether a node is considered unhealthy.  The conditions
  6700                    are combined in a logical OR, i.e. if any of the conditions is met,
  6701                    the node is unhealthy.
  6702                  items:
  6703                    description: UnhealthyCondition represents a Node condition type
  6704                      and value with a timeout specified as a duration.  When the named
  6705                      condition has been in the given status for at least the timeout
  6706                      value, a node is considered unhealthy.
  6707                    properties:
  6708                      status:
  6709                        minLength: 1
  6710                        type: string
  6711                      timeout:
  6712                        type: string
  6713                      type:
  6714                        minLength: 1
  6715                        type: string
  6716                    required:
  6717                    - status
  6718                    - timeout
  6719                    - type
  6720                    type: object
  6721                  minItems: 1
  6722                  type: array
  6723                unhealthyRange:
  6724                  description: 'Any further remediation is only allowed if the number
  6725                    of machines selected by "selector" as not healthy is within the
  6726                    range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg.
  6727                    "[3-5]" - This means that remediation will be allowed only when:
  6728                    (a) there are at least 3 unhealthy machines (and) (b) there are
  6729                    at most 5 unhealthy machines'
  6730                  pattern: ^\[[0-9]+-[0-9]+\]$
  6731                  type: string
  6732              required:
  6733              - clusterName
  6734              - selector
  6735              - unhealthyConditions
  6736              type: object
  6737            status:
  6738              description: Most recently observed status of MachineHealthCheck resource
  6739              properties:
  6740                conditions:
  6741                  description: Conditions defines current service state of the MachineHealthCheck.
  6742                  items:
  6743                    description: Condition defines an observation of a Cluster API resource
  6744                      operational state.
  6745                    properties:
  6746                      lastTransitionTime:
  6747                        description: Last time the condition transitioned from one status
  6748                          to another. This should be when the underlying condition changed.
  6749                          If that is not known, then using the time when the API field
  6750                          changed is acceptable.
  6751                        format: date-time
  6752                        type: string
  6753                      message:
  6754                        description: A human readable message indicating details about
  6755                          the transition. This field may be empty.
  6756                        type: string
  6757                      reason:
  6758                        description: The reason for the condition's last transition
  6759                          in CamelCase. The specific API may choose whether or not this
  6760                          field is considered a guaranteed API. This field may not be
  6761                          empty.
  6762                        type: string
  6763                      severity:
  6764                        description: Severity provides an explicit classification of
  6765                          Reason code, so the users or machines can immediately understand
  6766                          the current situation and act accordingly. The Severity field
  6767                          MUST be set only when Status=False.
  6768                        type: string
  6769                      status:
  6770                        description: Status of the condition, one of True, False, Unknown.
  6771                        type: string
  6772                      type:
  6773                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  6774                          Many .condition.type values are consistent across resources
  6775                          like Available, but because arbitrary conditions can be useful
  6776                          (see .node.status.conditions), the ability to deconflict is
  6777                          important.
  6778                        type: string
  6779                    required:
  6780                    - lastTransitionTime
  6781                    - status
  6782                    - type
  6783                    type: object
  6784                  type: array
  6785                currentHealthy:
  6786                  description: total number of healthy machines counted by this machine
  6787                    health check
  6788                  format: int32
  6789                  minimum: 0
  6790                  type: integer
  6791                expectedMachines:
  6792                  description: total number of machines counted by this machine health
  6793                    check
  6794                  format: int32
  6795                  minimum: 0
  6796                  type: integer
  6797                observedGeneration:
  6798                  description: ObservedGeneration is the latest generation observed
  6799                    by the controller.
  6800                  format: int64
  6801                  type: integer
  6802                remediationsAllowed:
  6803                  description: RemediationsAllowed is the number of further remediations
  6804                    allowed by this machine health check before maxUnhealthy short circuiting
  6805                    will be applied
  6806                  format: int32
  6807                  minimum: 0
  6808                  type: integer
  6809                targets:
  6810                  description: Targets shows the current list of machines the machine
  6811                    health check is watching
  6812                  items:
  6813                    type: string
  6814                  type: array
  6815              type: object
  6816          type: object
  6817      served: true
  6818      storage: true
  6819      subresources:
  6820        status: {}
  6821  ---
  6822  apiVersion: apiextensions.k8s.io/v1
  6823  kind: CustomResourceDefinition
  6824  metadata:
  6825    annotations:
  6826      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
  6827      controller-gen.kubebuilder.io/version: v0.12.0
  6828    labels:
  6829      cluster.x-k8s.io/provider: cluster-api
  6830    name: machinepools.cluster.x-k8s.io
  6831  spec:
  6832    conversion:
  6833      strategy: Webhook
  6834      webhook:
  6835        clientConfig:
  6836          caBundle: Cg==
  6837          service:
  6838            name: capi-webhook-service
  6839            namespace: capi-system
  6840            path: /convert
  6841        conversionReviewVersions:
  6842        - v1
  6843        - v1beta1
  6844    group: cluster.x-k8s.io
  6845    names:
  6846      categories:
  6847      - cluster-api
  6848      kind: MachinePool
  6849      listKind: MachinePoolList
  6850      plural: machinepools
  6851      shortNames:
  6852      - mp
  6853      singular: machinepool
  6854    scope: Namespaced
  6855    versions:
  6856    - additionalPrinterColumns:
  6857      - description: MachinePool replicas count
  6858        jsonPath: .status.replicas
  6859        name: Replicas
  6860        type: string
  6861      - description: MachinePool status such as Terminating/Pending/Provisioning/Running/Failed
  6862          etc
  6863        jsonPath: .status.phase
  6864        name: Phase
  6865        type: string
  6866      - description: Kubernetes version associated with this MachinePool
  6867        jsonPath: .spec.template.spec.version
  6868        name: Version
  6869        type: string
  6870      deprecated: true
  6871      name: v1alpha3
  6872      schema:
  6873        openAPIV3Schema:
  6874          description: "MachinePool is the Schema for the machinepools API. \n Deprecated:
  6875            This type will be removed in one of the next releases."
  6876          properties:
  6877            apiVersion:
  6878              description: 'APIVersion defines the versioned schema of this representation
  6879                of an object. Servers should convert recognized schemas to the latest
  6880                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  6881              type: string
  6882            kind:
  6883              description: 'Kind is a string value representing the REST resource this
  6884                object represents. Servers may infer this from the endpoint the client
  6885                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6886              type: string
  6887            metadata:
  6888              type: object
  6889            spec:
  6890              description: MachinePoolSpec defines the desired state of MachinePool.
  6891              properties:
  6892                clusterName:
  6893                  description: ClusterName is the name of the Cluster this object belongs
  6894                    to.
  6895                  minLength: 1
  6896                  type: string
  6897                failureDomains:
  6898                  description: FailureDomains is the list of failure domains this MachinePool
  6899                    should be attached to.
  6900                  items:
  6901                    type: string
  6902                  type: array
  6903                minReadySeconds:
  6904                  description: Minimum number of seconds for which a newly created machine
  6905                    instances should be ready. Defaults to 0 (machine instance will
  6906                    be considered available as soon as it is ready)
  6907                  format: int32
  6908                  type: integer
  6909                providerIDList:
  6910                  description: ProviderIDList are the identification IDs of machine
  6911                    instances provided by the provider. This field must match the provider
  6912                    IDs as seen on the node objects corresponding to a machine pool's
  6913                    machine instances.
  6914                  items:
  6915                    type: string
  6916                  type: array
  6917                replicas:
  6918                  description: Number of desired machines. Defaults to 1. This is a
  6919                    pointer to distinguish between explicit zero and not specified.
  6920                  format: int32
  6921                  type: integer
  6922                strategy:
  6923                  description: The deployment strategy to use to replace existing machine
  6924                    instances with new ones.
  6925                  properties:
  6926                    rollingUpdate:
  6927                      description: Rolling update config params. Present only if MachineDeploymentStrategyType
  6928                        = RollingUpdate.
  6929                      properties:
  6930                        maxSurge:
  6931                          anyOf:
  6932                          - type: integer
  6933                          - type: string
  6934                          description: 'The maximum number of machines that can be scheduled
  6935                            above the desired number of machines. Value can be an absolute
  6936                            number (ex: 5) or a percentage of desired machines (ex:
  6937                            10%). This can not be 0 if MaxUnavailable is 0. Absolute
  6938                            number is calculated from percentage by rounding up. Defaults
  6939                            to 1. Example: when this is set to 30%, the new MachineSet
  6940                            can be scaled up immediately when the rolling update starts,
  6941                            such that the total number of old and new machines do not
  6942                            exceed 130% of desired machines. Once old machines have
  6943                            been killed, new MachineSet can be scaled up further, ensuring
  6944                            that total number of machines running at any time during
  6945                            the update is at most 130% of desired machines.'
  6946                          x-kubernetes-int-or-string: true
  6947                        maxUnavailable:
  6948                          anyOf:
  6949                          - type: integer
  6950                          - type: string
  6951                          description: 'The maximum number of machines that can be unavailable
  6952                            during the update. Value can be an absolute number (ex:
  6953                            5) or a percentage of desired machines (ex: 10%). Absolute
  6954                            number is calculated from percentage by rounding down. This
  6955                            can not be 0 if MaxSurge is 0. Defaults to 0. Example: when
  6956                            this is set to 30%, the old MachineSet can be scaled down
  6957                            to 70% of desired machines immediately when the rolling
  6958                            update starts. Once new machines are ready, old MachineSet
  6959                            can be scaled down further, followed by scaling up the new
  6960                            MachineSet, ensuring that the total number of machines available
  6961                            at all times during the update is at least 70% of desired
  6962                            machines.'
  6963                          x-kubernetes-int-or-string: true
  6964                      type: object
  6965                    type:
  6966                      description: Type of deployment. Currently the only supported
  6967                        strategy is "RollingUpdate". Default is RollingUpdate.
  6968                      type: string
  6969                  type: object
  6970                template:
  6971                  description: Template describes the machines that will be created.
  6972                  properties:
  6973                    metadata:
  6974                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  6975                      properties:
  6976                        annotations:
  6977                          additionalProperties:
  6978                            type: string
  6979                          description: 'Annotations is an unstructured key value map
  6980                            stored with a resource that may be set by external tools
  6981                            to store and retrieve arbitrary metadata. They are not queryable
  6982                            and should be preserved when modifying objects. More info:
  6983                            http://kubernetes.io/docs/user-guide/annotations'
  6984                          type: object
  6985                        generateName:
  6986                          description: "GenerateName is an optional prefix, used by
  6987                            the server, to generate a unique name ONLY IF the Name field
  6988                            has not been provided. If this field is used, the name returned
  6989                            to the client will be different than the name passed. This
  6990                            value will also be combined with a unique suffix. The provided
  6991                            value has the same validation rules as the Name field, and
  6992                            may be truncated by the length of the suffix required to
  6993                            make the value unique on the server. \n If this field is
  6994                            specified and the generated name exists, the server will
  6995                            NOT return a 409 - instead, it will either return 201 Created
  6996                            or 500 with Reason ServerTimeout indicating a unique name
  6997                            could not be found in the time allotted, and the client
  6998                            should retry (optionally after the time indicated in the
  6999                            Retry-After header). \n Applied only if Name is not specified.
  7000                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
  7001                            \n Deprecated: This field has no function and is going to
  7002                            be removed in a next release."
  7003                          type: string
  7004                        labels:
  7005                          additionalProperties:
  7006                            type: string
  7007                          description: 'Map of string keys and values that can be used
  7008                            to organize and categorize (scope and select) objects. May
  7009                            match selectors of replication controllers and services.
  7010                            More info: http://kubernetes.io/docs/user-guide/labels'
  7011                          type: object
  7012                        name:
  7013                          description: "Name must be unique within a namespace. Is required
  7014                            when creating resources, although some resources may allow
  7015                            a client to request the generation of an appropriate name
  7016                            automatically. Name is primarily intended for creation idempotence
  7017                            and configuration definition. Cannot be updated. More info:
  7018                            http://kubernetes.io/docs/user-guide/identifiers#names \n
  7019                            Deprecated: This field has no function and is going to be
  7020                            removed in a next release."
  7021                          type: string
  7022                        namespace:
  7023                          description: "Namespace defines the space within each name
  7024                            must be unique. An empty namespace is equivalent to the
  7025                            \"default\" namespace, but \"default\" is the canonical
  7026                            representation. Not all objects are required to be scoped
  7027                            to a namespace - the value of this field for those objects
  7028                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
  7029                            More info: http://kubernetes.io/docs/user-guide/namespaces
  7030                            \n Deprecated: This field has no function and is going to
  7031                            be removed in a next release."
  7032                          type: string
  7033                        ownerReferences:
  7034                          description: "List of objects depended by this object. If
  7035                            ALL objects in the list have been deleted, this object will
  7036                            be garbage collected. If this object is managed by a controller,
  7037                            then an entry in this list will point to this controller,
  7038                            with the controller field set to true. There cannot be more
  7039                            than one managing controller. \n Deprecated: This field
  7040                            has no function and is going to be removed in a next release."
  7041                          items:
  7042                            description: OwnerReference contains enough information
  7043                              to let you identify an owning object. An owning object
  7044                              must be in the same namespace as the dependent, or be
  7045                              cluster-scoped, so there is no namespace field.
  7046                            properties:
  7047                              apiVersion:
  7048                                description: API version of the referent.
  7049                                type: string
  7050                              blockOwnerDeletion:
  7051                                description: If true, AND if the owner has the "foregroundDeletion"
  7052                                  finalizer, then the owner cannot be deleted from the
  7053                                  key-value store until this reference is removed. See
  7054                                  https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
  7055                                  for how the garbage collector interacts with this
  7056                                  field and enforces the foreground deletion. Defaults
  7057                                  to false. To set this field, a user needs "delete"
  7058                                  permission of the owner, otherwise 422 (Unprocessable
  7059                                  Entity) will be returned.
  7060                                type: boolean
  7061                              controller:
  7062                                description: If true, this reference points to the managing
  7063                                  controller.
  7064                                type: boolean
  7065                              kind:
  7066                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7067                                type: string
  7068                              name:
  7069                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names'
  7070                                type: string
  7071                              uid:
  7072                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids'
  7073                                type: string
  7074                            required:
  7075                            - apiVersion
  7076                            - kind
  7077                            - name
  7078                            - uid
  7079                            type: object
  7080                            x-kubernetes-map-type: atomic
  7081                          type: array
  7082                      type: object
  7083                    spec:
  7084                      description: 'Specification of the desired behavior of the machine.
  7085                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  7086                      properties:
  7087                        bootstrap:
  7088                          description: Bootstrap is a reference to a local struct which
  7089                            encapsulates fields to configure the Machine’s bootstrapping
  7090                            mechanism.
  7091                          properties:
  7092                            configRef:
  7093                              description: ConfigRef is a reference to a bootstrap provider-specific
  7094                                resource that holds configuration details. The reference
  7095                                is optional to allow users/operators to specify Bootstrap.Data
  7096                                without the need of a controller.
  7097                              properties:
  7098                                apiVersion:
  7099                                  description: API version of the referent.
  7100                                  type: string
  7101                                fieldPath:
  7102                                  description: 'If referring to a piece of an object
  7103                                    instead of an entire object, this string should
  7104                                    contain a valid JSON/Go field access statement,
  7105                                    such as desiredState.manifest.containers[2]. For
  7106                                    example, if the object reference is to a container
  7107                                    within a pod, this would take on a value like: "spec.containers{name}"
  7108                                    (where "name" refers to the name of the container
  7109                                    that triggered the event) or if no container name
  7110                                    is specified "spec.containers[2]" (container with
  7111                                    index 2 in this pod). This syntax is chosen only
  7112                                    to have some well-defined way of referencing a part
  7113                                    of an object. TODO: this design is not final and
  7114                                    this field is subject to change in the future.'
  7115                                  type: string
  7116                                kind:
  7117                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7118                                  type: string
  7119                                name:
  7120                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7121                                  type: string
  7122                                namespace:
  7123                                  description: 'Namespace of the referent. More info:
  7124                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  7125                                  type: string
  7126                                resourceVersion:
  7127                                  description: 'Specific resourceVersion to which this
  7128                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  7129                                  type: string
  7130                                uid:
  7131                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  7132                                  type: string
  7133                              type: object
  7134                              x-kubernetes-map-type: atomic
  7135                            data:
  7136                              description: "Data contains the bootstrap data, such as
  7137                                cloud-init details scripts. If nil, the Machine should
  7138                                remain in the Pending state. \n Deprecated: Switch to
  7139                                DataSecretName."
  7140                              type: string
  7141                            dataSecretName:
  7142                              description: DataSecretName is the name of the secret
  7143                                that stores the bootstrap data script. If nil, the Machine
  7144                                should remain in the Pending state.
  7145                              type: string
  7146                          type: object
  7147                        clusterName:
  7148                          description: ClusterName is the name of the Cluster this object
  7149                            belongs to.
  7150                          minLength: 1
  7151                          type: string
  7152                        failureDomain:
  7153                          description: FailureDomain is the failure domain the machine
  7154                            will be created in. Must match a key in the FailureDomains
  7155                            map stored on the cluster object.
  7156                          type: string
  7157                        infrastructureRef:
  7158                          description: InfrastructureRef is a required reference to
  7159                            a custom resource offered by an infrastructure provider.
  7160                          properties:
  7161                            apiVersion:
  7162                              description: API version of the referent.
  7163                              type: string
  7164                            fieldPath:
  7165                              description: 'If referring to a piece of an object instead
  7166                                of an entire object, this string should contain a valid
  7167                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
  7168                                For example, if the object reference is to a container
  7169                                within a pod, this would take on a value like: "spec.containers{name}"
  7170                                (where "name" refers to the name of the container that
  7171                                triggered the event) or if no container name is specified
  7172                                "spec.containers[2]" (container with index 2 in this
  7173                                pod). This syntax is chosen only to have some well-defined
  7174                                way of referencing a part of an object. TODO: this design
  7175                                is not final and this field is subject to change in
  7176                                the future.'
  7177                              type: string
  7178                            kind:
  7179                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7180                              type: string
  7181                            name:
  7182                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7183                              type: string
  7184                            namespace:
  7185                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  7186                              type: string
  7187                            resourceVersion:
  7188                              description: 'Specific resourceVersion to which this reference
  7189                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  7190                              type: string
  7191                            uid:
  7192                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  7193                              type: string
  7194                          type: object
  7195                          x-kubernetes-map-type: atomic
  7196                        nodeDrainTimeout:
  7197                          description: 'NodeDrainTimeout is the total amount of time
  7198                            that the controller will spend on draining a node. The default
  7199                            value is 0, meaning that the node can be drained without
  7200                            any time limitations. NOTE: NodeDrainTimeout is different
  7201                            from `kubectl drain --timeout`'
  7202                          type: string
  7203                        providerID:
  7204                          description: ProviderID is the identification ID of the machine
  7205                            provided by the provider. This field must match the provider
  7206                            ID as seen on the node object corresponding to this machine.
  7207                            This field is required by higher level consumers of cluster-api.
  7208                            Example use case is cluster autoscaler with cluster-api
  7209                            as provider. Clean-up logic in the autoscaler compares machines
  7210                            to nodes to find out machines at provider which could not
  7211                            get registered as Kubernetes nodes. With cluster-api as
  7212                            a generic out-of-tree provider for autoscaler, this field
  7213                            is required by autoscaler to be able to have a provider
  7214                            view of the list of machines. Another list of nodes is queried
  7215                            from the k8s apiserver and then a comparison is done to
  7216                            find out unregistered machines and are marked for delete.
  7217                            This field will be set by the actuators and consumed by
  7218                            higher level entities like autoscaler that will be interfacing
  7219                            with cluster-api as generic provider.
  7220                          type: string
  7221                        version:
  7222                          description: Version defines the desired Kubernetes version.
  7223                            This field is meant to be optionally used by bootstrap providers.
  7224                          type: string
  7225                      required:
  7226                      - bootstrap
  7227                      - clusterName
  7228                      - infrastructureRef
  7229                      type: object
  7230                  type: object
  7231              required:
  7232              - clusterName
  7233              - template
  7234              type: object
  7235            status:
  7236              description: MachinePoolStatus defines the observed state of MachinePool.
  7237              properties:
  7238                availableReplicas:
  7239                  description: The number of available replicas (ready for at least
  7240                    minReadySeconds) for this MachinePool.
  7241                  format: int32
  7242                  type: integer
  7243                bootstrapReady:
  7244                  description: BootstrapReady is the state of the bootstrap provider.
  7245                  type: boolean
  7246                conditions:
  7247                  description: Conditions define the current service state of the MachinePool.
  7248                  items:
  7249                    description: Condition defines an observation of a Cluster API resource
  7250                      operational state.
  7251                    properties:
  7252                      lastTransitionTime:
  7253                        description: Last time the condition transitioned from one status
  7254                          to another. This should be when the underlying condition changed.
  7255                          If that is not known, then using the time when the API field
  7256                          changed is acceptable.
  7257                        format: date-time
  7258                        type: string
  7259                      message:
  7260                        description: A human readable message indicating details about
  7261                          the transition. This field may be empty.
  7262                        type: string
  7263                      reason:
  7264                        description: The reason for the condition's last transition
  7265                          in CamelCase. The specific API may choose whether or not this
  7266                          field is considered a guaranteed API. This field may not be
  7267                          empty.
  7268                        type: string
  7269                      severity:
  7270                        description: Severity provides an explicit classification of
  7271                          Reason code, so the users or machines can immediately understand
  7272                          the current situation and act accordingly. The Severity field
  7273                          MUST be set only when Status=False.
  7274                        type: string
  7275                      status:
  7276                        description: Status of the condition, one of True, False, Unknown.
  7277                        type: string
  7278                      type:
  7279                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  7280                          Many .condition.type values are consistent across resources
  7281                          like Available, but because arbitrary conditions can be useful
  7282                          (see .node.status.conditions), the ability to deconflict is
  7283                          important.
  7284                        type: string
  7285                    required:
  7286                    - status
  7287                    - type
  7288                    type: object
  7289                  type: array
  7290                failureMessage:
  7291                  description: FailureMessage indicates that there is a problem reconciling
  7292                    the state, and will be set to a descriptive error message.
  7293                  type: string
  7294                failureReason:
  7295                  description: FailureReason indicates that there is a problem reconciling
  7296                    the state, and will be set to a token value suitable for programmatic
  7297                    interpretation.
  7298                  type: string
  7299                infrastructureReady:
  7300                  description: InfrastructureReady is the state of the infrastructure
  7301                    provider.
  7302                  type: boolean
  7303                nodeRefs:
  7304                  description: NodeRefs will point to the corresponding Nodes if it
  7305                    they exist.
  7306                  items:
  7307                    description: "ObjectReference contains enough information to let
  7308                      you inspect or modify the referred object. --- New uses of this
  7309                      type are discouraged because of difficulty describing its usage
  7310                      when embedded in APIs. 1. Ignored fields.  It includes many fields
  7311                      which are not generally honored.  For instance, ResourceVersion
  7312                      and FieldPath are both very rarely valid in actual usage. 2. Invalid
  7313                      usage help.  It is impossible to add specific help for individual
  7314                      usage.  In most embedded usages, there are particular restrictions
  7315                      like, \"must refer only to types A and B\" or \"UID not honored\"
  7316                      or \"name must be restricted\". Those cannot be well described
  7317                      when embedded. 3. Inconsistent validation.  Because the usages
  7318                      are different, the validation rules are different by usage, which
  7319                      makes it hard for users to predict what will happen. 4. The fields
  7320                      are both imprecise and overly precise.  Kind is not a precise
  7321                      mapping to a URL. This can produce ambiguity during interpretation
  7322                      and require a REST mapping.  In most cases, the dependency is
  7323                      on the group,resource tuple and the version of the actual struct
  7324                      is irrelevant. 5. We cannot easily change it.  Because this type
  7325                      is embedded in many locations, updates to this type will affect
  7326                      numerous schemas.  Don't make new APIs embed an underspecified
  7327                      API type they do not control. \n Instead of using this type, create
  7328                      a locally provided and used type that is well-focused on your
  7329                      reference. For example, ServiceReferences for admission registration:
  7330                      https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
  7331                      ."
  7332                    properties:
  7333                      apiVersion:
  7334                        description: API version of the referent.
  7335                        type: string
  7336                      fieldPath:
  7337                        description: 'If referring to a piece of an object instead of
  7338                          an entire object, this string should contain a valid JSON/Go
  7339                          field access statement, such as desiredState.manifest.containers[2].
  7340                          For example, if the object reference is to a container within
  7341                          a pod, this would take on a value like: "spec.containers{name}"
  7342                          (where "name" refers to the name of the container that triggered
  7343                          the event) or if no container name is specified "spec.containers[2]"
  7344                          (container with index 2 in this pod). This syntax is chosen
  7345                          only to have some well-defined way of referencing a part of
  7346                          an object. TODO: this design is not final and this field is
  7347                          subject to change in the future.'
  7348                        type: string
  7349                      kind:
  7350                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7351                        type: string
  7352                      name:
  7353                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7354                        type: string
  7355                      namespace:
  7356                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  7357                        type: string
  7358                      resourceVersion:
  7359                        description: 'Specific resourceVersion to which this reference
  7360                          is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  7361                        type: string
  7362                      uid:
  7363                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  7364                        type: string
  7365                    type: object
  7366                  type: array
  7367                observedGeneration:
  7368                  description: ObservedGeneration is the latest generation observed
  7369                    by the controller.
  7370                  format: int64
  7371                  type: integer
  7372                phase:
  7373                  description: Phase represents the current phase of cluster actuation.
  7374                    E.g. Pending, Running, Terminating, Failed etc.
  7375                  type: string
  7376                readyReplicas:
  7377                  description: The number of ready replicas for this MachinePool. A
  7378                    machine is considered ready when the node has been created and is
  7379                    "Ready".
  7380                  format: int32
  7381                  type: integer
  7382                replicas:
  7383                  description: Replicas is the most recently observed number of replicas.
  7384                  format: int32
  7385                  type: integer
  7386                unavailableReplicas:
  7387                  description: Total number of unavailable machine instances targeted
  7388                    by this machine pool. This is the total number of machine instances
  7389                    that are still required for the machine pool to have 100% available
  7390                    capacity. They may either be machine instances that are running
  7391                    but not yet available or machine instances that still have not been
  7392                    created.
  7393                  format: int32
  7394                  type: integer
  7395              type: object
  7396          type: object
  7397      served: false
  7398      storage: false
  7399      subresources:
  7400        scale:
  7401          specReplicasPath: .spec.replicas
  7402          statusReplicasPath: .status.replicas
  7403        status: {}
  7404    - additionalPrinterColumns:
  7405      - description: Time duration since creation of MachinePool
  7406        jsonPath: .metadata.creationTimestamp
  7407        name: Age
  7408        type: date
  7409      - description: MachinePool replicas count
  7410        jsonPath: .status.replicas
  7411        name: Replicas
  7412        type: string
  7413      - description: MachinePool status such as Terminating/Pending/Provisioning/Running/Failed
  7414          etc
  7415        jsonPath: .status.phase
  7416        name: Phase
  7417        type: string
  7418      - description: Kubernetes version associated with this MachinePool
  7419        jsonPath: .spec.template.spec.version
  7420        name: Version
  7421        type: string
  7422      deprecated: true
  7423      name: v1alpha4
  7424      schema:
  7425        openAPIV3Schema:
  7426          description: "MachinePool is the Schema for the machinepools API. \n Deprecated:
  7427            This type will be removed in one of the next releases."
  7428          properties:
  7429            apiVersion:
  7430              description: 'APIVersion defines the versioned schema of this representation
  7431                of an object. Servers should convert recognized schemas to the latest
  7432                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  7433              type: string
  7434            kind:
  7435              description: 'Kind is a string value representing the REST resource this
  7436                object represents. Servers may infer this from the endpoint the client
  7437                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7438              type: string
  7439            metadata:
  7440              type: object
  7441            spec:
  7442              description: MachinePoolSpec defines the desired state of MachinePool.
  7443              properties:
  7444                clusterName:
  7445                  description: ClusterName is the name of the Cluster this object belongs
  7446                    to.
  7447                  minLength: 1
  7448                  type: string
  7449                failureDomains:
  7450                  description: FailureDomains is the list of failure domains this MachinePool
  7451                    should be attached to.
  7452                  items:
  7453                    type: string
  7454                  type: array
  7455                minReadySeconds:
  7456                  description: Minimum number of seconds for which a newly created machine
  7457                    instances should be ready. Defaults to 0 (machine instance will
  7458                    be considered available as soon as it is ready)
  7459                  format: int32
  7460                  type: integer
  7461                providerIDList:
  7462                  description: ProviderIDList are the identification IDs of machine
  7463                    instances provided by the provider. This field must match the provider
  7464                    IDs as seen on the node objects corresponding to a machine pool's
  7465                    machine instances.
  7466                  items:
  7467                    type: string
  7468                  type: array
  7469                replicas:
  7470                  description: Number of desired machines. Defaults to 1. This is a
  7471                    pointer to distinguish between explicit zero and not specified.
  7472                  format: int32
  7473                  type: integer
  7474                template:
  7475                  description: Template describes the machines that will be created.
  7476                  properties:
  7477                    metadata:
  7478                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  7479                      properties:
  7480                        annotations:
  7481                          additionalProperties:
  7482                            type: string
  7483                          description: 'Annotations is an unstructured key value map
  7484                            stored with a resource that may be set by external tools
  7485                            to store and retrieve arbitrary metadata. They are not queryable
  7486                            and should be preserved when modifying objects. More info:
  7487                            http://kubernetes.io/docs/user-guide/annotations'
  7488                          type: object
  7489                        labels:
  7490                          additionalProperties:
  7491                            type: string
  7492                          description: 'Map of string keys and values that can be used
  7493                            to organize and categorize (scope and select) objects. May
  7494                            match selectors of replication controllers and services.
  7495                            More info: http://kubernetes.io/docs/user-guide/labels'
  7496                          type: object
  7497                      type: object
  7498                    spec:
  7499                      description: 'Specification of the desired behavior of the machine.
  7500                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  7501                      properties:
  7502                        bootstrap:
  7503                          description: Bootstrap is a reference to a local struct which
  7504                            encapsulates fields to configure the Machine’s bootstrapping
  7505                            mechanism.
  7506                          properties:
  7507                            configRef:
  7508                              description: ConfigRef is a reference to a bootstrap provider-specific
  7509                                resource that holds configuration details. The reference
  7510                                is optional to allow users/operators to specify Bootstrap.DataSecretName
  7511                                without the need of a controller.
  7512                              properties:
  7513                                apiVersion:
  7514                                  description: API version of the referent.
  7515                                  type: string
  7516                                fieldPath:
  7517                                  description: 'If referring to a piece of an object
  7518                                    instead of an entire object, this string should
  7519                                    contain a valid JSON/Go field access statement,
  7520                                    such as desiredState.manifest.containers[2]. For
  7521                                    example, if the object reference is to a container
  7522                                    within a pod, this would take on a value like: "spec.containers{name}"
  7523                                    (where "name" refers to the name of the container
  7524                                    that triggered the event) or if no container name
  7525                                    is specified "spec.containers[2]" (container with
  7526                                    index 2 in this pod). This syntax is chosen only
  7527                                    to have some well-defined way of referencing a part
  7528                                    of an object. TODO: this design is not final and
  7529                                    this field is subject to change in the future.'
  7530                                  type: string
  7531                                kind:
  7532                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7533                                  type: string
  7534                                name:
  7535                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7536                                  type: string
  7537                                namespace:
  7538                                  description: 'Namespace of the referent. More info:
  7539                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  7540                                  type: string
  7541                                resourceVersion:
  7542                                  description: 'Specific resourceVersion to which this
  7543                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  7544                                  type: string
  7545                                uid:
  7546                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  7547                                  type: string
  7548                              type: object
  7549                              x-kubernetes-map-type: atomic
  7550                            dataSecretName:
  7551                              description: DataSecretName is the name of the secret
  7552                                that stores the bootstrap data script. If nil, the Machine
  7553                                should remain in the Pending state.
  7554                              type: string
  7555                          type: object
  7556                        clusterName:
  7557                          description: ClusterName is the name of the Cluster this object
  7558                            belongs to.
  7559                          minLength: 1
  7560                          type: string
  7561                        failureDomain:
  7562                          description: FailureDomain is the failure domain the machine
  7563                            will be created in. Must match a key in the FailureDomains
  7564                            map stored on the cluster object.
  7565                          type: string
  7566                        infrastructureRef:
  7567                          description: InfrastructureRef is a required reference to
  7568                            a custom resource offered by an infrastructure provider.
  7569                          properties:
  7570                            apiVersion:
  7571                              description: API version of the referent.
  7572                              type: string
  7573                            fieldPath:
  7574                              description: 'If referring to a piece of an object instead
  7575                                of an entire object, this string should contain a valid
  7576                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
  7577                                For example, if the object reference is to a container
  7578                                within a pod, this would take on a value like: "spec.containers{name}"
  7579                                (where "name" refers to the name of the container that
  7580                                triggered the event) or if no container name is specified
  7581                                "spec.containers[2]" (container with index 2 in this
  7582                                pod). This syntax is chosen only to have some well-defined
  7583                                way of referencing a part of an object. TODO: this design
  7584                                is not final and this field is subject to change in
  7585                                the future.'
  7586                              type: string
  7587                            kind:
  7588                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7589                              type: string
  7590                            name:
  7591                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7592                              type: string
  7593                            namespace:
  7594                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  7595                              type: string
  7596                            resourceVersion:
  7597                              description: 'Specific resourceVersion to which this reference
  7598                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  7599                              type: string
  7600                            uid:
  7601                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  7602                              type: string
  7603                          type: object
  7604                          x-kubernetes-map-type: atomic
  7605                        nodeDrainTimeout:
  7606                          description: 'NodeDrainTimeout is the total amount of time
  7607                            that the controller will spend on draining a node. The default
  7608                            value is 0, meaning that the node can be drained without
  7609                            any time limitations. NOTE: NodeDrainTimeout is different
  7610                            from `kubectl drain --timeout`'
  7611                          type: string
  7612                        providerID:
  7613                          description: ProviderID is the identification ID of the machine
  7614                            provided by the provider. This field must match the provider
  7615                            ID as seen on the node object corresponding to this machine.
  7616                            This field is required by higher level consumers of cluster-api.
  7617                            Example use case is cluster autoscaler with cluster-api
  7618                            as provider. Clean-up logic in the autoscaler compares machines
  7619                            to nodes to find out machines at provider which could not
  7620                            get registered as Kubernetes nodes. With cluster-api as
  7621                            a generic out-of-tree provider for autoscaler, this field
  7622                            is required by autoscaler to be able to have a provider
  7623                            view of the list of machines. Another list of nodes is queried
  7624                            from the k8s apiserver and then a comparison is done to
  7625                            find out unregistered machines and are marked for delete.
  7626                            This field will be set by the actuators and consumed by
  7627                            higher level entities like autoscaler that will be interfacing
  7628                            with cluster-api as generic provider.
  7629                          type: string
  7630                        version:
  7631                          description: Version defines the desired Kubernetes version.
  7632                            This field is meant to be optionally used by bootstrap providers.
  7633                          type: string
  7634                      required:
  7635                      - bootstrap
  7636                      - clusterName
  7637                      - infrastructureRef
  7638                      type: object
  7639                  type: object
  7640              required:
  7641              - clusterName
  7642              - template
  7643              type: object
  7644            status:
  7645              description: MachinePoolStatus defines the observed state of MachinePool.
  7646              properties:
  7647                availableReplicas:
  7648                  description: The number of available replicas (ready for at least
  7649                    minReadySeconds) for this MachinePool.
  7650                  format: int32
  7651                  type: integer
  7652                bootstrapReady:
  7653                  description: BootstrapReady is the state of the bootstrap provider.
  7654                  type: boolean
  7655                conditions:
  7656                  description: Conditions define the current service state of the MachinePool.
  7657                  items:
  7658                    description: Condition defines an observation of a Cluster API resource
  7659                      operational state.
  7660                    properties:
  7661                      lastTransitionTime:
  7662                        description: Last time the condition transitioned from one status
  7663                          to another. This should be when the underlying condition changed.
  7664                          If that is not known, then using the time when the API field
  7665                          changed is acceptable.
  7666                        format: date-time
  7667                        type: string
  7668                      message:
  7669                        description: A human readable message indicating details about
  7670                          the transition. This field may be empty.
  7671                        type: string
  7672                      reason:
  7673                        description: The reason for the condition's last transition
  7674                          in CamelCase. The specific API may choose whether or not this
  7675                          field is considered a guaranteed API. This field may not be
  7676                          empty.
  7677                        type: string
  7678                      severity:
  7679                        description: Severity provides an explicit classification of
  7680                          Reason code, so the users or machines can immediately understand
  7681                          the current situation and act accordingly. The Severity field
  7682                          MUST be set only when Status=False.
  7683                        type: string
  7684                      status:
  7685                        description: Status of the condition, one of True, False, Unknown.
  7686                        type: string
  7687                      type:
  7688                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  7689                          Many .condition.type values are consistent across resources
  7690                          like Available, but because arbitrary conditions can be useful
  7691                          (see .node.status.conditions), the ability to deconflict is
  7692                          important.
  7693                        type: string
  7694                    required:
  7695                    - status
  7696                    - type
  7697                    type: object
  7698                  type: array
  7699                failureMessage:
  7700                  description: FailureMessage indicates that there is a problem reconciling
  7701                    the state, and will be set to a descriptive error message.
  7702                  type: string
  7703                failureReason:
  7704                  description: FailureReason indicates that there is a problem reconciling
  7705                    the state, and will be set to a token value suitable for programmatic
  7706                    interpretation.
  7707                  type: string
  7708                infrastructureReady:
  7709                  description: InfrastructureReady is the state of the infrastructure
  7710                    provider.
  7711                  type: boolean
  7712                nodeRefs:
  7713                  description: NodeRefs will point to the corresponding Nodes if it
  7714                    they exist.
  7715                  items:
  7716                    description: "ObjectReference contains enough information to let
  7717                      you inspect or modify the referred object. --- New uses of this
  7718                      type are discouraged because of difficulty describing its usage
  7719                      when embedded in APIs. 1. Ignored fields.  It includes many fields
  7720                      which are not generally honored.  For instance, ResourceVersion
  7721                      and FieldPath are both very rarely valid in actual usage. 2. Invalid
  7722                      usage help.  It is impossible to add specific help for individual
  7723                      usage.  In most embedded usages, there are particular restrictions
  7724                      like, \"must refer only to types A and B\" or \"UID not honored\"
  7725                      or \"name must be restricted\". Those cannot be well described
  7726                      when embedded. 3. Inconsistent validation.  Because the usages
  7727                      are different, the validation rules are different by usage, which
  7728                      makes it hard for users to predict what will happen. 4. The fields
  7729                      are both imprecise and overly precise.  Kind is not a precise
  7730                      mapping to a URL. This can produce ambiguity during interpretation
  7731                      and require a REST mapping.  In most cases, the dependency is
  7732                      on the group,resource tuple and the version of the actual struct
  7733                      is irrelevant. 5. We cannot easily change it.  Because this type
  7734                      is embedded in many locations, updates to this type will affect
  7735                      numerous schemas.  Don't make new APIs embed an underspecified
  7736                      API type they do not control. \n Instead of using this type, create
  7737                      a locally provided and used type that is well-focused on your
  7738                      reference. For example, ServiceReferences for admission registration:
  7739                      https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
  7740                      ."
  7741                    properties:
  7742                      apiVersion:
  7743                        description: API version of the referent.
  7744                        type: string
  7745                      fieldPath:
  7746                        description: 'If referring to a piece of an object instead of
  7747                          an entire object, this string should contain a valid JSON/Go
  7748                          field access statement, such as desiredState.manifest.containers[2].
  7749                          For example, if the object reference is to a container within
  7750                          a pod, this would take on a value like: "spec.containers{name}"
  7751                          (where "name" refers to the name of the container that triggered
  7752                          the event) or if no container name is specified "spec.containers[2]"
  7753                          (container with index 2 in this pod). This syntax is chosen
  7754                          only to have some well-defined way of referencing a part of
  7755                          an object. TODO: this design is not final and this field is
  7756                          subject to change in the future.'
  7757                        type: string
  7758                      kind:
  7759                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7760                        type: string
  7761                      name:
  7762                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7763                        type: string
  7764                      namespace:
  7765                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  7766                        type: string
  7767                      resourceVersion:
  7768                        description: 'Specific resourceVersion to which this reference
  7769                          is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  7770                        type: string
  7771                      uid:
  7772                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  7773                        type: string
  7774                    type: object
  7775                  type: array
  7776                observedGeneration:
  7777                  description: ObservedGeneration is the latest generation observed
  7778                    by the controller.
  7779                  format: int64
  7780                  type: integer
  7781                phase:
  7782                  description: Phase represents the current phase of cluster actuation.
  7783                    E.g. Pending, Running, Terminating, Failed etc.
  7784                  type: string
  7785                readyReplicas:
  7786                  description: The number of ready replicas for this MachinePool. A
  7787                    machine is considered ready when the node has been created and is
  7788                    "Ready".
  7789                  format: int32
  7790                  type: integer
  7791                replicas:
  7792                  description: Replicas is the most recently observed number of replicas.
  7793                  format: int32
  7794                  type: integer
  7795                unavailableReplicas:
  7796                  description: Total number of unavailable machine instances targeted
  7797                    by this machine pool. This is the total number of machine instances
  7798                    that are still required for the machine pool to have 100% available
  7799                    capacity. They may either be machine instances that are running
  7800                    but not yet available or machine instances that still have not been
  7801                    created.
  7802                  format: int32
  7803                  type: integer
  7804              type: object
  7805          type: object
  7806      served: true
  7807      storage: false
  7808      subresources:
  7809        scale:
  7810          specReplicasPath: .spec.replicas
  7811          statusReplicasPath: .status.replicas
  7812        status: {}
  7813    - additionalPrinterColumns:
  7814      - description: Cluster
  7815        jsonPath: .spec.clusterName
  7816        name: Cluster
  7817        type: string
  7818      - description: Total number of machines desired by this MachinePool
  7819        jsonPath: .spec.replicas
  7820        name: Desired
  7821        priority: 10
  7822        type: integer
  7823      - description: MachinePool replicas count
  7824        jsonPath: .status.replicas
  7825        name: Replicas
  7826        type: string
  7827      - description: MachinePool status such as Terminating/Pending/Provisioning/Running/Failed
  7828          etc
  7829        jsonPath: .status.phase
  7830        name: Phase
  7831        type: string
  7832      - description: Time duration since creation of MachinePool
  7833        jsonPath: .metadata.creationTimestamp
  7834        name: Age
  7835        type: date
  7836      - description: Kubernetes version associated with this MachinePool
  7837        jsonPath: .spec.template.spec.version
  7838        name: Version
  7839        type: string
  7840      name: v1beta1
  7841      schema:
  7842        openAPIV3Schema:
  7843          description: MachinePool is the Schema for the machinepools API.
  7844          properties:
  7845            apiVersion:
  7846              description: 'APIVersion defines the versioned schema of this representation
  7847                of an object. Servers should convert recognized schemas to the latest
  7848                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  7849              type: string
  7850            kind:
  7851              description: 'Kind is a string value representing the REST resource this
  7852                object represents. Servers may infer this from the endpoint the client
  7853                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7854              type: string
  7855            metadata:
  7856              type: object
  7857            spec:
  7858              description: MachinePoolSpec defines the desired state of MachinePool.
  7859              properties:
  7860                clusterName:
  7861                  description: ClusterName is the name of the Cluster this object belongs
  7862                    to.
  7863                  minLength: 1
  7864                  type: string
  7865                failureDomains:
  7866                  description: FailureDomains is the list of failure domains this MachinePool
  7867                    should be attached to.
  7868                  items:
  7869                    type: string
  7870                  type: array
  7871                minReadySeconds:
  7872                  description: 'Minimum number of seconds for which a newly created
  7873                    machine instances should be ready. Defaults to 0 (machine instance
  7874                    will be considered available as soon as it is ready) NOTE: No logic
  7875                    is implemented for this field and it currently has no behaviour.'
  7876                  format: int32
  7877                  type: integer
  7878                providerIDList:
  7879                  description: ProviderIDList are the identification IDs of machine
  7880                    instances provided by the provider. This field must match the provider
  7881                    IDs as seen on the node objects corresponding to a machine pool's
  7882                    machine instances.
  7883                  items:
  7884                    type: string
  7885                  type: array
  7886                replicas:
  7887                  description: Number of desired machines. Defaults to 1. This is a
  7888                    pointer to distinguish between explicit zero and not specified.
  7889                  format: int32
  7890                  type: integer
  7891                template:
  7892                  description: Template describes the machines that will be created.
  7893                  properties:
  7894                    metadata:
  7895                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  7896                      properties:
  7897                        annotations:
  7898                          additionalProperties:
  7899                            type: string
  7900                          description: 'Annotations is an unstructured key value map
  7901                            stored with a resource that may be set by external tools
  7902                            to store and retrieve arbitrary metadata. They are not queryable
  7903                            and should be preserved when modifying objects. More info:
  7904                            http://kubernetes.io/docs/user-guide/annotations'
  7905                          type: object
  7906                        labels:
  7907                          additionalProperties:
  7908                            type: string
  7909                          description: 'Map of string keys and values that can be used
  7910                            to organize and categorize (scope and select) objects. May
  7911                            match selectors of replication controllers and services.
  7912                            More info: http://kubernetes.io/docs/user-guide/labels'
  7913                          type: object
  7914                      type: object
  7915                    spec:
  7916                      description: 'Specification of the desired behavior of the machine.
  7917                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  7918                      properties:
  7919                        bootstrap:
  7920                          description: Bootstrap is a reference to a local struct which
  7921                            encapsulates fields to configure the Machine’s bootstrapping
  7922                            mechanism.
  7923                          properties:
  7924                            configRef:
  7925                              description: ConfigRef is a reference to a bootstrap provider-specific
  7926                                resource that holds configuration details. The reference
  7927                                is optional to allow users/operators to specify Bootstrap.DataSecretName
  7928                                without the need of a controller.
  7929                              properties:
  7930                                apiVersion:
  7931                                  description: API version of the referent.
  7932                                  type: string
  7933                                fieldPath:
  7934                                  description: 'If referring to a piece of an object
  7935                                    instead of an entire object, this string should
  7936                                    contain a valid JSON/Go field access statement,
  7937                                    such as desiredState.manifest.containers[2]. For
  7938                                    example, if the object reference is to a container
  7939                                    within a pod, this would take on a value like: "spec.containers{name}"
  7940                                    (where "name" refers to the name of the container
  7941                                    that triggered the event) or if no container name
  7942                                    is specified "spec.containers[2]" (container with
  7943                                    index 2 in this pod). This syntax is chosen only
  7944                                    to have some well-defined way of referencing a part
  7945                                    of an object. TODO: this design is not final and
  7946                                    this field is subject to change in the future.'
  7947                                  type: string
  7948                                kind:
  7949                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7950                                  type: string
  7951                                name:
  7952                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7953                                  type: string
  7954                                namespace:
  7955                                  description: 'Namespace of the referent. More info:
  7956                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  7957                                  type: string
  7958                                resourceVersion:
  7959                                  description: 'Specific resourceVersion to which this
  7960                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  7961                                  type: string
  7962                                uid:
  7963                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  7964                                  type: string
  7965                              type: object
  7966                              x-kubernetes-map-type: atomic
  7967                            dataSecretName:
  7968                              description: DataSecretName is the name of the secret
  7969                                that stores the bootstrap data script. If nil, the Machine
  7970                                should remain in the Pending state.
  7971                              type: string
  7972                          type: object
  7973                        clusterName:
  7974                          description: ClusterName is the name of the Cluster this object
  7975                            belongs to.
  7976                          minLength: 1
  7977                          type: string
  7978                        failureDomain:
  7979                          description: FailureDomain is the failure domain the machine
  7980                            will be created in. Must match a key in the FailureDomains
  7981                            map stored on the cluster object.
  7982                          type: string
  7983                        infrastructureRef:
  7984                          description: InfrastructureRef is a required reference to
  7985                            a custom resource offered by an infrastructure provider.
  7986                          properties:
  7987                            apiVersion:
  7988                              description: API version of the referent.
  7989                              type: string
  7990                            fieldPath:
  7991                              description: 'If referring to a piece of an object instead
  7992                                of an entire object, this string should contain a valid
  7993                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
  7994                                For example, if the object reference is to a container
  7995                                within a pod, this would take on a value like: "spec.containers{name}"
  7996                                (where "name" refers to the name of the container that
  7997                                triggered the event) or if no container name is specified
  7998                                "spec.containers[2]" (container with index 2 in this
  7999                                pod). This syntax is chosen only to have some well-defined
  8000                                way of referencing a part of an object. TODO: this design
  8001                                is not final and this field is subject to change in
  8002                                the future.'
  8003                              type: string
  8004                            kind:
  8005                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8006                              type: string
  8007                            name:
  8008                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8009                              type: string
  8010                            namespace:
  8011                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  8012                              type: string
  8013                            resourceVersion:
  8014                              description: 'Specific resourceVersion to which this reference
  8015                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  8016                              type: string
  8017                            uid:
  8018                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  8019                              type: string
  8020                          type: object
  8021                          x-kubernetes-map-type: atomic
  8022                        nodeDeletionTimeout:
  8023                          description: NodeDeletionTimeout defines how long the controller
  8024                            will attempt to delete the Node that the Machine hosts after
  8025                            the Machine is marked for deletion. A duration of 0 will
  8026                            retry deletion indefinitely. Defaults to 10 seconds.
  8027                          type: string
  8028                        nodeDrainTimeout:
  8029                          description: 'NodeDrainTimeout is the total amount of time
  8030                            that the controller will spend on draining a node. The default
  8031                            value is 0, meaning that the node can be drained without
  8032                            any time limitations. NOTE: NodeDrainTimeout is different
  8033                            from `kubectl drain --timeout`'
  8034                          type: string
  8035                        nodeVolumeDetachTimeout:
  8036                          description: NodeVolumeDetachTimeout is the total amount of
  8037                            time that the controller will spend on waiting for all volumes
  8038                            to be detached. The default value is 0, meaning that the
  8039                            volumes can be detached without any time limitations.
  8040                          type: string
  8041                        providerID:
  8042                          description: ProviderID is the identification ID of the machine
  8043                            provided by the provider. This field must match the provider
  8044                            ID as seen on the node object corresponding to this machine.
  8045                            This field is required by higher level consumers of cluster-api.
  8046                            Example use case is cluster autoscaler with cluster-api
  8047                            as provider. Clean-up logic in the autoscaler compares machines
  8048                            to nodes to find out machines at provider which could not
  8049                            get registered as Kubernetes nodes. With cluster-api as
  8050                            a generic out-of-tree provider for autoscaler, this field
  8051                            is required by autoscaler to be able to have a provider
  8052                            view of the list of machines. Another list of nodes is queried
  8053                            from the k8s apiserver and then a comparison is done to
  8054                            find out unregistered machines and are marked for delete.
  8055                            This field will be set by the actuators and consumed by
  8056                            higher level entities like autoscaler that will be interfacing
  8057                            with cluster-api as generic provider.
  8058                          type: string
  8059                        version:
  8060                          description: Version defines the desired Kubernetes version.
  8061                            This field is meant to be optionally used by bootstrap providers.
  8062                          type: string
  8063                      required:
  8064                      - bootstrap
  8065                      - clusterName
  8066                      - infrastructureRef
  8067                      type: object
  8068                  type: object
  8069              required:
  8070              - clusterName
  8071              - template
  8072              type: object
  8073            status:
  8074              description: MachinePoolStatus defines the observed state of MachinePool.
  8075              properties:
  8076                availableReplicas:
  8077                  description: The number of available replicas (ready for at least
  8078                    minReadySeconds) for this MachinePool.
  8079                  format: int32
  8080                  type: integer
  8081                bootstrapReady:
  8082                  description: BootstrapReady is the state of the bootstrap provider.
  8083                  type: boolean
  8084                conditions:
  8085                  description: Conditions define the current service state of the MachinePool.
  8086                  items:
  8087                    description: Condition defines an observation of a Cluster API resource
  8088                      operational state.
  8089                    properties:
  8090                      lastTransitionTime:
  8091                        description: Last time the condition transitioned from one status
  8092                          to another. This should be when the underlying condition changed.
  8093                          If that is not known, then using the time when the API field
  8094                          changed is acceptable.
  8095                        format: date-time
  8096                        type: string
  8097                      message:
  8098                        description: A human readable message indicating details about
  8099                          the transition. This field may be empty.
  8100                        type: string
  8101                      reason:
  8102                        description: The reason for the condition's last transition
  8103                          in CamelCase. The specific API may choose whether or not this
  8104                          field is considered a guaranteed API. This field may not be
  8105                          empty.
  8106                        type: string
  8107                      severity:
  8108                        description: Severity provides an explicit classification of
  8109                          Reason code, so the users or machines can immediately understand
  8110                          the current situation and act accordingly. The Severity field
  8111                          MUST be set only when Status=False.
  8112                        type: string
  8113                      status:
  8114                        description: Status of the condition, one of True, False, Unknown.
  8115                        type: string
  8116                      type:
  8117                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  8118                          Many .condition.type values are consistent across resources
  8119                          like Available, but because arbitrary conditions can be useful
  8120                          (see .node.status.conditions), the ability to deconflict is
  8121                          important.
  8122                        type: string
  8123                    required:
  8124                    - lastTransitionTime
  8125                    - status
  8126                    - type
  8127                    type: object
  8128                  type: array
  8129                failureMessage:
  8130                  description: FailureMessage indicates that there is a problem reconciling
  8131                    the state, and will be set to a descriptive error message.
  8132                  type: string
  8133                failureReason:
  8134                  description: FailureReason indicates that there is a problem reconciling
  8135                    the state, and will be set to a token value suitable for programmatic
  8136                    interpretation.
  8137                  type: string
  8138                infrastructureReady:
  8139                  description: InfrastructureReady is the state of the infrastructure
  8140                    provider.
  8141                  type: boolean
  8142                nodeRefs:
  8143                  description: NodeRefs will point to the corresponding Nodes if it
  8144                    they exist.
  8145                  items:
  8146                    description: "ObjectReference contains enough information to let
  8147                      you inspect or modify the referred object. --- New uses of this
  8148                      type are discouraged because of difficulty describing its usage
  8149                      when embedded in APIs. 1. Ignored fields.  It includes many fields
  8150                      which are not generally honored.  For instance, ResourceVersion
  8151                      and FieldPath are both very rarely valid in actual usage. 2. Invalid
  8152                      usage help.  It is impossible to add specific help for individual
  8153                      usage.  In most embedded usages, there are particular restrictions
  8154                      like, \"must refer only to types A and B\" or \"UID not honored\"
  8155                      or \"name must be restricted\". Those cannot be well described
  8156                      when embedded. 3. Inconsistent validation.  Because the usages
  8157                      are different, the validation rules are different by usage, which
  8158                      makes it hard for users to predict what will happen. 4. The fields
  8159                      are both imprecise and overly precise.  Kind is not a precise
  8160                      mapping to a URL. This can produce ambiguity during interpretation
  8161                      and require a REST mapping.  In most cases, the dependency is
  8162                      on the group,resource tuple and the version of the actual struct
  8163                      is irrelevant. 5. We cannot easily change it.  Because this type
  8164                      is embedded in many locations, updates to this type will affect
  8165                      numerous schemas.  Don't make new APIs embed an underspecified
  8166                      API type they do not control. \n Instead of using this type, create
  8167                      a locally provided and used type that is well-focused on your
  8168                      reference. For example, ServiceReferences for admission registration:
  8169                      https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
  8170                      ."
  8171                    properties:
  8172                      apiVersion:
  8173                        description: API version of the referent.
  8174                        type: string
  8175                      fieldPath:
  8176                        description: 'If referring to a piece of an object instead of
  8177                          an entire object, this string should contain a valid JSON/Go
  8178                          field access statement, such as desiredState.manifest.containers[2].
  8179                          For example, if the object reference is to a container within
  8180                          a pod, this would take on a value like: "spec.containers{name}"
  8181                          (where "name" refers to the name of the container that triggered
  8182                          the event) or if no container name is specified "spec.containers[2]"
  8183                          (container with index 2 in this pod). This syntax is chosen
  8184                          only to have some well-defined way of referencing a part of
  8185                          an object. TODO: this design is not final and this field is
  8186                          subject to change in the future.'
  8187                        type: string
  8188                      kind:
  8189                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8190                        type: string
  8191                      name:
  8192                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8193                        type: string
  8194                      namespace:
  8195                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  8196                        type: string
  8197                      resourceVersion:
  8198                        description: 'Specific resourceVersion to which this reference
  8199                          is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  8200                        type: string
  8201                      uid:
  8202                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  8203                        type: string
  8204                    type: object
  8205                  type: array
  8206                observedGeneration:
  8207                  description: ObservedGeneration is the latest generation observed
  8208                    by the controller.
  8209                  format: int64
  8210                  type: integer
  8211                phase:
  8212                  description: Phase represents the current phase of cluster actuation.
  8213                    E.g. Pending, Running, Terminating, Failed etc.
  8214                  type: string
  8215                readyReplicas:
  8216                  description: The number of ready replicas for this MachinePool. A
  8217                    machine is considered ready when the node has been created and is
  8218                    "Ready".
  8219                  format: int32
  8220                  type: integer
  8221                replicas:
  8222                  description: Replicas is the most recently observed number of replicas.
  8223                  format: int32
  8224                  type: integer
  8225                unavailableReplicas:
  8226                  description: Total number of unavailable machine instances targeted
  8227                    by this machine pool. This is the total number of machine instances
  8228                    that are still required for the machine pool to have 100% available
  8229                    capacity. They may either be machine instances that are running
  8230                    but not yet available or machine instances that still have not been
  8231                    created.
  8232                  format: int32
  8233                  type: integer
  8234              type: object
  8235          type: object
  8236      served: true
  8237      storage: true
  8238      subresources:
  8239        scale:
  8240          specReplicasPath: .spec.replicas
  8241          statusReplicasPath: .status.replicas
  8242        status: {}
  8243  ---
  8244  apiVersion: apiextensions.k8s.io/v1
  8245  kind: CustomResourceDefinition
  8246  metadata:
  8247    annotations:
  8248      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
  8249      controller-gen.kubebuilder.io/version: v0.12.0
  8250    labels:
  8251      cluster.x-k8s.io/provider: cluster-api
  8252    name: machines.cluster.x-k8s.io
  8253  spec:
  8254    conversion:
  8255      strategy: Webhook
  8256      webhook:
  8257        clientConfig:
  8258          caBundle: Cg==
  8259          service:
  8260            name: capi-webhook-service
  8261            namespace: capi-system
  8262            path: /convert
  8263        conversionReviewVersions:
  8264        - v1
  8265        - v1beta1
  8266    group: cluster.x-k8s.io
  8267    names:
  8268      categories:
  8269      - cluster-api
  8270      kind: Machine
  8271      listKind: MachineList
  8272      plural: machines
  8273      shortNames:
  8274      - ma
  8275      singular: machine
  8276    scope: Namespaced
  8277    versions:
  8278    - additionalPrinterColumns:
  8279      - description: Provider ID
  8280        jsonPath: .spec.providerID
  8281        name: ProviderID
  8282        type: string
  8283      - description: Machine status such as Terminating/Pending/Running/Failed etc
  8284        jsonPath: .status.phase
  8285        name: Phase
  8286        type: string
  8287      - description: Kubernetes version associated with this Machine
  8288        jsonPath: .spec.version
  8289        name: Version
  8290        type: string
  8291      - description: Node name associated with this machine
  8292        jsonPath: .status.nodeRef.name
  8293        name: NodeName
  8294        priority: 1
  8295        type: string
  8296      deprecated: true
  8297      name: v1alpha3
  8298      schema:
  8299        openAPIV3Schema:
  8300          description: "Machine is the Schema for the machines API. \n Deprecated: This
  8301            type will be removed in one of the next releases."
  8302          properties:
  8303            apiVersion:
  8304              description: 'APIVersion defines the versioned schema of this representation
  8305                of an object. Servers should convert recognized schemas to the latest
  8306                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  8307              type: string
  8308            kind:
  8309              description: 'Kind is a string value representing the REST resource this
  8310                object represents. Servers may infer this from the endpoint the client
  8311                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8312              type: string
  8313            metadata:
  8314              type: object
  8315            spec:
  8316              description: MachineSpec defines the desired state of Machine.
  8317              properties:
  8318                bootstrap:
  8319                  description: Bootstrap is a reference to a local struct which encapsulates
  8320                    fields to configure the Machine’s bootstrapping mechanism.
  8321                  properties:
  8322                    configRef:
  8323                      description: ConfigRef is a reference to a bootstrap provider-specific
  8324                        resource that holds configuration details. The reference is
  8325                        optional to allow users/operators to specify Bootstrap.Data
  8326                        without the need of a controller.
  8327                      properties:
  8328                        apiVersion:
  8329                          description: API version of the referent.
  8330                          type: string
  8331                        fieldPath:
  8332                          description: 'If referring to a piece of an object instead
  8333                            of an entire object, this string should contain a valid
  8334                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
  8335                            For example, if the object reference is to a container within
  8336                            a pod, this would take on a value like: "spec.containers{name}"
  8337                            (where "name" refers to the name of the container that triggered
  8338                            the event) or if no container name is specified "spec.containers[2]"
  8339                            (container with index 2 in this pod). This syntax is chosen
  8340                            only to have some well-defined way of referencing a part
  8341                            of an object. TODO: this design is not final and this field
  8342                            is subject to change in the future.'
  8343                          type: string
  8344                        kind:
  8345                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8346                          type: string
  8347                        name:
  8348                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8349                          type: string
  8350                        namespace:
  8351                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  8352                          type: string
  8353                        resourceVersion:
  8354                          description: 'Specific resourceVersion to which this reference
  8355                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  8356                          type: string
  8357                        uid:
  8358                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  8359                          type: string
  8360                      type: object
  8361                      x-kubernetes-map-type: atomic
  8362                    data:
  8363                      description: "Data contains the bootstrap data, such as cloud-init
  8364                        details scripts. If nil, the Machine should remain in the Pending
  8365                        state. \n Deprecated: Switch to DataSecretName."
  8366                      type: string
  8367                    dataSecretName:
  8368                      description: DataSecretName is the name of the secret that stores
  8369                        the bootstrap data script. If nil, the Machine should remain
  8370                        in the Pending state.
  8371                      type: string
  8372                  type: object
  8373                clusterName:
  8374                  description: ClusterName is the name of the Cluster this object belongs
  8375                    to.
  8376                  minLength: 1
  8377                  type: string
  8378                failureDomain:
  8379                  description: FailureDomain is the failure domain the machine will
  8380                    be created in. Must match a key in the FailureDomains map stored
  8381                    on the cluster object.
  8382                  type: string
  8383                infrastructureRef:
  8384                  description: InfrastructureRef is a required reference to a custom
  8385                    resource offered by an infrastructure provider.
  8386                  properties:
  8387                    apiVersion:
  8388                      description: API version of the referent.
  8389                      type: string
  8390                    fieldPath:
  8391                      description: 'If referring to a piece of an object instead of
  8392                        an entire object, this string should contain a valid JSON/Go
  8393                        field access statement, such as desiredState.manifest.containers[2].
  8394                        For example, if the object reference is to a container within
  8395                        a pod, this would take on a value like: "spec.containers{name}"
  8396                        (where "name" refers to the name of the container that triggered
  8397                        the event) or if no container name is specified "spec.containers[2]"
  8398                        (container with index 2 in this pod). This syntax is chosen
  8399                        only to have some well-defined way of referencing a part of
  8400                        an object. TODO: this design is not final and this field is
  8401                        subject to change in the future.'
  8402                      type: string
  8403                    kind:
  8404                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8405                      type: string
  8406                    name:
  8407                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8408                      type: string
  8409                    namespace:
  8410                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  8411                      type: string
  8412                    resourceVersion:
  8413                      description: 'Specific resourceVersion to which this reference
  8414                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  8415                      type: string
  8416                    uid:
  8417                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  8418                      type: string
  8419                  type: object
  8420                  x-kubernetes-map-type: atomic
  8421                nodeDrainTimeout:
  8422                  description: 'NodeDrainTimeout is the total amount of time that the
  8423                    controller will spend on draining a node. The default value is 0,
  8424                    meaning that the node can be drained without any time limitations.
  8425                    NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`'
  8426                  type: string
  8427                providerID:
  8428                  description: ProviderID is the identification ID of the machine provided
  8429                    by the provider. This field must match the provider ID as seen on
  8430                    the node object corresponding to this machine. This field is required
  8431                    by higher level consumers of cluster-api. Example use case is cluster
  8432                    autoscaler with cluster-api as provider. Clean-up logic in the autoscaler
  8433                    compares machines to nodes to find out machines at provider which
  8434                    could not get registered as Kubernetes nodes. With cluster-api as
  8435                    a generic out-of-tree provider for autoscaler, this field is required
  8436                    by autoscaler to be able to have a provider view of the list of
  8437                    machines. Another list of nodes is queried from the k8s apiserver
  8438                    and then a comparison is done to find out unregistered machines
  8439                    and are marked for delete. This field will be set by the actuators
  8440                    and consumed by higher level entities like autoscaler that will
  8441                    be interfacing with cluster-api as generic provider.
  8442                  type: string
  8443                version:
  8444                  description: Version defines the desired Kubernetes version. This
  8445                    field is meant to be optionally used by bootstrap providers.
  8446                  type: string
  8447              required:
  8448              - bootstrap
  8449              - clusterName
  8450              - infrastructureRef
  8451              type: object
  8452            status:
  8453              description: MachineStatus defines the observed state of Machine.
  8454              properties:
  8455                addresses:
  8456                  description: Addresses is a list of addresses assigned to the machine.
  8457                    This field is copied from the infrastructure provider reference.
  8458                  items:
  8459                    description: MachineAddress contains information for the node's
  8460                      address.
  8461                    properties:
  8462                      address:
  8463                        description: The machine address.
  8464                        type: string
  8465                      type:
  8466                        description: Machine address type, one of Hostname, ExternalIP
  8467                          or InternalIP.
  8468                        type: string
  8469                    required:
  8470                    - address
  8471                    - type
  8472                    type: object
  8473                  type: array
  8474                bootstrapReady:
  8475                  description: BootstrapReady is the state of the bootstrap provider.
  8476                  type: boolean
  8477                conditions:
  8478                  description: Conditions defines current service state of the Machine.
  8479                  items:
  8480                    description: Condition defines an observation of a Cluster API resource
  8481                      operational state.
  8482                    properties:
  8483                      lastTransitionTime:
  8484                        description: Last time the condition transitioned from one status
  8485                          to another. This should be when the underlying condition changed.
  8486                          If that is not known, then using the time when the API field
  8487                          changed is acceptable.
  8488                        format: date-time
  8489                        type: string
  8490                      message:
  8491                        description: A human readable message indicating details about
  8492                          the transition. This field may be empty.
  8493                        type: string
  8494                      reason:
  8495                        description: The reason for the condition's last transition
  8496                          in CamelCase. The specific API may choose whether or not this
  8497                          field is considered a guaranteed API. This field may not be
  8498                          empty.
  8499                        type: string
  8500                      severity:
  8501                        description: Severity provides an explicit classification of
  8502                          Reason code, so the users or machines can immediately understand
  8503                          the current situation and act accordingly. The Severity field
  8504                          MUST be set only when Status=False.
  8505                        type: string
  8506                      status:
  8507                        description: Status of the condition, one of True, False, Unknown.
  8508                        type: string
  8509                      type:
  8510                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  8511                          Many .condition.type values are consistent across resources
  8512                          like Available, but because arbitrary conditions can be useful
  8513                          (see .node.status.conditions), the ability to deconflict is
  8514                          important.
  8515                        type: string
  8516                    required:
  8517                    - status
  8518                    - type
  8519                    type: object
  8520                  type: array
  8521                failureMessage:
  8522                  description: "FailureMessage will be set in the event that there is
  8523                    a terminal problem reconciling the Machine and will contain a more
  8524                    verbose string suitable for logging and human consumption. \n This
  8525                    field should not be set for transitive errors that a controller
  8526                    faces that are expected to be fixed automatically over time (like
  8527                    service outages), but instead indicate that something is fundamentally
  8528                    wrong with the Machine's spec or the configuration of the controller,
  8529                    and that manual intervention is required. Examples of terminal errors
  8530                    would be invalid combinations of settings in the spec, values that
  8531                    are unsupported by the controller, or the responsible controller
  8532                    itself being critically misconfigured. \n Any transient errors that
  8533                    occur during the reconciliation of Machines can be added as events
  8534                    to the Machine object and/or logged in the controller's output."
  8535                  type: string
  8536                failureReason:
  8537                  description: "FailureReason will be set in the event that there is
  8538                    a terminal problem reconciling the Machine and will contain a succinct
  8539                    value suitable for machine interpretation. \n This field should
  8540                    not be set for transitive errors that a controller faces that are
  8541                    expected to be fixed automatically over time (like service outages),
  8542                    but instead indicate that something is fundamentally wrong with
  8543                    the Machine's spec or the configuration of the controller, and that
  8544                    manual intervention is required. Examples of terminal errors would
  8545                    be invalid combinations of settings in the spec, values that are
  8546                    unsupported by the controller, or the responsible controller itself
  8547                    being critically misconfigured. \n Any transient errors that occur
  8548                    during the reconciliation of Machines can be added as events to
  8549                    the Machine object and/or logged in the controller's output."
  8550                  type: string
  8551                infrastructureReady:
  8552                  description: InfrastructureReady is the state of the infrastructure
  8553                    provider.
  8554                  type: boolean
  8555                lastUpdated:
  8556                  description: LastUpdated identifies when the phase of the Machine
  8557                    last transitioned.
  8558                  format: date-time
  8559                  type: string
  8560                nodeRef:
  8561                  description: NodeRef will point to the corresponding Node if it exists.
  8562                  properties:
  8563                    apiVersion:
  8564                      description: API version of the referent.
  8565                      type: string
  8566                    fieldPath:
  8567                      description: 'If referring to a piece of an object instead of
  8568                        an entire object, this string should contain a valid JSON/Go
  8569                        field access statement, such as desiredState.manifest.containers[2].
  8570                        For example, if the object reference is to a container within
  8571                        a pod, this would take on a value like: "spec.containers{name}"
  8572                        (where "name" refers to the name of the container that triggered
  8573                        the event) or if no container name is specified "spec.containers[2]"
  8574                        (container with index 2 in this pod). This syntax is chosen
  8575                        only to have some well-defined way of referencing a part of
  8576                        an object. TODO: this design is not final and this field is
  8577                        subject to change in the future.'
  8578                      type: string
  8579                    kind:
  8580                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8581                      type: string
  8582                    name:
  8583                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8584                      type: string
  8585                    namespace:
  8586                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  8587                      type: string
  8588                    resourceVersion:
  8589                      description: 'Specific resourceVersion to which this reference
  8590                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  8591                      type: string
  8592                    uid:
  8593                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  8594                      type: string
  8595                  type: object
  8596                  x-kubernetes-map-type: atomic
  8597                observedGeneration:
  8598                  description: ObservedGeneration is the latest generation observed
  8599                    by the controller.
  8600                  format: int64
  8601                  type: integer
  8602                phase:
  8603                  description: Phase represents the current phase of machine actuation.
  8604                    E.g. Pending, Running, Terminating, Failed etc.
  8605                  type: string
  8606                version:
  8607                  description: Version specifies the current version of Kubernetes running
  8608                    on the corresponding Node. This is meant to be a means of bubbling
  8609                    up status from the Node to the Machine. It is entirely optional,
  8610                    but useful for end-user UX if it’s present.
  8611                  type: string
  8612              type: object
  8613          type: object
  8614      served: false
  8615      storage: false
  8616      subresources:
  8617        status: {}
  8618    - additionalPrinterColumns:
  8619      - description: Cluster
  8620        jsonPath: .spec.clusterName
  8621        name: Cluster
  8622        type: string
  8623      - description: Time duration since creation of Machine
  8624        jsonPath: .metadata.creationTimestamp
  8625        name: Age
  8626        type: date
  8627      - description: Provider ID
  8628        jsonPath: .spec.providerID
  8629        name: ProviderID
  8630        type: string
  8631      - description: Machine status such as Terminating/Pending/Running/Failed etc
  8632        jsonPath: .status.phase
  8633        name: Phase
  8634        type: string
  8635      - description: Kubernetes version associated with this Machine
  8636        jsonPath: .spec.version
  8637        name: Version
  8638        type: string
  8639      - description: Node name associated with this machine
  8640        jsonPath: .status.nodeRef.name
  8641        name: NodeName
  8642        priority: 1
  8643        type: string
  8644      deprecated: true
  8645      name: v1alpha4
  8646      schema:
  8647        openAPIV3Schema:
  8648          description: "Machine is the Schema for the machines API. \n Deprecated: This
  8649            type will be removed in one of the next releases."
  8650          properties:
  8651            apiVersion:
  8652              description: 'APIVersion defines the versioned schema of this representation
  8653                of an object. Servers should convert recognized schemas to the latest
  8654                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  8655              type: string
  8656            kind:
  8657              description: 'Kind is a string value representing the REST resource this
  8658                object represents. Servers may infer this from the endpoint the client
  8659                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8660              type: string
  8661            metadata:
  8662              type: object
  8663            spec:
  8664              description: MachineSpec defines the desired state of Machine.
  8665              properties:
  8666                bootstrap:
  8667                  description: Bootstrap is a reference to a local struct which encapsulates
  8668                    fields to configure the Machine’s bootstrapping mechanism.
  8669                  properties:
  8670                    configRef:
  8671                      description: ConfigRef is a reference to a bootstrap provider-specific
  8672                        resource that holds configuration details. The reference is
  8673                        optional to allow users/operators to specify Bootstrap.DataSecretName
  8674                        without the need of a controller.
  8675                      properties:
  8676                        apiVersion:
  8677                          description: API version of the referent.
  8678                          type: string
  8679                        fieldPath:
  8680                          description: 'If referring to a piece of an object instead
  8681                            of an entire object, this string should contain a valid
  8682                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
  8683                            For example, if the object reference is to a container within
  8684                            a pod, this would take on a value like: "spec.containers{name}"
  8685                            (where "name" refers to the name of the container that triggered
  8686                            the event) or if no container name is specified "spec.containers[2]"
  8687                            (container with index 2 in this pod). This syntax is chosen
  8688                            only to have some well-defined way of referencing a part
  8689                            of an object. TODO: this design is not final and this field
  8690                            is subject to change in the future.'
  8691                          type: string
  8692                        kind:
  8693                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8694                          type: string
  8695                        name:
  8696                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8697                          type: string
  8698                        namespace:
  8699                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  8700                          type: string
  8701                        resourceVersion:
  8702                          description: 'Specific resourceVersion to which this reference
  8703                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  8704                          type: string
  8705                        uid:
  8706                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  8707                          type: string
  8708                      type: object
  8709                      x-kubernetes-map-type: atomic
  8710                    dataSecretName:
  8711                      description: DataSecretName is the name of the secret that stores
  8712                        the bootstrap data script. If nil, the Machine should remain
  8713                        in the Pending state.
  8714                      type: string
  8715                  type: object
  8716                clusterName:
  8717                  description: ClusterName is the name of the Cluster this object belongs
  8718                    to.
  8719                  minLength: 1
  8720                  type: string
  8721                failureDomain:
  8722                  description: FailureDomain is the failure domain the machine will
  8723                    be created in. Must match a key in the FailureDomains map stored
  8724                    on the cluster object.
  8725                  type: string
  8726                infrastructureRef:
  8727                  description: InfrastructureRef is a required reference to a custom
  8728                    resource offered by an infrastructure provider.
  8729                  properties:
  8730                    apiVersion:
  8731                      description: API version of the referent.
  8732                      type: string
  8733                    fieldPath:
  8734                      description: 'If referring to a piece of an object instead of
  8735                        an entire object, this string should contain a valid JSON/Go
  8736                        field access statement, such as desiredState.manifest.containers[2].
  8737                        For example, if the object reference is to a container within
  8738                        a pod, this would take on a value like: "spec.containers{name}"
  8739                        (where "name" refers to the name of the container that triggered
  8740                        the event) or if no container name is specified "spec.containers[2]"
  8741                        (container with index 2 in this pod). This syntax is chosen
  8742                        only to have some well-defined way of referencing a part of
  8743                        an object. TODO: this design is not final and this field is
  8744                        subject to change in the future.'
  8745                      type: string
  8746                    kind:
  8747                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8748                      type: string
  8749                    name:
  8750                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8751                      type: string
  8752                    namespace:
  8753                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  8754                      type: string
  8755                    resourceVersion:
  8756                      description: 'Specific resourceVersion to which this reference
  8757                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  8758                      type: string
  8759                    uid:
  8760                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  8761                      type: string
  8762                  type: object
  8763                  x-kubernetes-map-type: atomic
  8764                nodeDrainTimeout:
  8765                  description: 'NodeDrainTimeout is the total amount of time that the
  8766                    controller will spend on draining a node. The default value is 0,
  8767                    meaning that the node can be drained without any time limitations.
  8768                    NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`'
  8769                  type: string
  8770                providerID:
  8771                  description: ProviderID is the identification ID of the machine provided
  8772                    by the provider. This field must match the provider ID as seen on
  8773                    the node object corresponding to this machine. This field is required
  8774                    by higher level consumers of cluster-api. Example use case is cluster
  8775                    autoscaler with cluster-api as provider. Clean-up logic in the autoscaler
  8776                    compares machines to nodes to find out machines at provider which
  8777                    could not get registered as Kubernetes nodes. With cluster-api as
  8778                    a generic out-of-tree provider for autoscaler, this field is required
  8779                    by autoscaler to be able to have a provider view of the list of
  8780                    machines. Another list of nodes is queried from the k8s apiserver
  8781                    and then a comparison is done to find out unregistered machines
  8782                    and are marked for delete. This field will be set by the actuators
  8783                    and consumed by higher level entities like autoscaler that will
  8784                    be interfacing with cluster-api as generic provider.
  8785                  type: string
  8786                version:
  8787                  description: Version defines the desired Kubernetes version. This
  8788                    field is meant to be optionally used by bootstrap providers.
  8789                  type: string
  8790              required:
  8791              - bootstrap
  8792              - clusterName
  8793              - infrastructureRef
  8794              type: object
  8795            status:
  8796              description: MachineStatus defines the observed state of Machine.
  8797              properties:
  8798                addresses:
  8799                  description: Addresses is a list of addresses assigned to the machine.
  8800                    This field is copied from the infrastructure provider reference.
  8801                  items:
  8802                    description: MachineAddress contains information for the node's
  8803                      address.
  8804                    properties:
  8805                      address:
  8806                        description: The machine address.
  8807                        type: string
  8808                      type:
  8809                        description: Machine address type, one of Hostname, ExternalIP
  8810                          or InternalIP.
  8811                        type: string
  8812                    required:
  8813                    - address
  8814                    - type
  8815                    type: object
  8816                  type: array
  8817                bootstrapReady:
  8818                  description: BootstrapReady is the state of the bootstrap provider.
  8819                  type: boolean
  8820                conditions:
  8821                  description: Conditions defines current service state of the Machine.
  8822                  items:
  8823                    description: Condition defines an observation of a Cluster API resource
  8824                      operational state.
  8825                    properties:
  8826                      lastTransitionTime:
  8827                        description: Last time the condition transitioned from one status
  8828                          to another. This should be when the underlying condition changed.
  8829                          If that is not known, then using the time when the API field
  8830                          changed is acceptable.
  8831                        format: date-time
  8832                        type: string
  8833                      message:
  8834                        description: A human readable message indicating details about
  8835                          the transition. This field may be empty.
  8836                        type: string
  8837                      reason:
  8838                        description: The reason for the condition's last transition
  8839                          in CamelCase. The specific API may choose whether or not this
  8840                          field is considered a guaranteed API. This field may not be
  8841                          empty.
  8842                        type: string
  8843                      severity:
  8844                        description: Severity provides an explicit classification of
  8845                          Reason code, so the users or machines can immediately understand
  8846                          the current situation and act accordingly. The Severity field
  8847                          MUST be set only when Status=False.
  8848                        type: string
  8849                      status:
  8850                        description: Status of the condition, one of True, False, Unknown.
  8851                        type: string
  8852                      type:
  8853                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  8854                          Many .condition.type values are consistent across resources
  8855                          like Available, but because arbitrary conditions can be useful
  8856                          (see .node.status.conditions), the ability to deconflict is
  8857                          important.
  8858                        type: string
  8859                    required:
  8860                    - status
  8861                    - type
  8862                    type: object
  8863                  type: array
  8864                failureMessage:
  8865                  description: "FailureMessage will be set in the event that there is
  8866                    a terminal problem reconciling the Machine and will contain a more
  8867                    verbose string suitable for logging and human consumption. \n This
  8868                    field should not be set for transitive errors that a controller
  8869                    faces that are expected to be fixed automatically over time (like
  8870                    service outages), but instead indicate that something is fundamentally
  8871                    wrong with the Machine's spec or the configuration of the controller,
  8872                    and that manual intervention is required. Examples of terminal errors
  8873                    would be invalid combinations of settings in the spec, values that
  8874                    are unsupported by the controller, or the responsible controller
  8875                    itself being critically misconfigured. \n Any transient errors that
  8876                    occur during the reconciliation of Machines can be added as events
  8877                    to the Machine object and/or logged in the controller's output."
  8878                  type: string
  8879                failureReason:
  8880                  description: "FailureReason will be set in the event that there is
  8881                    a terminal problem reconciling the Machine and will contain a succinct
  8882                    value suitable for machine interpretation. \n This field should
  8883                    not be set for transitive errors that a controller faces that are
  8884                    expected to be fixed automatically over time (like service outages),
  8885                    but instead indicate that something is fundamentally wrong with
  8886                    the Machine's spec or the configuration of the controller, and that
  8887                    manual intervention is required. Examples of terminal errors would
  8888                    be invalid combinations of settings in the spec, values that are
  8889                    unsupported by the controller, or the responsible controller itself
  8890                    being critically misconfigured. \n Any transient errors that occur
  8891                    during the reconciliation of Machines can be added as events to
  8892                    the Machine object and/or logged in the controller's output."
  8893                  type: string
  8894                infrastructureReady:
  8895                  description: InfrastructureReady is the state of the infrastructure
  8896                    provider.
  8897                  type: boolean
  8898                lastUpdated:
  8899                  description: LastUpdated identifies when the phase of the Machine
  8900                    last transitioned.
  8901                  format: date-time
  8902                  type: string
  8903                nodeInfo:
  8904                  description: 'NodeInfo is a set of ids/uuids to uniquely identify
  8905                    the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info'
  8906                  properties:
  8907                    architecture:
  8908                      description: The Architecture reported by the node
  8909                      type: string
  8910                    bootID:
  8911                      description: Boot ID reported by the node.
  8912                      type: string
  8913                    containerRuntimeVersion:
  8914                      description: ContainerRuntime Version reported by the node through
  8915                        runtime remote API (e.g. containerd://1.4.2).
  8916                      type: string
  8917                    kernelVersion:
  8918                      description: Kernel Version reported by the node from 'uname -r'
  8919                        (e.g. 3.16.0-0.bpo.4-amd64).
  8920                      type: string
  8921                    kubeProxyVersion:
  8922                      description: KubeProxy Version reported by the node.
  8923                      type: string
  8924                    kubeletVersion:
  8925                      description: Kubelet Version reported by the node.
  8926                      type: string
  8927                    machineID:
  8928                      description: 'MachineID reported by the node. For unique machine
  8929                        identification in the cluster this field is preferred. Learn
  8930                        more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html'
  8931                      type: string
  8932                    operatingSystem:
  8933                      description: The Operating System reported by the node
  8934                      type: string
  8935                    osImage:
  8936                      description: OS Image reported by the node from /etc/os-release
  8937                        (e.g. Debian GNU/Linux 7 (wheezy)).
  8938                      type: string
  8939                    systemUUID:
  8940                      description: SystemUUID reported by the node. For unique machine
  8941                        identification MachineID is preferred. This field is specific
  8942                        to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid
  8943                      type: string
  8944                  required:
  8945                  - architecture
  8946                  - bootID
  8947                  - containerRuntimeVersion
  8948                  - kernelVersion
  8949                  - kubeProxyVersion
  8950                  - kubeletVersion
  8951                  - machineID
  8952                  - operatingSystem
  8953                  - osImage
  8954                  - systemUUID
  8955                  type: object
  8956                nodeRef:
  8957                  description: NodeRef will point to the corresponding Node if it exists.
  8958                  properties:
  8959                    apiVersion:
  8960                      description: API version of the referent.
  8961                      type: string
  8962                    fieldPath:
  8963                      description: 'If referring to a piece of an object instead of
  8964                        an entire object, this string should contain a valid JSON/Go
  8965                        field access statement, such as desiredState.manifest.containers[2].
  8966                        For example, if the object reference is to a container within
  8967                        a pod, this would take on a value like: "spec.containers{name}"
  8968                        (where "name" refers to the name of the container that triggered
  8969                        the event) or if no container name is specified "spec.containers[2]"
  8970                        (container with index 2 in this pod). This syntax is chosen
  8971                        only to have some well-defined way of referencing a part of
  8972                        an object. TODO: this design is not final and this field is
  8973                        subject to change in the future.'
  8974                      type: string
  8975                    kind:
  8976                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8977                      type: string
  8978                    name:
  8979                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8980                      type: string
  8981                    namespace:
  8982                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  8983                      type: string
  8984                    resourceVersion:
  8985                      description: 'Specific resourceVersion to which this reference
  8986                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  8987                      type: string
  8988                    uid:
  8989                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  8990                      type: string
  8991                  type: object
  8992                  x-kubernetes-map-type: atomic
  8993                observedGeneration:
  8994                  description: ObservedGeneration is the latest generation observed
  8995                    by the controller.
  8996                  format: int64
  8997                  type: integer
  8998                phase:
  8999                  description: Phase represents the current phase of machine actuation.
  9000                    E.g. Pending, Running, Terminating, Failed etc.
  9001                  type: string
  9002                version:
  9003                  description: Version specifies the current version of Kubernetes running
  9004                    on the corresponding Node. This is meant to be a means of bubbling
  9005                    up status from the Node to the Machine. It is entirely optional,
  9006                    but useful for end-user UX if it’s present.
  9007                  type: string
  9008              type: object
  9009          type: object
  9010      served: true
  9011      storage: false
  9012      subresources:
  9013        status: {}
  9014    - additionalPrinterColumns:
  9015      - description: Cluster
  9016        jsonPath: .spec.clusterName
  9017        name: Cluster
  9018        type: string
  9019      - description: Node name associated with this machine
  9020        jsonPath: .status.nodeRef.name
  9021        name: NodeName
  9022        type: string
  9023      - description: Provider ID
  9024        jsonPath: .spec.providerID
  9025        name: ProviderID
  9026        type: string
  9027      - description: Machine status such as Terminating/Pending/Running/Failed etc
  9028        jsonPath: .status.phase
  9029        name: Phase
  9030        type: string
  9031      - description: Time duration since creation of Machine
  9032        jsonPath: .metadata.creationTimestamp
  9033        name: Age
  9034        type: date
  9035      - description: Kubernetes version associated with this Machine
  9036        jsonPath: .spec.version
  9037        name: Version
  9038        type: string
  9039      name: v1beta1
  9040      schema:
  9041        openAPIV3Schema:
  9042          description: Machine is the Schema for the machines API.
  9043          properties:
  9044            apiVersion:
  9045              description: 'APIVersion defines the versioned schema of this representation
  9046                of an object. Servers should convert recognized schemas to the latest
  9047                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  9048              type: string
  9049            kind:
  9050              description: 'Kind is a string value representing the REST resource this
  9051                object represents. Servers may infer this from the endpoint the client
  9052                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9053              type: string
  9054            metadata:
  9055              type: object
  9056            spec:
  9057              description: MachineSpec defines the desired state of Machine.
  9058              properties:
  9059                bootstrap:
  9060                  description: Bootstrap is a reference to a local struct which encapsulates
  9061                    fields to configure the Machine’s bootstrapping mechanism.
  9062                  properties:
  9063                    configRef:
  9064                      description: ConfigRef is a reference to a bootstrap provider-specific
  9065                        resource that holds configuration details. The reference is
  9066                        optional to allow users/operators to specify Bootstrap.DataSecretName
  9067                        without the need of a controller.
  9068                      properties:
  9069                        apiVersion:
  9070                          description: API version of the referent.
  9071                          type: string
  9072                        fieldPath:
  9073                          description: 'If referring to a piece of an object instead
  9074                            of an entire object, this string should contain a valid
  9075                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
  9076                            For example, if the object reference is to a container within
  9077                            a pod, this would take on a value like: "spec.containers{name}"
  9078                            (where "name" refers to the name of the container that triggered
  9079                            the event) or if no container name is specified "spec.containers[2]"
  9080                            (container with index 2 in this pod). This syntax is chosen
  9081                            only to have some well-defined way of referencing a part
  9082                            of an object. TODO: this design is not final and this field
  9083                            is subject to change in the future.'
  9084                          type: string
  9085                        kind:
  9086                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9087                          type: string
  9088                        name:
  9089                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9090                          type: string
  9091                        namespace:
  9092                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  9093                          type: string
  9094                        resourceVersion:
  9095                          description: 'Specific resourceVersion to which this reference
  9096                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  9097                          type: string
  9098                        uid:
  9099                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  9100                          type: string
  9101                      type: object
  9102                      x-kubernetes-map-type: atomic
  9103                    dataSecretName:
  9104                      description: DataSecretName is the name of the secret that stores
  9105                        the bootstrap data script. If nil, the Machine should remain
  9106                        in the Pending state.
  9107                      type: string
  9108                  type: object
  9109                clusterName:
  9110                  description: ClusterName is the name of the Cluster this object belongs
  9111                    to.
  9112                  minLength: 1
  9113                  type: string
  9114                failureDomain:
  9115                  description: FailureDomain is the failure domain the machine will
  9116                    be created in. Must match a key in the FailureDomains map stored
  9117                    on the cluster object.
  9118                  type: string
  9119                infrastructureRef:
  9120                  description: InfrastructureRef is a required reference to a custom
  9121                    resource offered by an infrastructure provider.
  9122                  properties:
  9123                    apiVersion:
  9124                      description: API version of the referent.
  9125                      type: string
  9126                    fieldPath:
  9127                      description: 'If referring to a piece of an object instead of
  9128                        an entire object, this string should contain a valid JSON/Go
  9129                        field access statement, such as desiredState.manifest.containers[2].
  9130                        For example, if the object reference is to a container within
  9131                        a pod, this would take on a value like: "spec.containers{name}"
  9132                        (where "name" refers to the name of the container that triggered
  9133                        the event) or if no container name is specified "spec.containers[2]"
  9134                        (container with index 2 in this pod). This syntax is chosen
  9135                        only to have some well-defined way of referencing a part of
  9136                        an object. TODO: this design is not final and this field is
  9137                        subject to change in the future.'
  9138                      type: string
  9139                    kind:
  9140                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9141                      type: string
  9142                    name:
  9143                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9144                      type: string
  9145                    namespace:
  9146                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  9147                      type: string
  9148                    resourceVersion:
  9149                      description: 'Specific resourceVersion to which this reference
  9150                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  9151                      type: string
  9152                    uid:
  9153                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  9154                      type: string
  9155                  type: object
  9156                  x-kubernetes-map-type: atomic
  9157                nodeDeletionTimeout:
  9158                  description: NodeDeletionTimeout defines how long the controller will
  9159                    attempt to delete the Node that the Machine hosts after the Machine
  9160                    is marked for deletion. A duration of 0 will retry deletion indefinitely.
  9161                    Defaults to 10 seconds.
  9162                  type: string
  9163                nodeDrainTimeout:
  9164                  description: 'NodeDrainTimeout is the total amount of time that the
  9165                    controller will spend on draining a node. The default value is 0,
  9166                    meaning that the node can be drained without any time limitations.
  9167                    NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`'
  9168                  type: string
  9169                nodeVolumeDetachTimeout:
  9170                  description: NodeVolumeDetachTimeout is the total amount of time that
  9171                    the controller will spend on waiting for all volumes to be detached.
  9172                    The default value is 0, meaning that the volumes can be detached
  9173                    without any time limitations.
  9174                  type: string
  9175                providerID:
  9176                  description: ProviderID is the identification ID of the machine provided
  9177                    by the provider. This field must match the provider ID as seen on
  9178                    the node object corresponding to this machine. This field is required
  9179                    by higher level consumers of cluster-api. Example use case is cluster
  9180                    autoscaler with cluster-api as provider. Clean-up logic in the autoscaler
  9181                    compares machines to nodes to find out machines at provider which
  9182                    could not get registered as Kubernetes nodes. With cluster-api as
  9183                    a generic out-of-tree provider for autoscaler, this field is required
  9184                    by autoscaler to be able to have a provider view of the list of
  9185                    machines. Another list of nodes is queried from the k8s apiserver
  9186                    and then a comparison is done to find out unregistered machines
  9187                    and are marked for delete. This field will be set by the actuators
  9188                    and consumed by higher level entities like autoscaler that will
  9189                    be interfacing with cluster-api as generic provider.
  9190                  type: string
  9191                version:
  9192                  description: Version defines the desired Kubernetes version. This
  9193                    field is meant to be optionally used by bootstrap providers.
  9194                  type: string
  9195              required:
  9196              - bootstrap
  9197              - clusterName
  9198              - infrastructureRef
  9199              type: object
  9200            status:
  9201              description: MachineStatus defines the observed state of Machine.
  9202              properties:
  9203                addresses:
  9204                  description: Addresses is a list of addresses assigned to the machine.
  9205                    This field is copied from the infrastructure provider reference.
  9206                  items:
  9207                    description: MachineAddress contains information for the node's
  9208                      address.
  9209                    properties:
  9210                      address:
  9211                        description: The machine address.
  9212                        type: string
  9213                      type:
  9214                        description: Machine address type, one of Hostname, ExternalIP,
  9215                          InternalIP, ExternalDNS or InternalDNS.
  9216                        type: string
  9217                    required:
  9218                    - address
  9219                    - type
  9220                    type: object
  9221                  type: array
  9222                bootstrapReady:
  9223                  description: BootstrapReady is the state of the bootstrap provider.
  9224                  type: boolean
  9225                certificatesExpiryDate:
  9226                  description: CertificatesExpiryDate is the expiry date of the machine
  9227                    certificates. This value is only set for control plane machines.
  9228                  format: date-time
  9229                  type: string
  9230                conditions:
  9231                  description: Conditions defines current service state of the Machine.
  9232                  items:
  9233                    description: Condition defines an observation of a Cluster API resource
  9234                      operational state.
  9235                    properties:
  9236                      lastTransitionTime:
  9237                        description: Last time the condition transitioned from one status
  9238                          to another. This should be when the underlying condition changed.
  9239                          If that is not known, then using the time when the API field
  9240                          changed is acceptable.
  9241                        format: date-time
  9242                        type: string
  9243                      message:
  9244                        description: A human readable message indicating details about
  9245                          the transition. This field may be empty.
  9246                        type: string
  9247                      reason:
  9248                        description: The reason for the condition's last transition
  9249                          in CamelCase. The specific API may choose whether or not this
  9250                          field is considered a guaranteed API. This field may not be
  9251                          empty.
  9252                        type: string
  9253                      severity:
  9254                        description: Severity provides an explicit classification of
  9255                          Reason code, so the users or machines can immediately understand
  9256                          the current situation and act accordingly. The Severity field
  9257                          MUST be set only when Status=False.
  9258                        type: string
  9259                      status:
  9260                        description: Status of the condition, one of True, False, Unknown.
  9261                        type: string
  9262                      type:
  9263                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
  9264                          Many .condition.type values are consistent across resources
  9265                          like Available, but because arbitrary conditions can be useful
  9266                          (see .node.status.conditions), the ability to deconflict is
  9267                          important.
  9268                        type: string
  9269                    required:
  9270                    - lastTransitionTime
  9271                    - status
  9272                    - type
  9273                    type: object
  9274                  type: array
  9275                failureMessage:
  9276                  description: "FailureMessage will be set in the event that there is
  9277                    a terminal problem reconciling the Machine and will contain a more
  9278                    verbose string suitable for logging and human consumption. \n This
  9279                    field should not be set for transitive errors that a controller
  9280                    faces that are expected to be fixed automatically over time (like
  9281                    service outages), but instead indicate that something is fundamentally
  9282                    wrong with the Machine's spec or the configuration of the controller,
  9283                    and that manual intervention is required. Examples of terminal errors
  9284                    would be invalid combinations of settings in the spec, values that
  9285                    are unsupported by the controller, or the responsible controller
  9286                    itself being critically misconfigured. \n Any transient errors that
  9287                    occur during the reconciliation of Machines can be added as events
  9288                    to the Machine object and/or logged in the controller's output."
  9289                  type: string
  9290                failureReason:
  9291                  description: "FailureReason will be set in the event that there is
  9292                    a terminal problem reconciling the Machine and will contain a succinct
  9293                    value suitable for machine interpretation. \n This field should
  9294                    not be set for transitive errors that a controller faces that are
  9295                    expected to be fixed automatically over time (like service outages),
  9296                    but instead indicate that something is fundamentally wrong with
  9297                    the Machine's spec or the configuration of the controller, and that
  9298                    manual intervention is required. Examples of terminal errors would
  9299                    be invalid combinations of settings in the spec, values that are
  9300                    unsupported by the controller, or the responsible controller itself
  9301                    being critically misconfigured. \n Any transient errors that occur
  9302                    during the reconciliation of Machines can be added as events to
  9303                    the Machine object and/or logged in the controller's output."
  9304                  type: string
  9305                infrastructureReady:
  9306                  description: InfrastructureReady is the state of the infrastructure
  9307                    provider.
  9308                  type: boolean
  9309                lastUpdated:
  9310                  description: LastUpdated identifies when the phase of the Machine
  9311                    last transitioned.
  9312                  format: date-time
  9313                  type: string
  9314                nodeInfo:
  9315                  description: 'NodeInfo is a set of ids/uuids to uniquely identify
  9316                    the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info'
  9317                  properties:
  9318                    architecture:
  9319                      description: The Architecture reported by the node
  9320                      type: string
  9321                    bootID:
  9322                      description: Boot ID reported by the node.
  9323                      type: string
  9324                    containerRuntimeVersion:
  9325                      description: ContainerRuntime Version reported by the node through
  9326                        runtime remote API (e.g. containerd://1.4.2).
  9327                      type: string
  9328                    kernelVersion:
  9329                      description: Kernel Version reported by the node from 'uname -r'
  9330                        (e.g. 3.16.0-0.bpo.4-amd64).
  9331                      type: string
  9332                    kubeProxyVersion:
  9333                      description: KubeProxy Version reported by the node.
  9334                      type: string
  9335                    kubeletVersion:
  9336                      description: Kubelet Version reported by the node.
  9337                      type: string
  9338                    machineID:
  9339                      description: 'MachineID reported by the node. For unique machine
  9340                        identification in the cluster this field is preferred. Learn
  9341                        more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html'
  9342                      type: string
  9343                    operatingSystem:
  9344                      description: The Operating System reported by the node
  9345                      type: string
  9346                    osImage:
  9347                      description: OS Image reported by the node from /etc/os-release
  9348                        (e.g. Debian GNU/Linux 7 (wheezy)).
  9349                      type: string
  9350                    systemUUID:
  9351                      description: SystemUUID reported by the node. For unique machine
  9352                        identification MachineID is preferred. This field is specific
  9353                        to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid
  9354                      type: string
  9355                  required:
  9356                  - architecture
  9357                  - bootID
  9358                  - containerRuntimeVersion
  9359                  - kernelVersion
  9360                  - kubeProxyVersion
  9361                  - kubeletVersion
  9362                  - machineID
  9363                  - operatingSystem
  9364                  - osImage
  9365                  - systemUUID
  9366                  type: object
  9367                nodeRef:
  9368                  description: NodeRef will point to the corresponding Node if it exists.
  9369                  properties:
  9370                    apiVersion:
  9371                      description: API version of the referent.
  9372                      type: string
  9373                    fieldPath:
  9374                      description: 'If referring to a piece of an object instead of
  9375                        an entire object, this string should contain a valid JSON/Go
  9376                        field access statement, such as desiredState.manifest.containers[2].
  9377                        For example, if the object reference is to a container within
  9378                        a pod, this would take on a value like: "spec.containers{name}"
  9379                        (where "name" refers to the name of the container that triggered
  9380                        the event) or if no container name is specified "spec.containers[2]"
  9381                        (container with index 2 in this pod). This syntax is chosen
  9382                        only to have some well-defined way of referencing a part of
  9383                        an object. TODO: this design is not final and this field is
  9384                        subject to change in the future.'
  9385                      type: string
  9386                    kind:
  9387                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9388                      type: string
  9389                    name:
  9390                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9391                      type: string
  9392                    namespace:
  9393                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  9394                      type: string
  9395                    resourceVersion:
  9396                      description: 'Specific resourceVersion to which this reference
  9397                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  9398                      type: string
  9399                    uid:
  9400                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  9401                      type: string
  9402                  type: object
  9403                  x-kubernetes-map-type: atomic
  9404                observedGeneration:
  9405                  description: ObservedGeneration is the latest generation observed
  9406                    by the controller.
  9407                  format: int64
  9408                  type: integer
  9409                phase:
  9410                  description: Phase represents the current phase of machine actuation.
  9411                    E.g. Pending, Running, Terminating, Failed etc.
  9412                  type: string
  9413              type: object
  9414          type: object
  9415      served: true
  9416      storage: true
  9417      subresources:
  9418        status: {}
  9419  ---
  9420  apiVersion: apiextensions.k8s.io/v1
  9421  kind: CustomResourceDefinition
  9422  metadata:
  9423    annotations:
  9424      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
  9425      controller-gen.kubebuilder.io/version: v0.12.0
  9426    labels:
  9427      cluster.x-k8s.io/provider: cluster-api
  9428    name: machinesets.cluster.x-k8s.io
  9429  spec:
  9430    conversion:
  9431      strategy: Webhook
  9432      webhook:
  9433        clientConfig:
  9434          caBundle: Cg==
  9435          service:
  9436            name: capi-webhook-service
  9437            namespace: capi-system
  9438            path: /convert
  9439        conversionReviewVersions:
  9440        - v1
  9441        - v1beta1
  9442    group: cluster.x-k8s.io
  9443    names:
  9444      categories:
  9445      - cluster-api
  9446      kind: MachineSet
  9447      listKind: MachineSetList
  9448      plural: machinesets
  9449      shortNames:
  9450      - ms
  9451      singular: machineset
  9452    scope: Namespaced
  9453    versions:
  9454    - additionalPrinterColumns:
  9455      - description: Total number of non-terminated machines targeted by this machineset
  9456        jsonPath: .status.replicas
  9457        name: Replicas
  9458        type: integer
  9459      - description: Total number of available machines (ready for at least minReadySeconds)
  9460        jsonPath: .status.availableReplicas
  9461        name: Available
  9462        type: integer
  9463      - description: Total number of ready machines targeted by this machineset.
  9464        jsonPath: .status.readyReplicas
  9465        name: Ready
  9466        type: integer
  9467      deprecated: true
  9468      name: v1alpha3
  9469      schema:
  9470        openAPIV3Schema:
  9471          description: "MachineSet is the Schema for the machinesets API. \n Deprecated:
  9472            This type will be removed in one of the next releases."
  9473          properties:
  9474            apiVersion:
  9475              description: 'APIVersion defines the versioned schema of this representation
  9476                of an object. Servers should convert recognized schemas to the latest
  9477                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  9478              type: string
  9479            kind:
  9480              description: 'Kind is a string value representing the REST resource this
  9481                object represents. Servers may infer this from the endpoint the client
  9482                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9483              type: string
  9484            metadata:
  9485              type: object
  9486            spec:
  9487              description: MachineSetSpec defines the desired state of MachineSet.
  9488              properties:
  9489                clusterName:
  9490                  description: ClusterName is the name of the Cluster this object belongs
  9491                    to.
  9492                  minLength: 1
  9493                  type: string
  9494                deletePolicy:
  9495                  description: DeletePolicy defines the policy used to identify nodes
  9496                    to delete when downscaling. Defaults to "Random".  Valid values
  9497                    are "Random, "Newest", "Oldest"
  9498                  enum:
  9499                  - Random
  9500                  - Newest
  9501                  - Oldest
  9502                  type: string
  9503                minReadySeconds:
  9504                  description: MinReadySeconds is the minimum number of seconds for
  9505                    which a newly created machine should be ready. Defaults to 0 (machine
  9506                    will be considered available as soon as it is ready)
  9507                  format: int32
  9508                  type: integer
  9509                replicas:
  9510                  description: Replicas is the number of desired replicas. This is a
  9511                    pointer to distinguish between explicit zero and unspecified. Defaults
  9512                    to 1.
  9513                  format: int32
  9514                  type: integer
  9515                selector:
  9516                  description: 'Selector is a label query over machines that should
  9517                    match the replica count. Label keys and values that must match in
  9518                    order to be controlled by this MachineSet. It must match the machine
  9519                    template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
  9520                  properties:
  9521                    matchExpressions:
  9522                      description: matchExpressions is a list of label selector requirements.
  9523                        The requirements are ANDed.
  9524                      items:
  9525                        description: A label selector requirement is a selector that
  9526                          contains values, a key, and an operator that relates the key
  9527                          and values.
  9528                        properties:
  9529                          key:
  9530                            description: key is the label key that the selector applies
  9531                              to.
  9532                            type: string
  9533                          operator:
  9534                            description: operator represents a key's relationship to
  9535                              a set of values. Valid operators are In, NotIn, Exists
  9536                              and DoesNotExist.
  9537                            type: string
  9538                          values:
  9539                            description: values is an array of string values. If the
  9540                              operator is In or NotIn, the values array must be non-empty.
  9541                              If the operator is Exists or DoesNotExist, the values
  9542                              array must be empty. This array is replaced during a strategic
  9543                              merge patch.
  9544                            items:
  9545                              type: string
  9546                            type: array
  9547                        required:
  9548                        - key
  9549                        - operator
  9550                        type: object
  9551                      type: array
  9552                    matchLabels:
  9553                      additionalProperties:
  9554                        type: string
  9555                      description: matchLabels is a map of {key,value} pairs. A single
  9556                        {key,value} in the matchLabels map is equivalent to an element
  9557                        of matchExpressions, whose key field is "key", the operator
  9558                        is "In", and the values array contains only "value". The requirements
  9559                        are ANDed.
  9560                      type: object
  9561                  type: object
  9562                  x-kubernetes-map-type: atomic
  9563                template:
  9564                  description: Template is the object that describes the machine that
  9565                    will be created if insufficient replicas are detected. Object references
  9566                    to custom resources are treated as templates.
  9567                  properties:
  9568                    metadata:
  9569                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  9570                      properties:
  9571                        annotations:
  9572                          additionalProperties:
  9573                            type: string
  9574                          description: 'Annotations is an unstructured key value map
  9575                            stored with a resource that may be set by external tools
  9576                            to store and retrieve arbitrary metadata. They are not queryable
  9577                            and should be preserved when modifying objects. More info:
  9578                            http://kubernetes.io/docs/user-guide/annotations'
  9579                          type: object
  9580                        generateName:
  9581                          description: "GenerateName is an optional prefix, used by
  9582                            the server, to generate a unique name ONLY IF the Name field
  9583                            has not been provided. If this field is used, the name returned
  9584                            to the client will be different than the name passed. This
  9585                            value will also be combined with a unique suffix. The provided
  9586                            value has the same validation rules as the Name field, and
  9587                            may be truncated by the length of the suffix required to
  9588                            make the value unique on the server. \n If this field is
  9589                            specified and the generated name exists, the server will
  9590                            NOT return a 409 - instead, it will either return 201 Created
  9591                            or 500 with Reason ServerTimeout indicating a unique name
  9592                            could not be found in the time allotted, and the client
  9593                            should retry (optionally after the time indicated in the
  9594                            Retry-After header). \n Applied only if Name is not specified.
  9595                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
  9596                            \n Deprecated: This field has no function and is going to
  9597                            be removed in a next release."
  9598                          type: string
  9599                        labels:
  9600                          additionalProperties:
  9601                            type: string
  9602                          description: 'Map of string keys and values that can be used
  9603                            to organize and categorize (scope and select) objects. May
  9604                            match selectors of replication controllers and services.
  9605                            More info: http://kubernetes.io/docs/user-guide/labels'
  9606                          type: object
  9607                        name:
  9608                          description: "Name must be unique within a namespace. Is required
  9609                            when creating resources, although some resources may allow
  9610                            a client to request the generation of an appropriate name
  9611                            automatically. Name is primarily intended for creation idempotence
  9612                            and configuration definition. Cannot be updated. More info:
  9613                            http://kubernetes.io/docs/user-guide/identifiers#names \n
  9614                            Deprecated: This field has no function and is going to be
  9615                            removed in a next release."
  9616                          type: string
  9617                        namespace:
  9618                          description: "Namespace defines the space within each name
  9619                            must be unique. An empty namespace is equivalent to the
  9620                            \"default\" namespace, but \"default\" is the canonical
  9621                            representation. Not all objects are required to be scoped
  9622                            to a namespace - the value of this field for those objects
  9623                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
  9624                            More info: http://kubernetes.io/docs/user-guide/namespaces
  9625                            \n Deprecated: This field has no function and is going to
  9626                            be removed in a next release."
  9627                          type: string
  9628                        ownerReferences:
  9629                          description: "List of objects depended by this object. If
  9630                            ALL objects in the list have been deleted, this object will
  9631                            be garbage collected. If this object is managed by a controller,
  9632                            then an entry in this list will point to this controller,
  9633                            with the controller field set to true. There cannot be more
  9634                            than one managing controller. \n Deprecated: This field
  9635                            has no function and is going to be removed in a next release."
  9636                          items:
  9637                            description: OwnerReference contains enough information
  9638                              to let you identify an owning object. An owning object
  9639                              must be in the same namespace as the dependent, or be
  9640                              cluster-scoped, so there is no namespace field.
  9641                            properties:
  9642                              apiVersion:
  9643                                description: API version of the referent.
  9644                                type: string
  9645                              blockOwnerDeletion:
  9646                                description: If true, AND if the owner has the "foregroundDeletion"
  9647                                  finalizer, then the owner cannot be deleted from the
  9648                                  key-value store until this reference is removed. See
  9649                                  https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
  9650                                  for how the garbage collector interacts with this
  9651                                  field and enforces the foreground deletion. Defaults
  9652                                  to false. To set this field, a user needs "delete"
  9653                                  permission of the owner, otherwise 422 (Unprocessable
  9654                                  Entity) will be returned.
  9655                                type: boolean
  9656                              controller:
  9657                                description: If true, this reference points to the managing
  9658                                  controller.
  9659                                type: boolean
  9660                              kind:
  9661                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9662                                type: string
  9663                              name:
  9664                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names'
  9665                                type: string
  9666                              uid:
  9667                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids'
  9668                                type: string
  9669                            required:
  9670                            - apiVersion
  9671                            - kind
  9672                            - name
  9673                            - uid
  9674                            type: object
  9675                            x-kubernetes-map-type: atomic
  9676                          type: array
  9677                      type: object
  9678                    spec:
  9679                      description: 'Specification of the desired behavior of the machine.
  9680                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  9681                      properties:
  9682                        bootstrap:
  9683                          description: Bootstrap is a reference to a local struct which
  9684                            encapsulates fields to configure the Machine’s bootstrapping
  9685                            mechanism.
  9686                          properties:
  9687                            configRef:
  9688                              description: ConfigRef is a reference to a bootstrap provider-specific
  9689                                resource that holds configuration details. The reference
  9690                                is optional to allow users/operators to specify Bootstrap.Data
  9691                                without the need of a controller.
  9692                              properties:
  9693                                apiVersion:
  9694                                  description: API version of the referent.
  9695                                  type: string
  9696                                fieldPath:
  9697                                  description: 'If referring to a piece of an object
  9698                                    instead of an entire object, this string should
  9699                                    contain a valid JSON/Go field access statement,
  9700                                    such as desiredState.manifest.containers[2]. For
  9701                                    example, if the object reference is to a container
  9702                                    within a pod, this would take on a value like: "spec.containers{name}"
  9703                                    (where "name" refers to the name of the container
  9704                                    that triggered the event) or if no container name
  9705                                    is specified "spec.containers[2]" (container with
  9706                                    index 2 in this pod). This syntax is chosen only
  9707                                    to have some well-defined way of referencing a part
  9708                                    of an object. TODO: this design is not final and
  9709                                    this field is subject to change in the future.'
  9710                                  type: string
  9711                                kind:
  9712                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9713                                  type: string
  9714                                name:
  9715                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9716                                  type: string
  9717                                namespace:
  9718                                  description: 'Namespace of the referent. More info:
  9719                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  9720                                  type: string
  9721                                resourceVersion:
  9722                                  description: 'Specific resourceVersion to which this
  9723                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  9724                                  type: string
  9725                                uid:
  9726                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  9727                                  type: string
  9728                              type: object
  9729                              x-kubernetes-map-type: atomic
  9730                            data:
  9731                              description: "Data contains the bootstrap data, such as
  9732                                cloud-init details scripts. If nil, the Machine should
  9733                                remain in the Pending state. \n Deprecated: Switch to
  9734                                DataSecretName."
  9735                              type: string
  9736                            dataSecretName:
  9737                              description: DataSecretName is the name of the secret
  9738                                that stores the bootstrap data script. If nil, the Machine
  9739                                should remain in the Pending state.
  9740                              type: string
  9741                          type: object
  9742                        clusterName:
  9743                          description: ClusterName is the name of the Cluster this object
  9744                            belongs to.
  9745                          minLength: 1
  9746                          type: string
  9747                        failureDomain:
  9748                          description: FailureDomain is the failure domain the machine
  9749                            will be created in. Must match a key in the FailureDomains
  9750                            map stored on the cluster object.
  9751                          type: string
  9752                        infrastructureRef:
  9753                          description: InfrastructureRef is a required reference to
  9754                            a custom resource offered by an infrastructure provider.
  9755                          properties:
  9756                            apiVersion:
  9757                              description: API version of the referent.
  9758                              type: string
  9759                            fieldPath:
  9760                              description: 'If referring to a piece of an object instead
  9761                                of an entire object, this string should contain a valid
  9762                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
  9763                                For example, if the object reference is to a container
  9764                                within a pod, this would take on a value like: "spec.containers{name}"
  9765                                (where "name" refers to the name of the container that
  9766                                triggered the event) or if no container name is specified
  9767                                "spec.containers[2]" (container with index 2 in this
  9768                                pod). This syntax is chosen only to have some well-defined
  9769                                way of referencing a part of an object. TODO: this design
  9770                                is not final and this field is subject to change in
  9771                                the future.'
  9772                              type: string
  9773                            kind:
  9774                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9775                              type: string
  9776                            name:
  9777                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9778                              type: string
  9779                            namespace:
  9780                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  9781                              type: string
  9782                            resourceVersion:
  9783                              description: 'Specific resourceVersion to which this reference
  9784                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  9785                              type: string
  9786                            uid:
  9787                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  9788                              type: string
  9789                          type: object
  9790                          x-kubernetes-map-type: atomic
  9791                        nodeDrainTimeout:
  9792                          description: 'NodeDrainTimeout is the total amount of time
  9793                            that the controller will spend on draining a node. The default
  9794                            value is 0, meaning that the node can be drained without
  9795                            any time limitations. NOTE: NodeDrainTimeout is different
  9796                            from `kubectl drain --timeout`'
  9797                          type: string
  9798                        providerID:
  9799                          description: ProviderID is the identification ID of the machine
  9800                            provided by the provider. This field must match the provider
  9801                            ID as seen on the node object corresponding to this machine.
  9802                            This field is required by higher level consumers of cluster-api.
  9803                            Example use case is cluster autoscaler with cluster-api
  9804                            as provider. Clean-up logic in the autoscaler compares machines
  9805                            to nodes to find out machines at provider which could not
  9806                            get registered as Kubernetes nodes. With cluster-api as
  9807                            a generic out-of-tree provider for autoscaler, this field
  9808                            is required by autoscaler to be able to have a provider
  9809                            view of the list of machines. Another list of nodes is queried
  9810                            from the k8s apiserver and then a comparison is done to
  9811                            find out unregistered machines and are marked for delete.
  9812                            This field will be set by the actuators and consumed by
  9813                            higher level entities like autoscaler that will be interfacing
  9814                            with cluster-api as generic provider.
  9815                          type: string
  9816                        version:
  9817                          description: Version defines the desired Kubernetes version.
  9818                            This field is meant to be optionally used by bootstrap providers.
  9819                          type: string
  9820                      required:
  9821                      - bootstrap
  9822                      - clusterName
  9823                      - infrastructureRef
  9824                      type: object
  9825                  type: object
  9826              required:
  9827              - clusterName
  9828              - selector
  9829              type: object
  9830            status:
  9831              description: MachineSetStatus defines the observed state of MachineSet.
  9832              properties:
  9833                availableReplicas:
  9834                  description: The number of available replicas (ready for at least
  9835                    minReadySeconds) for this MachineSet.
  9836                  format: int32
  9837                  type: integer
  9838                failureMessage:
  9839                  type: string
  9840                failureReason:
  9841                  description: "In the event that there is a terminal problem reconciling
  9842                    the replicas, both FailureReason and FailureMessage will be set.
  9843                    FailureReason will be populated with a succinct value suitable for
  9844                    machine interpretation, while FailureMessage will contain a more
  9845                    verbose string suitable for logging and human consumption. \n These
  9846                    fields should not be set for transitive errors that a controller
  9847                    faces that are expected to be fixed automatically over time (like
  9848                    service outages), but instead indicate that something is fundamentally
  9849                    wrong with the MachineTemplate's spec or the configuration of the
  9850                    machine controller, and that manual intervention is required. Examples
  9851                    of terminal errors would be invalid combinations of settings in
  9852                    the spec, values that are unsupported by the machine controller,
  9853                    or the responsible machine controller itself being critically misconfigured.
  9854                    \n Any transient errors that occur during the reconciliation of
  9855                    Machines can be added as events to the MachineSet object and/or
  9856                    logged in the controller's output."
  9857                  type: string
  9858                fullyLabeledReplicas:
  9859                  description: The number of replicas that have labels matching the
  9860                    labels of the machine template of the MachineSet.
  9861                  format: int32
  9862                  type: integer
  9863                observedGeneration:
  9864                  description: ObservedGeneration reflects the generation of the most
  9865                    recently observed MachineSet.
  9866                  format: int64
  9867                  type: integer
  9868                readyReplicas:
  9869                  description: The number of ready replicas for this MachineSet. A machine
  9870                    is considered ready when the node has been created and is "Ready".
  9871                  format: int32
  9872                  type: integer
  9873                replicas:
  9874                  description: Replicas is the most recently observed number of replicas.
  9875                  format: int32
  9876                  type: integer
  9877                selector:
  9878                  description: 'Selector is the same as the label selector but in the
  9879                    string format to avoid introspection by clients. The string will
  9880                    be in the same format as the query-param syntax. More info about
  9881                    label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors'
  9882                  type: string
  9883              type: object
  9884          type: object
  9885      served: false
  9886      storage: false
  9887      subresources:
  9888        scale:
  9889          labelSelectorPath: .status.selector
  9890          specReplicasPath: .spec.replicas
  9891          statusReplicasPath: .status.replicas
  9892        status: {}
  9893    - additionalPrinterColumns:
  9894      - description: Cluster
  9895        jsonPath: .spec.clusterName
  9896        name: Cluster
  9897        type: string
  9898      - description: Time duration since creation of MachineSet
  9899        jsonPath: .metadata.creationTimestamp
  9900        name: Age
  9901        type: date
  9902      - description: Total number of non-terminated machines targeted by this machineset
  9903        jsonPath: .status.replicas
  9904        name: Replicas
  9905        type: integer
  9906      - description: Total number of available machines (ready for at least minReadySeconds)
  9907        jsonPath: .status.availableReplicas
  9908        name: Available
  9909        type: integer
  9910      - description: Total number of ready machines targeted by this machineset.
  9911        jsonPath: .status.readyReplicas
  9912        name: Ready
  9913        type: integer
  9914      deprecated: true
  9915      name: v1alpha4
  9916      schema:
  9917        openAPIV3Schema:
  9918          description: "MachineSet is the Schema for the machinesets API. \n Deprecated:
  9919            This type will be removed in one of the next releases."
  9920          properties:
  9921            apiVersion:
  9922              description: 'APIVersion defines the versioned schema of this representation
  9923                of an object. Servers should convert recognized schemas to the latest
  9924                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  9925              type: string
  9926            kind:
  9927              description: 'Kind is a string value representing the REST resource this
  9928                object represents. Servers may infer this from the endpoint the client
  9929                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9930              type: string
  9931            metadata:
  9932              type: object
  9933            spec:
  9934              description: MachineSetSpec defines the desired state of MachineSet.
  9935              properties:
  9936                clusterName:
  9937                  description: ClusterName is the name of the Cluster this object belongs
  9938                    to.
  9939                  minLength: 1
  9940                  type: string
  9941                deletePolicy:
  9942                  description: DeletePolicy defines the policy used to identify nodes
  9943                    to delete when downscaling. Defaults to "Random".  Valid values
  9944                    are "Random, "Newest", "Oldest"
  9945                  enum:
  9946                  - Random
  9947                  - Newest
  9948                  - Oldest
  9949                  type: string
  9950                minReadySeconds:
  9951                  description: MinReadySeconds is the minimum number of seconds for
  9952                    which a newly created machine should be ready. Defaults to 0 (machine
  9953                    will be considered available as soon as it is ready)
  9954                  format: int32
  9955                  type: integer
  9956                replicas:
  9957                  default: 1
  9958                  description: Replicas is the number of desired replicas. This is a
  9959                    pointer to distinguish between explicit zero and unspecified. Defaults
  9960                    to 1.
  9961                  format: int32
  9962                  type: integer
  9963                selector:
  9964                  description: 'Selector is a label query over machines that should
  9965                    match the replica count. Label keys and values that must match in
  9966                    order to be controlled by this MachineSet. It must match the machine
  9967                    template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
  9968                  properties:
  9969                    matchExpressions:
  9970                      description: matchExpressions is a list of label selector requirements.
  9971                        The requirements are ANDed.
  9972                      items:
  9973                        description: A label selector requirement is a selector that
  9974                          contains values, a key, and an operator that relates the key
  9975                          and values.
  9976                        properties:
  9977                          key:
  9978                            description: key is the label key that the selector applies
  9979                              to.
  9980                            type: string
  9981                          operator:
  9982                            description: operator represents a key's relationship to
  9983                              a set of values. Valid operators are In, NotIn, Exists
  9984                              and DoesNotExist.
  9985                            type: string
  9986                          values:
  9987                            description: values is an array of string values. If the
  9988                              operator is In or NotIn, the values array must be non-empty.
  9989                              If the operator is Exists or DoesNotExist, the values
  9990                              array must be empty. This array is replaced during a strategic
  9991                              merge patch.
  9992                            items:
  9993                              type: string
  9994                            type: array
  9995                        required:
  9996                        - key
  9997                        - operator
  9998                        type: object
  9999                      type: array
 10000                    matchLabels:
 10001                      additionalProperties:
 10002                        type: string
 10003                      description: matchLabels is a map of {key,value} pairs. A single
 10004                        {key,value} in the matchLabels map is equivalent to an element
 10005                        of matchExpressions, whose key field is "key", the operator
 10006                        is "In", and the values array contains only "value". The requirements
 10007                        are ANDed.
 10008                      type: object
 10009                  type: object
 10010                  x-kubernetes-map-type: atomic
 10011                template:
 10012                  description: Template is the object that describes the machine that
 10013                    will be created if insufficient replicas are detected. Object references
 10014                    to custom resources are treated as templates.
 10015                  properties:
 10016                    metadata:
 10017                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
 10018                      properties:
 10019                        annotations:
 10020                          additionalProperties:
 10021                            type: string
 10022                          description: 'Annotations is an unstructured key value map
 10023                            stored with a resource that may be set by external tools
 10024                            to store and retrieve arbitrary metadata. They are not queryable
 10025                            and should be preserved when modifying objects. More info:
 10026                            http://kubernetes.io/docs/user-guide/annotations'
 10027                          type: object
 10028                        labels:
 10029                          additionalProperties:
 10030                            type: string
 10031                          description: 'Map of string keys and values that can be used
 10032                            to organize and categorize (scope and select) objects. May
 10033                            match selectors of replication controllers and services.
 10034                            More info: http://kubernetes.io/docs/user-guide/labels'
 10035                          type: object
 10036                      type: object
 10037                    spec:
 10038                      description: 'Specification of the desired behavior of the machine.
 10039                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
 10040                      properties:
 10041                        bootstrap:
 10042                          description: Bootstrap is a reference to a local struct which
 10043                            encapsulates fields to configure the Machine’s bootstrapping
 10044                            mechanism.
 10045                          properties:
 10046                            configRef:
 10047                              description: ConfigRef is a reference to a bootstrap provider-specific
 10048                                resource that holds configuration details. The reference
 10049                                is optional to allow users/operators to specify Bootstrap.DataSecretName
 10050                                without the need of a controller.
 10051                              properties:
 10052                                apiVersion:
 10053                                  description: API version of the referent.
 10054                                  type: string
 10055                                fieldPath:
 10056                                  description: 'If referring to a piece of an object
 10057                                    instead of an entire object, this string should
 10058                                    contain a valid JSON/Go field access statement,
 10059                                    such as desiredState.manifest.containers[2]. For
 10060                                    example, if the object reference is to a container
 10061                                    within a pod, this would take on a value like: "spec.containers{name}"
 10062                                    (where "name" refers to the name of the container
 10063                                    that triggered the event) or if no container name
 10064                                    is specified "spec.containers[2]" (container with
 10065                                    index 2 in this pod). This syntax is chosen only
 10066                                    to have some well-defined way of referencing a part
 10067                                    of an object. TODO: this design is not final and
 10068                                    this field is subject to change in the future.'
 10069                                  type: string
 10070                                kind:
 10071                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
 10072                                  type: string
 10073                                name:
 10074                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
 10075                                  type: string
 10076                                namespace:
 10077                                  description: 'Namespace of the referent. More info:
 10078                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
 10079                                  type: string
 10080                                resourceVersion:
 10081                                  description: 'Specific resourceVersion to which this
 10082                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
 10083                                  type: string
 10084                                uid:
 10085                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
 10086                                  type: string
 10087                              type: object
 10088                              x-kubernetes-map-type: atomic
 10089                            dataSecretName:
 10090                              description: DataSecretName is the name of the secret
 10091                                that stores the bootstrap data script. If nil, the Machine
 10092                                should remain in the Pending state.
 10093                              type: string
 10094                          type: object
 10095                        clusterName:
 10096                          description: ClusterName is the name of the Cluster this object
 10097                            belongs to.
 10098                          minLength: 1
 10099                          type: string
 10100                        failureDomain:
 10101                          description: FailureDomain is the failure domain the machine
 10102                            will be created in. Must match a key in the FailureDomains
 10103                            map stored on the cluster object.
 10104                          type: string
 10105                        infrastructureRef:
 10106                          description: InfrastructureRef is a required reference to
 10107                            a custom resource offered by an infrastructure provider.
 10108                          properties:
 10109                            apiVersion:
 10110                              description: API version of the referent.
 10111                              type: string
 10112                            fieldPath:
 10113                              description: 'If referring to a piece of an object instead
 10114                                of an entire object, this string should contain a valid
 10115                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
 10116                                For example, if the object reference is to a container
 10117                                within a pod, this would take on a value like: "spec.containers{name}"
 10118                                (where "name" refers to the name of the container that
 10119                                triggered the event) or if no container name is specified
 10120                                "spec.containers[2]" (container with index 2 in this
 10121                                pod). This syntax is chosen only to have some well-defined
 10122                                way of referencing a part of an object. TODO: this design
 10123                                is not final and this field is subject to change in
 10124                                the future.'
 10125                              type: string
 10126                            kind:
 10127                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
 10128                              type: string
 10129                            name:
 10130                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
 10131                              type: string
 10132                            namespace:
 10133                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
 10134                              type: string
 10135                            resourceVersion:
 10136                              description: 'Specific resourceVersion to which this reference
 10137                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
 10138                              type: string
 10139                            uid:
 10140                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
 10141                              type: string
 10142                          type: object
 10143                          x-kubernetes-map-type: atomic
 10144                        nodeDrainTimeout:
 10145                          description: 'NodeDrainTimeout is the total amount of time
 10146                            that the controller will spend on draining a node. The default
 10147                            value is 0, meaning that the node can be drained without
 10148                            any time limitations. NOTE: NodeDrainTimeout is different
 10149                            from `kubectl drain --timeout`'
 10150                          type: string
 10151                        providerID:
 10152                          description: ProviderID is the identification ID of the machine
 10153                            provided by the provider. This field must match the provider
 10154                            ID as seen on the node object corresponding to this machine.
 10155                            This field is required by higher level consumers of cluster-api.
 10156                            Example use case is cluster autoscaler with cluster-api
 10157                            as provider. Clean-up logic in the autoscaler compares machines
 10158                            to nodes to find out machines at provider which could not
 10159                            get registered as Kubernetes nodes. With cluster-api as
 10160                            a generic out-of-tree provider for autoscaler, this field
 10161                            is required by autoscaler to be able to have a provider
 10162                            view of the list of machines. Another list of nodes is queried
 10163                            from the k8s apiserver and then a comparison is done to
 10164                            find out unregistered machines and are marked for delete.
 10165                            This field will be set by the actuators and consumed by
 10166                            higher level entities like autoscaler that will be interfacing
 10167                            with cluster-api as generic provider.
 10168                          type: string
 10169                        version:
 10170                          description: Version defines the desired Kubernetes version.
 10171                            This field is meant to be optionally used by bootstrap providers.
 10172                          type: string
 10173                      required:
 10174                      - bootstrap
 10175                      - clusterName
 10176                      - infrastructureRef
 10177                      type: object
 10178                  type: object
 10179              required:
 10180              - clusterName
 10181              - selector
 10182              type: object
 10183            status:
 10184              description: MachineSetStatus defines the observed state of MachineSet.
 10185              properties:
 10186                availableReplicas:
 10187                  description: The number of available replicas (ready for at least
 10188                    minReadySeconds) for this MachineSet.
 10189                  format: int32
 10190                  type: integer
 10191                conditions:
 10192                  description: Conditions defines current service state of the MachineSet.
 10193                  items:
 10194                    description: Condition defines an observation of a Cluster API resource
 10195                      operational state.
 10196                    properties:
 10197                      lastTransitionTime:
 10198                        description: Last time the condition transitioned from one status
 10199                          to another. This should be when the underlying condition changed.
 10200                          If that is not known, then using the time when the API field
 10201                          changed is acceptable.
 10202                        format: date-time
 10203                        type: string
 10204                      message:
 10205                        description: A human readable message indicating details about
 10206                          the transition. This field may be empty.
 10207                        type: string
 10208                      reason:
 10209                        description: The reason for the condition's last transition
 10210                          in CamelCase. The specific API may choose whether or not this
 10211                          field is considered a guaranteed API. This field may not be
 10212                          empty.
 10213                        type: string
 10214                      severity:
 10215                        description: Severity provides an explicit classification of
 10216                          Reason code, so the users or machines can immediately understand
 10217                          the current situation and act accordingly. The Severity field
 10218                          MUST be set only when Status=False.
 10219                        type: string
 10220                      status:
 10221                        description: Status of the condition, one of True, False, Unknown.
 10222                        type: string
 10223                      type:
 10224                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
 10225                          Many .condition.type values are consistent across resources
 10226                          like Available, but because arbitrary conditions can be useful
 10227                          (see .node.status.conditions), the ability to deconflict is
 10228                          important.
 10229                        type: string
 10230                    required:
 10231                    - status
 10232                    - type
 10233                    type: object
 10234                  type: array
 10235                failureMessage:
 10236                  type: string
 10237                failureReason:
 10238                  description: "In the event that there is a terminal problem reconciling
 10239                    the replicas, both FailureReason and FailureMessage will be set.
 10240                    FailureReason will be populated with a succinct value suitable for
 10241                    machine interpretation, while FailureMessage will contain a more
 10242                    verbose string suitable for logging and human consumption. \n These
 10243                    fields should not be set for transitive errors that a controller
 10244                    faces that are expected to be fixed automatically over time (like
 10245                    service outages), but instead indicate that something is fundamentally
 10246                    wrong with the MachineTemplate's spec or the configuration of the
 10247                    machine controller, and that manual intervention is required. Examples
 10248                    of terminal errors would be invalid combinations of settings in
 10249                    the spec, values that are unsupported by the machine controller,
 10250                    or the responsible machine controller itself being critically misconfigured.
 10251                    \n Any transient errors that occur during the reconciliation of
 10252                    Machines can be added as events to the MachineSet object and/or
 10253                    logged in the controller's output."
 10254                  type: string
 10255                fullyLabeledReplicas:
 10256                  description: The number of replicas that have labels matching the
 10257                    labels of the machine template of the MachineSet.
 10258                  format: int32
 10259                  type: integer
 10260                observedGeneration:
 10261                  description: ObservedGeneration reflects the generation of the most
 10262                    recently observed MachineSet.
 10263                  format: int64
 10264                  type: integer
 10265                readyReplicas:
 10266                  description: The number of ready replicas for this MachineSet. A machine
 10267                    is considered ready when the node has been created and is "Ready".
 10268                  format: int32
 10269                  type: integer
 10270                replicas:
 10271                  description: Replicas is the most recently observed number of replicas.
 10272                  format: int32
 10273                  type: integer
 10274                selector:
 10275                  description: 'Selector is the same as the label selector but in the
 10276                    string format to avoid introspection by clients. The string will
 10277                    be in the same format as the query-param syntax. More info about
 10278                    label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors'
 10279                  type: string
 10280              type: object
 10281          type: object
 10282      served: true
 10283      storage: false
 10284      subresources:
 10285        scale:
 10286          labelSelectorPath: .status.selector
 10287          specReplicasPath: .spec.replicas
 10288          statusReplicasPath: .status.replicas
 10289        status: {}
 10290    - additionalPrinterColumns:
 10291      - description: Cluster
 10292        jsonPath: .spec.clusterName
 10293        name: Cluster
 10294        type: string
 10295      - description: Total number of machines desired by this machineset
 10296        jsonPath: .spec.replicas
 10297        name: Desired
 10298        priority: 10
 10299        type: integer
 10300      - description: Total number of non-terminated machines targeted by this machineset
 10301        jsonPath: .status.replicas
 10302        name: Replicas
 10303        type: integer
 10304      - description: Total number of ready machines targeted by this machineset.
 10305        jsonPath: .status.readyReplicas
 10306        name: Ready
 10307        type: integer
 10308      - description: Total number of available machines (ready for at least minReadySeconds)
 10309        jsonPath: .status.availableReplicas
 10310        name: Available
 10311        type: integer
 10312      - description: Time duration since creation of MachineSet
 10313        jsonPath: .metadata.creationTimestamp
 10314        name: Age
 10315        type: date
 10316      - description: Kubernetes version associated with this MachineSet
 10317        jsonPath: .spec.template.spec.version
 10318        name: Version
 10319        type: string
 10320      name: v1beta1
 10321      schema:
 10322        openAPIV3Schema:
 10323          description: MachineSet is the Schema for the machinesets API.
 10324          properties:
 10325            apiVersion:
 10326              description: 'APIVersion defines the versioned schema of this representation
 10327                of an object. Servers should convert recognized schemas to the latest
 10328                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
 10329              type: string
 10330            kind:
 10331              description: 'Kind is a string value representing the REST resource this
 10332                object represents. Servers may infer this from the endpoint the client
 10333                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
 10334              type: string
 10335            metadata:
 10336              type: object
 10337            spec:
 10338              description: MachineSetSpec defines the desired state of MachineSet.
 10339              properties:
 10340                clusterName:
 10341                  description: ClusterName is the name of the Cluster this object belongs
 10342                    to.
 10343                  minLength: 1
 10344                  type: string
 10345                deletePolicy:
 10346                  description: DeletePolicy defines the policy used to identify nodes
 10347                    to delete when downscaling. Defaults to "Random".  Valid values
 10348                    are "Random, "Newest", "Oldest"
 10349                  enum:
 10350                  - Random
 10351                  - Newest
 10352                  - Oldest
 10353                  type: string
 10354                minReadySeconds:
 10355                  description: MinReadySeconds is the minimum number of seconds for
 10356                    which a Node for a newly created machine should be ready before
 10357                    considering the replica available. Defaults to 0 (machine will be
 10358                    considered available as soon as the Node is ready)
 10359                  format: int32
 10360                  type: integer
 10361                replicas:
 10362                  default: 1
 10363                  description: Replicas is the number of desired replicas. This is a
 10364                    pointer to distinguish between explicit zero and unspecified. Defaults
 10365                    to 1.
 10366                  format: int32
 10367                  type: integer
 10368                selector:
 10369                  description: 'Selector is a label query over machines that should
 10370                    match the replica count. Label keys and values that must match in
 10371                    order to be controlled by this MachineSet. It must match the machine
 10372                    template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
 10373                  properties:
 10374                    matchExpressions:
 10375                      description: matchExpressions is a list of label selector requirements.
 10376                        The requirements are ANDed.
 10377                      items:
 10378                        description: A label selector requirement is a selector that
 10379                          contains values, a key, and an operator that relates the key
 10380                          and values.
 10381                        properties:
 10382                          key:
 10383                            description: key is the label key that the selector applies
 10384                              to.
 10385                            type: string
 10386                          operator:
 10387                            description: operator represents a key's relationship to
 10388                              a set of values. Valid operators are In, NotIn, Exists
 10389                              and DoesNotExist.
 10390                            type: string
 10391                          values:
 10392                            description: values is an array of string values. If the
 10393                              operator is In or NotIn, the values array must be non-empty.
 10394                              If the operator is Exists or DoesNotExist, the values
 10395                              array must be empty. This array is replaced during a strategic
 10396                              merge patch.
 10397                            items:
 10398                              type: string
 10399                            type: array
 10400                        required:
 10401                        - key
 10402                        - operator
 10403                        type: object
 10404                      type: array
 10405                    matchLabels:
 10406                      additionalProperties:
 10407                        type: string
 10408                      description: matchLabels is a map of {key,value} pairs. A single
 10409                        {key,value} in the matchLabels map is equivalent to an element
 10410                        of matchExpressions, whose key field is "key", the operator
 10411                        is "In", and the values array contains only "value". The requirements
 10412                        are ANDed.
 10413                      type: object
 10414                  type: object
 10415                  x-kubernetes-map-type: atomic
 10416                template:
 10417                  description: Template is the object that describes the machine that
 10418                    will be created if insufficient replicas are detected. Object references
 10419                    to custom resources are treated as templates.
 10420                  properties:
 10421                    metadata:
 10422                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
 10423                      properties:
 10424                        annotations:
 10425                          additionalProperties:
 10426                            type: string
 10427                          description: 'Annotations is an unstructured key value map
 10428                            stored with a resource that may be set by external tools
 10429                            to store and retrieve arbitrary metadata. They are not queryable
 10430                            and should be preserved when modifying objects. More info:
 10431                            http://kubernetes.io/docs/user-guide/annotations'
 10432                          type: object
 10433                        labels:
 10434                          additionalProperties:
 10435                            type: string
 10436                          description: 'Map of string keys and values that can be used
 10437                            to organize and categorize (scope and select) objects. May
 10438                            match selectors of replication controllers and services.
 10439                            More info: http://kubernetes.io/docs/user-guide/labels'
 10440                          type: object
 10441                      type: object
 10442                    spec:
 10443                      description: 'Specification of the desired behavior of the machine.
 10444                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
 10445                      properties:
 10446                        bootstrap:
 10447                          description: Bootstrap is a reference to a local struct which
 10448                            encapsulates fields to configure the Machine’s bootstrapping
 10449                            mechanism.
 10450                          properties:
 10451                            configRef:
 10452                              description: ConfigRef is a reference to a bootstrap provider-specific
 10453                                resource that holds configuration details. The reference
 10454                                is optional to allow users/operators to specify Bootstrap.DataSecretName
 10455                                without the need of a controller.
 10456                              properties:
 10457                                apiVersion:
 10458                                  description: API version of the referent.
 10459                                  type: string
 10460                                fieldPath:
 10461                                  description: 'If referring to a piece of an object
 10462                                    instead of an entire object, this string should
 10463                                    contain a valid JSON/Go field access statement,
 10464                                    such as desiredState.manifest.containers[2]. For
 10465                                    example, if the object reference is to a container
 10466                                    within a pod, this would take on a value like: "spec.containers{name}"
 10467                                    (where "name" refers to the name of the container
 10468                                    that triggered the event) or if no container name
 10469                                    is specified "spec.containers[2]" (container with
 10470                                    index 2 in this pod). This syntax is chosen only
 10471                                    to have some well-defined way of referencing a part
 10472                                    of an object. TODO: this design is not final and
 10473                                    this field is subject to change in the future.'
 10474                                  type: string
 10475                                kind:
 10476                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
 10477                                  type: string
 10478                                name:
 10479                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
 10480                                  type: string
 10481                                namespace:
 10482                                  description: 'Namespace of the referent. More info:
 10483                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
 10484                                  type: string
 10485                                resourceVersion:
 10486                                  description: 'Specific resourceVersion to which this
 10487                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
 10488                                  type: string
 10489                                uid:
 10490                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
 10491                                  type: string
 10492                              type: object
 10493                              x-kubernetes-map-type: atomic
 10494                            dataSecretName:
 10495                              description: DataSecretName is the name of the secret
 10496                                that stores the bootstrap data script. If nil, the Machine
 10497                                should remain in the Pending state.
 10498                              type: string
 10499                          type: object
 10500                        clusterName:
 10501                          description: ClusterName is the name of the Cluster this object
 10502                            belongs to.
 10503                          minLength: 1
 10504                          type: string
 10505                        failureDomain:
 10506                          description: FailureDomain is the failure domain the machine
 10507                            will be created in. Must match a key in the FailureDomains
 10508                            map stored on the cluster object.
 10509                          type: string
 10510                        infrastructureRef:
 10511                          description: InfrastructureRef is a required reference to
 10512                            a custom resource offered by an infrastructure provider.
 10513                          properties:
 10514                            apiVersion:
 10515                              description: API version of the referent.
 10516                              type: string
 10517                            fieldPath:
 10518                              description: 'If referring to a piece of an object instead
 10519                                of an entire object, this string should contain a valid
 10520                                JSON/Go field access statement, such as desiredState.manifest.containers[2].
 10521                                For example, if the object reference is to a container
 10522                                within a pod, this would take on a value like: "spec.containers{name}"
 10523                                (where "name" refers to the name of the container that
 10524                                triggered the event) or if no container name is specified
 10525                                "spec.containers[2]" (container with index 2 in this
 10526                                pod). This syntax is chosen only to have some well-defined
 10527                                way of referencing a part of an object. TODO: this design
 10528                                is not final and this field is subject to change in
 10529                                the future.'
 10530                              type: string
 10531                            kind:
 10532                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
 10533                              type: string
 10534                            name:
 10535                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
 10536                              type: string
 10537                            namespace:
 10538                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
 10539                              type: string
 10540                            resourceVersion:
 10541                              description: 'Specific resourceVersion to which this reference
 10542                                is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
 10543                              type: string
 10544                            uid:
 10545                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
 10546                              type: string
 10547                          type: object
 10548                          x-kubernetes-map-type: atomic
 10549                        nodeDeletionTimeout:
 10550                          description: NodeDeletionTimeout defines how long the controller
 10551                            will attempt to delete the Node that the Machine hosts after
 10552                            the Machine is marked for deletion. A duration of 0 will
 10553                            retry deletion indefinitely. Defaults to 10 seconds.
 10554                          type: string
 10555                        nodeDrainTimeout:
 10556                          description: 'NodeDrainTimeout is the total amount of time
 10557                            that the controller will spend on draining a node. The default
 10558                            value is 0, meaning that the node can be drained without
 10559                            any time limitations. NOTE: NodeDrainTimeout is different
 10560                            from `kubectl drain --timeout`'
 10561                          type: string
 10562                        nodeVolumeDetachTimeout:
 10563                          description: NodeVolumeDetachTimeout is the total amount of
 10564                            time that the controller will spend on waiting for all volumes
 10565                            to be detached. The default value is 0, meaning that the
 10566                            volumes can be detached without any time limitations.
 10567                          type: string
 10568                        providerID:
 10569                          description: ProviderID is the identification ID of the machine
 10570                            provided by the provider. This field must match the provider
 10571                            ID as seen on the node object corresponding to this machine.
 10572                            This field is required by higher level consumers of cluster-api.
 10573                            Example use case is cluster autoscaler with cluster-api
 10574                            as provider. Clean-up logic in the autoscaler compares machines
 10575                            to nodes to find out machines at provider which could not
 10576                            get registered as Kubernetes nodes. With cluster-api as
 10577                            a generic out-of-tree provider for autoscaler, this field
 10578                            is required by autoscaler to be able to have a provider
 10579                            view of the list of machines. Another list of nodes is queried
 10580                            from the k8s apiserver and then a comparison is done to
 10581                            find out unregistered machines and are marked for delete.
 10582                            This field will be set by the actuators and consumed by
 10583                            higher level entities like autoscaler that will be interfacing
 10584                            with cluster-api as generic provider.
 10585                          type: string
 10586                        version:
 10587                          description: Version defines the desired Kubernetes version.
 10588                            This field is meant to be optionally used by bootstrap providers.
 10589                          type: string
 10590                      required:
 10591                      - bootstrap
 10592                      - clusterName
 10593                      - infrastructureRef
 10594                      type: object
 10595                  type: object
 10596              required:
 10597              - clusterName
 10598              - selector
 10599              type: object
 10600            status:
 10601              description: MachineSetStatus defines the observed state of MachineSet.
 10602              properties:
 10603                availableReplicas:
 10604                  description: The number of available replicas (ready for at least
 10605                    minReadySeconds) for this MachineSet.
 10606                  format: int32
 10607                  type: integer
 10608                conditions:
 10609                  description: Conditions defines current service state of the MachineSet.
 10610                  items:
 10611                    description: Condition defines an observation of a Cluster API resource
 10612                      operational state.
 10613                    properties:
 10614                      lastTransitionTime:
 10615                        description: Last time the condition transitioned from one status
 10616                          to another. This should be when the underlying condition changed.
 10617                          If that is not known, then using the time when the API field
 10618                          changed is acceptable.
 10619                        format: date-time
 10620                        type: string
 10621                      message:
 10622                        description: A human readable message indicating details about
 10623                          the transition. This field may be empty.
 10624                        type: string
 10625                      reason:
 10626                        description: The reason for the condition's last transition
 10627                          in CamelCase. The specific API may choose whether or not this
 10628                          field is considered a guaranteed API. This field may not be
 10629                          empty.
 10630                        type: string
 10631                      severity:
 10632                        description: Severity provides an explicit classification of
 10633                          Reason code, so the users or machines can immediately understand
 10634                          the current situation and act accordingly. The Severity field
 10635                          MUST be set only when Status=False.
 10636                        type: string
 10637                      status:
 10638                        description: Status of the condition, one of True, False, Unknown.
 10639                        type: string
 10640                      type:
 10641                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
 10642                          Many .condition.type values are consistent across resources
 10643                          like Available, but because arbitrary conditions can be useful
 10644                          (see .node.status.conditions), the ability to deconflict is
 10645                          important.
 10646                        type: string
 10647                    required:
 10648                    - lastTransitionTime
 10649                    - status
 10650                    - type
 10651                    type: object
 10652                  type: array
 10653                failureMessage:
 10654                  type: string
 10655                failureReason:
 10656                  description: "In the event that there is a terminal problem reconciling
 10657                    the replicas, both FailureReason and FailureMessage will be set.
 10658                    FailureReason will be populated with a succinct value suitable for
 10659                    machine interpretation, while FailureMessage will contain a more
 10660                    verbose string suitable for logging and human consumption. \n These
 10661                    fields should not be set for transitive errors that a controller
 10662                    faces that are expected to be fixed automatically over time (like
 10663                    service outages), but instead indicate that something is fundamentally
 10664                    wrong with the MachineTemplate's spec or the configuration of the
 10665                    machine controller, and that manual intervention is required. Examples
 10666                    of terminal errors would be invalid combinations of settings in
 10667                    the spec, values that are unsupported by the machine controller,
 10668                    or the responsible machine controller itself being critically misconfigured.
 10669                    \n Any transient errors that occur during the reconciliation of
 10670                    Machines can be added as events to the MachineSet object and/or
 10671                    logged in the controller's output."
 10672                  type: string
 10673                fullyLabeledReplicas:
 10674                  description: The number of replicas that have labels matching the
 10675                    labels of the machine template of the MachineSet.
 10676                  format: int32
 10677                  type: integer
 10678                observedGeneration:
 10679                  description: ObservedGeneration reflects the generation of the most
 10680                    recently observed MachineSet.
 10681                  format: int64
 10682                  type: integer
 10683                readyReplicas:
 10684                  description: The number of ready replicas for this MachineSet. A machine
 10685                    is considered ready when the node has been created and is "Ready".
 10686                  format: int32
 10687                  type: integer
 10688                replicas:
 10689                  description: Replicas is the most recently observed number of replicas.
 10690                  format: int32
 10691                  type: integer
 10692                selector:
 10693                  description: 'Selector is the same as the label selector but in the
 10694                    string format to avoid introspection by clients. The string will
 10695                    be in the same format as the query-param syntax. More info about
 10696                    label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors'
 10697                  type: string
 10698              type: object
 10699          type: object
 10700      served: true
 10701      storage: true
 10702      subresources:
 10703        scale:
 10704          labelSelectorPath: .status.selector
 10705          specReplicasPath: .spec.replicas
 10706          statusReplicasPath: .status.replicas
 10707        status: {}
 10708  ---
 10709  apiVersion: v1
 10710  kind: ServiceAccount
 10711  metadata:
 10712    labels:
 10713      cluster.x-k8s.io/provider: cluster-api
 10714    name: capi-manager
 10715    namespace: capi-system
 10716  ---
 10717  apiVersion: rbac.authorization.k8s.io/v1
 10718  kind: Role
 10719  metadata:
 10720    labels:
 10721      cluster.x-k8s.io/provider: cluster-api
 10722    name: capi-leader-election-role
 10723    namespace: capi-system
 10724  rules:
 10725  - apiGroups:
 10726    - ""
 10727    resources:
 10728    - events
 10729    verbs:
 10730    - create
 10731  - apiGroups:
 10732    - coordination.k8s.io
 10733    resources:
 10734    - leases
 10735    verbs:
 10736    - get
 10737    - list
 10738    - watch
 10739    - create
 10740    - update
 10741    - patch
 10742    - delete
 10743  ---
 10744  aggregationRule:
 10745    clusterRoleSelectors:
 10746    - matchLabels:
 10747        cluster.x-k8s.io/aggregate-to-manager: "true"
 10748  apiVersion: rbac.authorization.k8s.io/v1
 10749  kind: ClusterRole
 10750  metadata:
 10751    labels:
 10752      cluster.x-k8s.io/provider: cluster-api
 10753    name: capi-aggregated-manager-role
 10754  rules: []
 10755  ---
 10756  apiVersion: rbac.authorization.k8s.io/v1
 10757  kind: ClusterRole
 10758  metadata:
 10759    labels:
 10760      cluster.x-k8s.io/aggregate-to-manager: "true"
 10761      cluster.x-k8s.io/provider: cluster-api
 10762    name: capi-manager-role
 10763  rules:
 10764  - apiGroups:
 10765    - ""
 10766    resources:
 10767    - namespaces
 10768    verbs:
 10769    - get
 10770    - list
 10771    - watch
 10772  - apiGroups:
 10773    - addons.cluster.x-k8s.io
 10774    resources:
 10775    - '*'
 10776    verbs:
 10777    - create
 10778    - delete
 10779    - get
 10780    - list
 10781    - patch
 10782    - update
 10783    - watch
 10784  - apiGroups:
 10785    - addons.cluster.x-k8s.io
 10786    resources:
 10787    - clusterresourcesets/finalizers
 10788    - clusterresourcesets/status
 10789    verbs:
 10790    - get
 10791    - patch
 10792    - update
 10793  - apiGroups:
 10794    - apiextensions.k8s.io
 10795    resources:
 10796    - customresourcedefinitions
 10797    verbs:
 10798    - get
 10799    - list
 10800    - watch
 10801  - apiGroups:
 10802    - bootstrap.cluster.x-k8s.io
 10803    - controlplane.cluster.x-k8s.io
 10804    - infrastructure.cluster.x-k8s.io
 10805    resources:
 10806    - '*'
 10807    verbs:
 10808    - create
 10809    - delete
 10810    - get
 10811    - list
 10812    - patch
 10813    - update
 10814    - watch
 10815  - apiGroups:
 10816    - bootstrap.cluster.x-k8s.io
 10817    - infrastructure.cluster.x-k8s.io
 10818    resources:
 10819    - '*'
 10820    verbs:
 10821    - create
 10822    - delete
 10823    - get
 10824    - list
 10825    - patch
 10826    - update
 10827    - watch
 10828  - apiGroups:
 10829    - cluster.x-k8s.io
 10830    resources:
 10831    - clusterclasses
 10832    verbs:
 10833    - create
 10834    - delete
 10835    - get
 10836    - list
 10837    - patch
 10838    - update
 10839    - watch
 10840  - apiGroups:
 10841    - cluster.x-k8s.io
 10842    resources:
 10843    - clusterclasses
 10844    - clusterclasses/status
 10845    verbs:
 10846    - get
 10847    - list
 10848    - patch
 10849    - update
 10850    - watch
 10851  - apiGroups:
 10852    - cluster.x-k8s.io
 10853    resources:
 10854    - clusters
 10855    verbs:
 10856    - get
 10857    - list
 10858    - watch
 10859  - apiGroups:
 10860    - cluster.x-k8s.io
 10861    resources:
 10862    - clusters
 10863    - clusters/finalizers
 10864    - clusters/status
 10865    verbs:
 10866    - create
 10867    - delete
 10868    - get
 10869    - list
 10870    - patch
 10871    - update
 10872    - watch
 10873  - apiGroups:
 10874    - cluster.x-k8s.io
 10875    resources:
 10876    - clusters
 10877    - clusters/status
 10878    verbs:
 10879    - create
 10880    - delete
 10881    - get
 10882    - list
 10883    - patch
 10884    - update
 10885    - watch
 10886  - apiGroups:
 10887    - cluster.x-k8s.io
 10888    resources:
 10889    - machinedeployments
 10890    verbs:
 10891    - create
 10892    - delete
 10893    - get
 10894    - list
 10895    - patch
 10896    - update
 10897    - watch
 10898  - apiGroups:
 10899    - cluster.x-k8s.io
 10900    resources:
 10901    - machinedeployments
 10902    - machinedeployments/finalizers
 10903    verbs:
 10904    - get
 10905    - list
 10906    - patch
 10907    - update
 10908    - watch
 10909  - apiGroups:
 10910    - cluster.x-k8s.io
 10911    resources:
 10912    - machinedeployments
 10913    - machinedeployments/finalizers
 10914    - machinedeployments/status
 10915    verbs:
 10916    - create
 10917    - delete
 10918    - get
 10919    - list
 10920    - patch
 10921    - update
 10922    - watch
 10923  - apiGroups:
 10924    - cluster.x-k8s.io
 10925    resources:
 10926    - machinehealthchecks
 10927    verbs:
 10928    - create
 10929    - delete
 10930    - get
 10931    - list
 10932    - patch
 10933    - update
 10934    - watch
 10935  - apiGroups:
 10936    - cluster.x-k8s.io
 10937    resources:
 10938    - machinehealthchecks
 10939    - machinehealthchecks/finalizers
 10940    - machinehealthchecks/status
 10941    verbs:
 10942    - get
 10943    - list
 10944    - patch
 10945    - update
 10946    - watch
 10947  - apiGroups:
 10948    - cluster.x-k8s.io
 10949    resources:
 10950    - machinepools
 10951    - machinepools/finalizers
 10952    - machinepools/status
 10953    verbs:
 10954    - create
 10955    - delete
 10956    - get
 10957    - list
 10958    - patch
 10959    - update
 10960    - watch
 10961  - apiGroups:
 10962    - cluster.x-k8s.io
 10963    resources:
 10964    - machines
 10965    - machines/finalizers
 10966    - machines/status
 10967    verbs:
 10968    - create
 10969    - delete
 10970    - get
 10971    - list
 10972    - patch
 10973    - update
 10974    - watch
 10975  - apiGroups:
 10976    - cluster.x-k8s.io
 10977    resources:
 10978    - machines
 10979    - machines/status
 10980    verbs:
 10981    - delete
 10982    - get
 10983    - list
 10984    - watch
 10985  - apiGroups:
 10986    - cluster.x-k8s.io
 10987    resources:
 10988    - machinesets
 10989    verbs:
 10990    - get
 10991    - list
 10992    - watch
 10993  - apiGroups:
 10994    - cluster.x-k8s.io
 10995    resources:
 10996    - machinesets
 10997    - machinesets/finalizers
 10998    verbs:
 10999    - get
 11000    - list
 11001    - patch
 11002    - update
 11003    - watch
 11004  - apiGroups:
 11005    - cluster.x-k8s.io
 11006    resources:
 11007    - machinesets
 11008    - machinesets/finalizers
 11009    - machinesets/status
 11010    verbs:
 11011    - create
 11012    - delete
 11013    - get
 11014    - list
 11015    - patch
 11016    - update
 11017    - watch
 11018  - apiGroups:
 11019    - ""
 11020    resources:
 11021    - configmaps
 11022    verbs:
 11023    - get
 11024    - list
 11025    - patch
 11026    - watch
 11027  - apiGroups:
 11028    - ""
 11029    resources:
 11030    - events
 11031    verbs:
 11032    - create
 11033    - get
 11034    - list
 11035    - patch
 11036    - watch
 11037  - apiGroups:
 11038    - ""
 11039    resources:
 11040    - nodes
 11041    verbs:
 11042    - create
 11043    - delete
 11044    - get
 11045    - list
 11046    - patch
 11047    - update
 11048    - watch
 11049  - apiGroups:
 11050    - ""
 11051    resources:
 11052    - secrets
 11053    verbs:
 11054    - create
 11055    - delete
 11056    - get
 11057    - list
 11058    - patch
 11059    - watch
 11060  - apiGroups:
 11061    - ipam.cluster.x-k8s.io
 11062    resources:
 11063    - ipaddressclaims
 11064    verbs:
 11065    - get
 11066    - list
 11067    - watch
 11068  - apiGroups:
 11069    - runtime.cluster.x-k8s.io
 11070    resources:
 11071    - extensionconfigs
 11072    - extensionconfigs/status
 11073    verbs:
 11074    - get
 11075    - list
 11076    - patch
 11077    - update
 11078    - watch
 11079  ---
 11080  apiVersion: rbac.authorization.k8s.io/v1
 11081  kind: RoleBinding
 11082  metadata:
 11083    labels:
 11084      cluster.x-k8s.io/provider: cluster-api
 11085    name: capi-leader-election-rolebinding
 11086    namespace: capi-system
 11087  roleRef:
 11088    apiGroup: rbac.authorization.k8s.io
 11089    kind: Role
 11090    name: capi-leader-election-role
 11091  subjects:
 11092  - kind: ServiceAccount
 11093    name: capi-manager
 11094    namespace: capi-system
 11095  ---
 11096  apiVersion: rbac.authorization.k8s.io/v1
 11097  kind: ClusterRoleBinding
 11098  metadata:
 11099    labels:
 11100      cluster.x-k8s.io/provider: cluster-api
 11101    name: capi-manager-rolebinding
 11102  roleRef:
 11103    apiGroup: rbac.authorization.k8s.io
 11104    kind: ClusterRole
 11105    name: capi-aggregated-manager-role
 11106  subjects:
 11107  - kind: ServiceAccount
 11108    name: capi-manager
 11109    namespace: capi-system
 11110  ---
 11111  apiVersion: v1
 11112  kind: Service
 11113  metadata:
 11114    labels:
 11115      cluster.x-k8s.io/provider: cluster-api
 11116    name: capi-webhook-service
 11117    namespace: capi-system
 11118  spec:
 11119    ports:
 11120    - port: 443
 11121      targetPort: webhook-server
 11122    selector:
 11123      cluster.x-k8s.io/provider: cluster-api
 11124  ---
 11125  apiVersion: apps/v1
 11126  kind: Deployment
 11127  metadata:
 11128    labels:
 11129      cluster.x-k8s.io/provider: cluster-api
 11130      control-plane: controller-manager
 11131    name: capi-controller-manager
 11132    namespace: capi-system
 11133  spec:
 11134    replicas: 1
 11135    selector:
 11136      matchLabels:
 11137        cluster.x-k8s.io/provider: cluster-api
 11138        control-plane: controller-manager
 11139    template:
 11140      metadata:
 11141        labels:
 11142          cluster.x-k8s.io/provider: cluster-api
 11143          control-plane: controller-manager
 11144      spec:
 11145        containers:
 11146        - args:
 11147          - --leader-elect
 11148          - --metrics-bind-addr=localhost:8080
 11149          - --feature-gates=MachinePool=${EXP_MACHINE_POOL:=false},ClusterResourceSet=${EXP_CLUSTER_RESOURCE_SET:=false},ClusterTopology=${CLUSTER_TOPOLOGY:=false},RuntimeSDK=${EXP_RUNTIME_SDK:=false},MachineSetPreflightChecks=${EXP_MACHINE_SET_PREFLIGHT_CHECKS:=false}
 11150          command:
 11151          - /manager
 11152          env:
 11153          - name: POD_NAMESPACE
 11154            valueFrom:
 11155              fieldRef:
 11156                fieldPath: metadata.namespace
 11157          - name: POD_NAME
 11158            valueFrom:
 11159              fieldRef:
 11160                fieldPath: metadata.name
 11161          - name: POD_UID
 11162            valueFrom:
 11163              fieldRef:
 11164                fieldPath: metadata.uid
 11165          image: ghcr.io/verrazzano/cluster-api-controller:v1.5.0-20230928052211-8b35f229e
 11166          imagePullPolicy: Always
 11167          livenessProbe:
 11168            httpGet:
 11169              path: /healthz
 11170              port: healthz
 11171          name: manager
 11172          ports:
 11173          - containerPort: 9443
 11174            name: webhook-server
 11175            protocol: TCP
 11176          - containerPort: 9440
 11177            name: healthz
 11178            protocol: TCP
 11179          readinessProbe:
 11180            httpGet:
 11181              path: /readyz
 11182              port: healthz
 11183          securityContext:
 11184            allowPrivilegeEscalation: false
 11185            capabilities:
 11186              drop:
 11187              - ALL
 11188            privileged: false
 11189            runAsGroup: 65532
 11190            runAsUser: 1000
 11191          volumeMounts:
 11192          - mountPath: /tmp/k8s-webhook-server/serving-certs
 11193            name: cert
 11194            readOnly: true
 11195        securityContext:
 11196          runAsNonRoot: true
 11197          seccompProfile:
 11198            type: RuntimeDefault
 11199        serviceAccountName: capi-manager
 11200        terminationGracePeriodSeconds: 10
 11201        tolerations:
 11202        - effect: NoSchedule
 11203          key: node-role.kubernetes.io/master
 11204        - effect: NoSchedule
 11205          key: node-role.kubernetes.io/control-plane
 11206        volumes:
 11207        - name: cert
 11208          secret:
 11209            secretName: capi-webhook-service-cert
 11210  ---
 11211  apiVersion: cert-manager.io/v1
 11212  kind: Certificate
 11213  metadata:
 11214    labels:
 11215      cluster.x-k8s.io/provider: cluster-api
 11216    name: capi-serving-cert
 11217    namespace: capi-system
 11218  spec:
 11219    dnsNames:
 11220    - capi-webhook-service.capi-system.svc
 11221    - capi-webhook-service.capi-system.svc.cluster.local
 11222    issuerRef:
 11223      kind: Issuer
 11224      name: capi-selfsigned-issuer
 11225    secretName: capi-webhook-service-cert
 11226    subject:
 11227      organizations:
 11228      - k8s-sig-cluster-lifecycle
 11229  ---
 11230  apiVersion: cert-manager.io/v1
 11231  kind: Issuer
 11232  metadata:
 11233    labels:
 11234      cluster.x-k8s.io/provider: cluster-api
 11235    name: capi-selfsigned-issuer
 11236    namespace: capi-system
 11237  spec:
 11238    selfSigned: {}
 11239  ---
 11240  apiVersion: admissionregistration.k8s.io/v1
 11241  kind: MutatingWebhookConfiguration
 11242  metadata:
 11243    annotations:
 11244      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
 11245    labels:
 11246      cluster.x-k8s.io/provider: cluster-api
 11247    name: capi-mutating-webhook-configuration
 11248  webhooks:
 11249  - admissionReviewVersions:
 11250    - v1
 11251    - v1beta1
 11252    clientConfig:
 11253      service:
 11254        name: capi-webhook-service
 11255        namespace: capi-system
 11256        path: /mutate-cluster-x-k8s-io-v1beta1-machine
 11257    failurePolicy: Fail
 11258    matchPolicy: Equivalent
 11259    name: default.machine.cluster.x-k8s.io
 11260    rules:
 11261    - apiGroups:
 11262      - cluster.x-k8s.io
 11263      apiVersions:
 11264      - v1beta1
 11265      operations:
 11266      - CREATE
 11267      - UPDATE
 11268      resources:
 11269      - machines
 11270    sideEffects: None
 11271  - admissionReviewVersions:
 11272    - v1
 11273    - v1beta1
 11274    clientConfig:
 11275      service:
 11276        name: capi-webhook-service
 11277        namespace: capi-system
 11278        path: /mutate-cluster-x-k8s-io-v1beta1-machinedeployment
 11279    failurePolicy: Fail
 11280    matchPolicy: Equivalent
 11281    name: default.machinedeployment.cluster.x-k8s.io
 11282    rules:
 11283    - apiGroups:
 11284      - cluster.x-k8s.io
 11285      apiVersions:
 11286      - v1beta1
 11287      operations:
 11288      - CREATE
 11289      - UPDATE
 11290      resources:
 11291      - machinedeployments
 11292    sideEffects: None
 11293  - admissionReviewVersions:
 11294    - v1
 11295    - v1beta1
 11296    clientConfig:
 11297      service:
 11298        name: capi-webhook-service
 11299        namespace: capi-system
 11300        path: /mutate-cluster-x-k8s-io-v1beta1-machinehealthcheck
 11301    failurePolicy: Fail
 11302    matchPolicy: Equivalent
 11303    name: default.machinehealthcheck.cluster.x-k8s.io
 11304    rules:
 11305    - apiGroups:
 11306      - cluster.x-k8s.io
 11307      apiVersions:
 11308      - v1beta1
 11309      operations:
 11310      - CREATE
 11311      - UPDATE
 11312      resources:
 11313      - machinehealthchecks
 11314    sideEffects: None
 11315  - admissionReviewVersions:
 11316    - v1
 11317    - v1beta1
 11318    clientConfig:
 11319      service:
 11320        name: capi-webhook-service
 11321        namespace: capi-system
 11322        path: /mutate-cluster-x-k8s-io-v1beta1-machineset
 11323    failurePolicy: Fail
 11324    matchPolicy: Equivalent
 11325    name: default.machineset.cluster.x-k8s.io
 11326    rules:
 11327    - apiGroups:
 11328      - cluster.x-k8s.io
 11329      apiVersions:
 11330      - v1beta1
 11331      operations:
 11332      - CREATE
 11333      - UPDATE
 11334      resources:
 11335      - machinesets
 11336    sideEffects: None
 11337  - admissionReviewVersions:
 11338    - v1
 11339    - v1beta1
 11340    clientConfig:
 11341      service:
 11342        name: capi-webhook-service
 11343        namespace: capi-system
 11344        path: /mutate-cluster-x-k8s-io-v1beta1-cluster
 11345    failurePolicy: Fail
 11346    matchPolicy: Equivalent
 11347    name: default.cluster.cluster.x-k8s.io
 11348    rules:
 11349    - apiGroups:
 11350      - cluster.x-k8s.io
 11351      apiVersions:
 11352      - v1beta1
 11353      operations:
 11354      - CREATE
 11355      - UPDATE
 11356      resources:
 11357      - clusters
 11358    sideEffects: None
 11359  - admissionReviewVersions:
 11360    - v1
 11361    - v1beta1
 11362    clientConfig:
 11363      service:
 11364        name: capi-webhook-service
 11365        namespace: capi-system
 11366        path: /mutate-cluster-x-k8s-io-v1beta1-clusterclass
 11367    failurePolicy: Fail
 11368    matchPolicy: Equivalent
 11369    name: default.clusterclass.cluster.x-k8s.io
 11370    rules:
 11371    - apiGroups:
 11372      - cluster.x-k8s.io
 11373      apiVersions:
 11374      - v1beta1
 11375      operations:
 11376      - CREATE
 11377      - UPDATE
 11378      resources:
 11379      - clusterclasses
 11380    sideEffects: None
 11381  - admissionReviewVersions:
 11382    - v1
 11383    - v1beta1
 11384    clientConfig:
 11385      service:
 11386        name: capi-webhook-service
 11387        namespace: capi-system
 11388        path: /mutate-runtime-cluster-x-k8s-io-v1alpha1-extensionconfig
 11389    failurePolicy: Fail
 11390    matchPolicy: Equivalent
 11391    name: default.extensionconfig.runtime.addons.cluster.x-k8s.io
 11392    rules:
 11393    - apiGroups:
 11394      - runtime.cluster.x-k8s.io
 11395      apiVersions:
 11396      - v1alpha1
 11397      operations:
 11398      - CREATE
 11399      - UPDATE
 11400      resources:
 11401      - extensionconfigs
 11402    sideEffects: None
 11403  - admissionReviewVersions:
 11404    - v1
 11405    - v1beta1
 11406    clientConfig:
 11407      service:
 11408        name: capi-webhook-service
 11409        namespace: capi-system
 11410        path: /mutate-cluster-x-k8s-io-v1beta1-machinepool
 11411    failurePolicy: Fail
 11412    matchPolicy: Equivalent
 11413    name: default.machinepool.cluster.x-k8s.io
 11414    rules:
 11415    - apiGroups:
 11416      - cluster.x-k8s.io
 11417      apiVersions:
 11418      - v1beta1
 11419      operations:
 11420      - CREATE
 11421      - UPDATE
 11422      resources:
 11423      - machinepools
 11424    sideEffects: None
 11425  - admissionReviewVersions:
 11426    - v1
 11427    - v1beta1
 11428    clientConfig:
 11429      service:
 11430        name: capi-webhook-service
 11431        namespace: capi-system
 11432        path: /mutate-addons-cluster-x-k8s-io-v1beta1-clusterresourceset
 11433    failurePolicy: Fail
 11434    matchPolicy: Equivalent
 11435    name: default.clusterresourceset.addons.cluster.x-k8s.io
 11436    rules:
 11437    - apiGroups:
 11438      - addons.cluster.x-k8s.io
 11439      apiVersions:
 11440      - v1beta1
 11441      operations:
 11442      - CREATE
 11443      - UPDATE
 11444      resources:
 11445      - clusterresourcesets
 11446    sideEffects: None
 11447  ---
 11448  apiVersion: admissionregistration.k8s.io/v1
 11449  kind: ValidatingWebhookConfiguration
 11450  metadata:
 11451    annotations:
 11452      cert-manager.io/inject-ca-from: capi-system/capi-serving-cert
 11453    labels:
 11454      cluster.x-k8s.io/provider: cluster-api
 11455    name: capi-validating-webhook-configuration
 11456  webhooks:
 11457  - admissionReviewVersions:
 11458    - v1
 11459    - v1beta1
 11460    clientConfig:
 11461      service:
 11462        name: capi-webhook-service
 11463        namespace: capi-system
 11464        path: /validate-cluster-x-k8s-io-v1beta1-machine
 11465    failurePolicy: Fail
 11466    matchPolicy: Equivalent
 11467    name: validation.machine.cluster.x-k8s.io
 11468    rules:
 11469    - apiGroups:
 11470      - cluster.x-k8s.io
 11471      apiVersions:
 11472      - v1beta1
 11473      operations:
 11474      - CREATE
 11475      - UPDATE
 11476      resources:
 11477      - machines
 11478    sideEffects: None
 11479  - admissionReviewVersions:
 11480    - v1
 11481    - v1beta1
 11482    clientConfig:
 11483      service:
 11484        name: capi-webhook-service
 11485        namespace: capi-system
 11486        path: /validate-cluster-x-k8s-io-v1beta1-machinedeployment
 11487    failurePolicy: Fail
 11488    matchPolicy: Equivalent
 11489    name: validation.machinedeployment.cluster.x-k8s.io
 11490    rules:
 11491    - apiGroups:
 11492      - cluster.x-k8s.io
 11493      apiVersions:
 11494      - v1beta1
 11495      operations:
 11496      - CREATE
 11497      - UPDATE
 11498      resources:
 11499      - machinedeployments
 11500    sideEffects: None
 11501  - admissionReviewVersions:
 11502    - v1
 11503    - v1beta1
 11504    clientConfig:
 11505      service:
 11506        name: capi-webhook-service
 11507        namespace: capi-system
 11508        path: /validate-cluster-x-k8s-io-v1beta1-machinehealthcheck
 11509    failurePolicy: Fail
 11510    matchPolicy: Equivalent
 11511    name: validation.machinehealthcheck.cluster.x-k8s.io
 11512    rules:
 11513    - apiGroups:
 11514      - cluster.x-k8s.io
 11515      apiVersions:
 11516      - v1beta1
 11517      operations:
 11518      - CREATE
 11519      - UPDATE
 11520      resources:
 11521      - machinehealthchecks
 11522    sideEffects: None
 11523  - admissionReviewVersions:
 11524    - v1
 11525    - v1beta1
 11526    clientConfig:
 11527      service:
 11528        name: capi-webhook-service
 11529        namespace: capi-system
 11530        path: /validate-cluster-x-k8s-io-v1beta1-machineset
 11531    failurePolicy: Fail
 11532    matchPolicy: Equivalent
 11533    name: validation.machineset.cluster.x-k8s.io
 11534    rules:
 11535    - apiGroups:
 11536      - cluster.x-k8s.io
 11537      apiVersions:
 11538      - v1beta1
 11539      operations:
 11540      - CREATE
 11541      - UPDATE
 11542      resources:
 11543      - machinesets
 11544    sideEffects: None
 11545  - admissionReviewVersions:
 11546    - v1
 11547    - v1beta1
 11548    clientConfig:
 11549      service:
 11550        name: capi-webhook-service
 11551        namespace: capi-system
 11552        path: /validate-cluster-x-k8s-io-v1beta1-cluster
 11553    failurePolicy: Fail
 11554    matchPolicy: Equivalent
 11555    name: validation.cluster.cluster.x-k8s.io
 11556    rules:
 11557    - apiGroups:
 11558      - cluster.x-k8s.io
 11559      apiVersions:
 11560      - v1beta1
 11561      operations:
 11562      - CREATE
 11563      - UPDATE
 11564      - DELETE
 11565      resources:
 11566      - clusters
 11567    sideEffects: None
 11568  - admissionReviewVersions:
 11569    - v1
 11570    - v1beta1
 11571    clientConfig:
 11572      service:
 11573        name: capi-webhook-service
 11574        namespace: capi-system
 11575        path: /validate-cluster-x-k8s-io-v1beta1-clusterclass
 11576    failurePolicy: Fail
 11577    matchPolicy: Equivalent
 11578    name: validation.clusterclass.cluster.x-k8s.io
 11579    rules:
 11580    - apiGroups:
 11581      - cluster.x-k8s.io
 11582      apiVersions:
 11583      - v1beta1
 11584      operations:
 11585      - CREATE
 11586      - UPDATE
 11587      - DELETE
 11588      resources:
 11589      - clusterclasses
 11590    sideEffects: None
 11591  - admissionReviewVersions:
 11592    - v1
 11593    - v1beta1
 11594    clientConfig:
 11595      service:
 11596        name: capi-webhook-service
 11597        namespace: capi-system
 11598        path: /validate-runtime-cluster-x-k8s-io-v1alpha1-extensionconfig
 11599    failurePolicy: Fail
 11600    matchPolicy: Equivalent
 11601    name: validation.extensionconfig.runtime.cluster.x-k8s.io
 11602    rules:
 11603    - apiGroups:
 11604      - runtime.cluster.x-k8s.io
 11605      apiVersions:
 11606      - v1alpha1
 11607      operations:
 11608      - CREATE
 11609      - UPDATE
 11610      resources:
 11611      - extensionconfigs
 11612    sideEffects: None
 11613  - admissionReviewVersions:
 11614    - v1
 11615    - v1beta1
 11616    clientConfig:
 11617      service:
 11618        name: capi-webhook-service
 11619        namespace: capi-system
 11620        path: /validate-cluster-x-k8s-io-v1beta1-machinepool
 11621    failurePolicy: Fail
 11622    matchPolicy: Equivalent
 11623    name: validation.machinepool.cluster.x-k8s.io
 11624    rules:
 11625    - apiGroups:
 11626      - cluster.x-k8s.io
 11627      apiVersions:
 11628      - v1beta1
 11629      operations:
 11630      - CREATE
 11631      - UPDATE
 11632      resources:
 11633      - machinepools
 11634    sideEffects: None
 11635  - admissionReviewVersions:
 11636    - v1
 11637    - v1beta1
 11638    clientConfig:
 11639      service:
 11640        name: capi-webhook-service
 11641        namespace: capi-system
 11642        path: /validate-addons-cluster-x-k8s-io-v1beta1-clusterresourceset
 11643    failurePolicy: Fail
 11644    matchPolicy: Equivalent
 11645    name: validation.clusterresourceset.addons.cluster.x-k8s.io
 11646    rules:
 11647    - apiGroups:
 11648      - addons.cluster.x-k8s.io
 11649      apiVersions:
 11650      - v1beta1
 11651      operations:
 11652      - CREATE
 11653      - UPDATE
 11654      resources:
 11655      - clusterresourcesets
 11656    sideEffects: None
 11657  - admissionReviewVersions:
 11658    - v1
 11659    - v1beta1
 11660    clientConfig:
 11661      service:
 11662        name: capi-webhook-service
 11663        namespace: capi-system
 11664        path: /validate-addons-cluster-x-k8s-io-v1beta1-clusterresourcesetbinding
 11665    failurePolicy: Fail
 11666    matchPolicy: Equivalent
 11667    name: validation.clusterresourcesetbinding.addons.cluster.x-k8s.io
 11668    rules:
 11669    - apiGroups:
 11670      - addons.cluster.x-k8s.io
 11671      apiVersions:
 11672      - v1beta1
 11673      operations:
 11674      - CREATE
 11675      - UPDATE
 11676      resources:
 11677      - clusterresourcesetbindings
 11678    sideEffects: None
 11679  - admissionReviewVersions:
 11680    - v1
 11681    - v1beta1
 11682    clientConfig:
 11683      service:
 11684        name: capi-webhook-service
 11685        namespace: capi-system
 11686        path: /validate-ipam-cluster-x-k8s-io-v1alpha1-ipaddress
 11687    failurePolicy: Fail
 11688    matchPolicy: Equivalent
 11689    name: validation.ipaddress.ipam.cluster.x-k8s.io
 11690    rules:
 11691    - apiGroups:
 11692      - ipam.cluster.x-k8s.io
 11693      apiVersions:
 11694      - v1alpha1
 11695      operations:
 11696      - CREATE
 11697      - UPDATE
 11698      - DELETE
 11699      resources:
 11700      - ipaddresses
 11701    sideEffects: None
 11702  - admissionReviewVersions:
 11703    - v1
 11704    - v1beta1
 11705    clientConfig:
 11706      service:
 11707        name: capi-webhook-service
 11708        namespace: capi-system
 11709        path: /validate-ipam-cluster-x-k8s-io-v1alpha1-ipaddressclaim
 11710    failurePolicy: Fail
 11711    matchPolicy: Equivalent
 11712    name: validation.ipaddressclaim.ipam.cluster.x-k8s.io
 11713    rules:
 11714    - apiGroups:
 11715      - ipam.cluster.x-k8s.io
 11716      apiVersions:
 11717      - v1alpha1
 11718      operations:
 11719      - CREATE
 11720      - UPDATE
 11721      - DELETE
 11722      resources:
 11723      - ipaddressclaims
 11724    sideEffects: None