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