sigs.k8s.io/cluster-api@v1.7.1/config/crd/bases/cluster.x-k8s.io_clusters.yaml (about)

     1  ---
     2  apiVersion: apiextensions.k8s.io/v1
     3  kind: CustomResourceDefinition
     4  metadata:
     5    annotations:
     6      controller-gen.kubebuilder.io/version: v0.14.0
     7    name: clusters.cluster.x-k8s.io
     8  spec:
     9    group: cluster.x-k8s.io
    10    names:
    11      categories:
    12      - cluster-api
    13      kind: Cluster
    14      listKind: ClusterList
    15      plural: clusters
    16      shortNames:
    17      - cl
    18      singular: cluster
    19    scope: Namespaced
    20    versions:
    21    - additionalPrinterColumns:
    22      - description: Cluster status such as Pending/Provisioning/Provisioned/Deleting/Failed
    23        jsonPath: .status.phase
    24        name: Phase
    25        type: string
    26      deprecated: true
    27      name: v1alpha3
    28      schema:
    29        openAPIV3Schema:
    30          description: Cluster is the Schema for the clusters API.
    31          properties:
    32            apiVersion:
    33              description: |-
    34                APIVersion defines the versioned schema of this representation of an object.
    35                Servers should convert recognized schemas to the latest internal value, and
    36                may reject unrecognized values.
    37                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    38              type: string
    39            kind:
    40              description: |-
    41                Kind is a string value representing the REST resource this object represents.
    42                Servers may infer this from the endpoint the client submits requests to.
    43                Cannot be updated.
    44                In CamelCase.
    45                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    46              type: string
    47            metadata:
    48              type: object
    49            spec:
    50              description: ClusterSpec defines the desired state of Cluster.
    51              properties:
    52                clusterNetwork:
    53                  description: Cluster network configuration.
    54                  properties:
    55                    apiServerPort:
    56                      description: |-
    57                        APIServerPort specifies the port the API Server should bind to.
    58                        Defaults to 6443.
    59                      format: int32
    60                      type: integer
    61                    pods:
    62                      description: The network ranges from which Pod networks are allocated.
    63                      properties:
    64                        cidrBlocks:
    65                          items:
    66                            type: string
    67                          type: array
    68                      required:
    69                      - cidrBlocks
    70                      type: object
    71                    serviceDomain:
    72                      description: Domain name for services.
    73                      type: string
    74                    services:
    75                      description: The network ranges from which service VIPs are allocated.
    76                      properties:
    77                        cidrBlocks:
    78                          items:
    79                            type: string
    80                          type: array
    81                      required:
    82                      - cidrBlocks
    83                      type: object
    84                  type: object
    85                controlPlaneEndpoint:
    86                  description: ControlPlaneEndpoint represents the endpoint used to
    87                    communicate with the control plane.
    88                  properties:
    89                    host:
    90                      description: The hostname on which the API server is serving.
    91                      type: string
    92                    port:
    93                      description: The port on which the API server is serving.
    94                      format: int32
    95                      type: integer
    96                  required:
    97                  - host
    98                  - port
    99                  type: object
   100                controlPlaneRef:
   101                  description: |-
   102                    ControlPlaneRef is an optional reference to a provider-specific resource that holds
   103                    the details for provisioning the Control Plane for a Cluster.
   104                  properties:
   105                    apiVersion:
   106                      description: API version of the referent.
   107                      type: string
   108                    fieldPath:
   109                      description: |-
   110                        If referring to a piece of an object instead of an entire object, this string
   111                        should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   112                        For example, if the object reference is to a container within a pod, this would take on a value like:
   113                        "spec.containers{name}" (where "name" refers to the name of the container that triggered
   114                        the event) or if no container name is specified "spec.containers[2]" (container with
   115                        index 2 in this pod). This syntax is chosen only to have some well-defined way of
   116                        referencing a part of an object.
   117                        TODO: this design is not final and this field is subject to change in the future.
   118                      type: string
   119                    kind:
   120                      description: |-
   121                        Kind of the referent.
   122                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   123                      type: string
   124                    name:
   125                      description: |-
   126                        Name of the referent.
   127                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   128                      type: string
   129                    namespace:
   130                      description: |-
   131                        Namespace of the referent.
   132                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   133                      type: string
   134                    resourceVersion:
   135                      description: |-
   136                        Specific resourceVersion to which this reference is made, if any.
   137                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   138                      type: string
   139                    uid:
   140                      description: |-
   141                        UID of the referent.
   142                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   143                      type: string
   144                  type: object
   145                  x-kubernetes-map-type: atomic
   146                infrastructureRef:
   147                  description: |-
   148                    InfrastructureRef is a reference to a provider-specific resource that holds the details
   149                    for provisioning infrastructure for a cluster in said provider.
   150                  properties:
   151                    apiVersion:
   152                      description: API version of the referent.
   153                      type: string
   154                    fieldPath:
   155                      description: |-
   156                        If referring to a piece of an object instead of an entire object, this string
   157                        should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   158                        For example, if the object reference is to a container within a pod, this would take on a value like:
   159                        "spec.containers{name}" (where "name" refers to the name of the container that triggered
   160                        the event) or if no container name is specified "spec.containers[2]" (container with
   161                        index 2 in this pod). This syntax is chosen only to have some well-defined way of
   162                        referencing a part of an object.
   163                        TODO: this design is not final and this field is subject to change in the future.
   164                      type: string
   165                    kind:
   166                      description: |-
   167                        Kind of the referent.
   168                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   169                      type: string
   170                    name:
   171                      description: |-
   172                        Name of the referent.
   173                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   174                      type: string
   175                    namespace:
   176                      description: |-
   177                        Namespace of the referent.
   178                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   179                      type: string
   180                    resourceVersion:
   181                      description: |-
   182                        Specific resourceVersion to which this reference is made, if any.
   183                        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: |-
   187                        UID of the referent.
   188                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   189                      type: string
   190                  type: object
   191                  x-kubernetes-map-type: atomic
   192                paused:
   193                  description: Paused can be used to prevent controllers from processing
   194                    the Cluster and all its associated objects.
   195                  type: boolean
   196              type: object
   197            status:
   198              description: ClusterStatus defines the observed state of Cluster.
   199              properties:
   200                conditions:
   201                  description: Conditions defines current service state of the cluster.
   202                  items:
   203                    description: Condition defines an observation of a Cluster API resource
   204                      operational state.
   205                    properties:
   206                      lastTransitionTime:
   207                        description: |-
   208                          Last time the condition transitioned from one status to another.
   209                          This should be when the underlying condition changed. If that is not known, then using the time when
   210                          the API field changed is acceptable.
   211                        format: date-time
   212                        type: string
   213                      message:
   214                        description: |-
   215                          A human readable message indicating details about the transition.
   216                          This field may be empty.
   217                        type: string
   218                      reason:
   219                        description: |-
   220                          The reason for the condition's last transition in CamelCase.
   221                          The specific API may choose whether or not this field is considered a guaranteed API.
   222                          This field may not be empty.
   223                        type: string
   224                      severity:
   225                        description: |-
   226                          Severity provides an explicit classification of Reason code, so the users or machines can immediately
   227                          understand the current situation and act accordingly.
   228                          The Severity field MUST be set only when Status=False.
   229                        type: string
   230                      status:
   231                        description: Status of the condition, one of True, False, Unknown.
   232                        type: string
   233                      type:
   234                        description: |-
   235                          Type of condition in CamelCase or in foo.example.com/CamelCase.
   236                          Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
   237                          can be useful (see .node.status.conditions), the ability to deconflict is important.
   238                        type: string
   239                    required:
   240                    - status
   241                    - type
   242                    type: object
   243                  type: array
   244                controlPlaneInitialized:
   245                  description: ControlPlaneInitialized defines if the control plane
   246                    has been initialized.
   247                  type: boolean
   248                controlPlaneReady:
   249                  description: ControlPlaneReady defines if the control plane is ready.
   250                  type: boolean
   251                failureDomains:
   252                  additionalProperties:
   253                    description: |-
   254                      FailureDomainSpec is the Schema for Cluster API failure domains.
   255                      It allows controllers to understand how many failure domains a cluster can optionally span across.
   256                    properties:
   257                      attributes:
   258                        additionalProperties:
   259                          type: string
   260                        description: Attributes is a free form map of attributes an
   261                          infrastructure provider might use or require.
   262                        type: object
   263                      controlPlane:
   264                        description: ControlPlane determines if this failure domain
   265                          is suitable for use by control plane machines.
   266                        type: boolean
   267                    type: object
   268                  description: FailureDomains is a slice of failure domain objects synced
   269                    from the infrastructure provider.
   270                  type: object
   271                failureMessage:
   272                  description: |-
   273                    FailureMessage indicates that there is a fatal problem reconciling the
   274                    state, and will be set to a descriptive error message.
   275                  type: string
   276                failureReason:
   277                  description: |-
   278                    FailureReason indicates that there is a fatal problem reconciling the
   279                    state, and will be set to a token value suitable for
   280                    programmatic interpretation.
   281                  type: string
   282                infrastructureReady:
   283                  description: InfrastructureReady is the state of the infrastructure
   284                    provider.
   285                  type: boolean
   286                observedGeneration:
   287                  description: ObservedGeneration is the latest generation observed
   288                    by the controller.
   289                  format: int64
   290                  type: integer
   291                phase:
   292                  description: |-
   293                    Phase represents the current phase of cluster actuation.
   294                    E.g. Pending, Running, Terminating, Failed etc.
   295                  type: string
   296              type: object
   297          type: object
   298      served: false
   299      storage: false
   300      subresources:
   301        status: {}
   302    - additionalPrinterColumns:
   303      - description: Time duration since creation of Cluster
   304        jsonPath: .metadata.creationTimestamp
   305        name: Age
   306        type: date
   307      - description: Cluster status such as Pending/Provisioning/Provisioned/Deleting/Failed
   308        jsonPath: .status.phase
   309        name: Phase
   310        type: string
   311      deprecated: true
   312      name: v1alpha4
   313      schema:
   314        openAPIV3Schema:
   315          description: |-
   316            Cluster is the Schema for the clusters API.
   317  
   318  
   319            Deprecated: This type will be removed in one of the next releases.
   320          properties:
   321            apiVersion:
   322              description: |-
   323                APIVersion defines the versioned schema of this representation of an object.
   324                Servers should convert recognized schemas to the latest internal value, and
   325                may reject unrecognized values.
   326                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
   327              type: string
   328            kind:
   329              description: |-
   330                Kind is a string value representing the REST resource this object represents.
   331                Servers may infer this from the endpoint the client submits requests to.
   332                Cannot be updated.
   333                In CamelCase.
   334                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   335              type: string
   336            metadata:
   337              type: object
   338            spec:
   339              description: ClusterSpec defines the desired state of Cluster.
   340              properties:
   341                clusterNetwork:
   342                  description: Cluster network configuration.
   343                  properties:
   344                    apiServerPort:
   345                      description: |-
   346                        APIServerPort specifies the port the API Server should bind to.
   347                        Defaults to 6443.
   348                      format: int32
   349                      type: integer
   350                    pods:
   351                      description: The network ranges from which Pod networks are allocated.
   352                      properties:
   353                        cidrBlocks:
   354                          items:
   355                            type: string
   356                          type: array
   357                      required:
   358                      - cidrBlocks
   359                      type: object
   360                    serviceDomain:
   361                      description: Domain name for services.
   362                      type: string
   363                    services:
   364                      description: The network ranges from which service VIPs are allocated.
   365                      properties:
   366                        cidrBlocks:
   367                          items:
   368                            type: string
   369                          type: array
   370                      required:
   371                      - cidrBlocks
   372                      type: object
   373                  type: object
   374                controlPlaneEndpoint:
   375                  description: ControlPlaneEndpoint represents the endpoint used to
   376                    communicate with the control plane.
   377                  properties:
   378                    host:
   379                      description: The hostname on which the API server is serving.
   380                      type: string
   381                    port:
   382                      description: The port on which the API server is serving.
   383                      format: int32
   384                      type: integer
   385                  required:
   386                  - host
   387                  - port
   388                  type: object
   389                controlPlaneRef:
   390                  description: |-
   391                    ControlPlaneRef is an optional reference to a provider-specific resource that holds
   392                    the details for provisioning the Control Plane for a Cluster.
   393                  properties:
   394                    apiVersion:
   395                      description: API version of the referent.
   396                      type: string
   397                    fieldPath:
   398                      description: |-
   399                        If referring to a piece of an object instead of an entire object, this string
   400                        should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   401                        For example, if the object reference is to a container within a pod, this would take on a value like:
   402                        "spec.containers{name}" (where "name" refers to the name of the container that triggered
   403                        the event) or if no container name is specified "spec.containers[2]" (container with
   404                        index 2 in this pod). This syntax is chosen only to have some well-defined way of
   405                        referencing a part of an object.
   406                        TODO: this design is not final and this field is subject to change in the future.
   407                      type: string
   408                    kind:
   409                      description: |-
   410                        Kind of the referent.
   411                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   412                      type: string
   413                    name:
   414                      description: |-
   415                        Name of the referent.
   416                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   417                      type: string
   418                    namespace:
   419                      description: |-
   420                        Namespace of the referent.
   421                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   422                      type: string
   423                    resourceVersion:
   424                      description: |-
   425                        Specific resourceVersion to which this reference is made, if any.
   426                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   427                      type: string
   428                    uid:
   429                      description: |-
   430                        UID of the referent.
   431                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   432                      type: string
   433                  type: object
   434                  x-kubernetes-map-type: atomic
   435                infrastructureRef:
   436                  description: |-
   437                    InfrastructureRef is a reference to a provider-specific resource that holds the details
   438                    for provisioning infrastructure for a cluster in said provider.
   439                  properties:
   440                    apiVersion:
   441                      description: API version of the referent.
   442                      type: string
   443                    fieldPath:
   444                      description: |-
   445                        If referring to a piece of an object instead of an entire object, this string
   446                        should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   447                        For example, if the object reference is to a container within a pod, this would take on a value like:
   448                        "spec.containers{name}" (where "name" refers to the name of the container that triggered
   449                        the event) or if no container name is specified "spec.containers[2]" (container with
   450                        index 2 in this pod). This syntax is chosen only to have some well-defined way of
   451                        referencing a part of an object.
   452                        TODO: this design is not final and this field is subject to change in the future.
   453                      type: string
   454                    kind:
   455                      description: |-
   456                        Kind of the referent.
   457                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   458                      type: string
   459                    name:
   460                      description: |-
   461                        Name of the referent.
   462                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   463                      type: string
   464                    namespace:
   465                      description: |-
   466                        Namespace of the referent.
   467                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   468                      type: string
   469                    resourceVersion:
   470                      description: |-
   471                        Specific resourceVersion to which this reference is made, if any.
   472                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   473                      type: string
   474                    uid:
   475                      description: |-
   476                        UID of the referent.
   477                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   478                      type: string
   479                  type: object
   480                  x-kubernetes-map-type: atomic
   481                paused:
   482                  description: Paused can be used to prevent controllers from processing
   483                    the Cluster and all its associated objects.
   484                  type: boolean
   485                topology:
   486                  description: |-
   487                    This encapsulates the topology for the cluster.
   488                    NOTE: It is required to enable the ClusterTopology
   489                    feature gate flag to activate managed topologies support;
   490                    this feature is highly experimental, and parts of it might still be not implemented.
   491                  properties:
   492                    class:
   493                      description: The name of the ClusterClass object to create the
   494                        topology.
   495                      type: string
   496                    controlPlane:
   497                      description: ControlPlane describes the cluster control plane.
   498                      properties:
   499                        metadata:
   500                          description: |-
   501                            Metadata is the metadata applied to the machines of the ControlPlane.
   502                            At runtime this metadata is merged with the corresponding metadata from the ClusterClass.
   503  
   504  
   505                            This field is supported if and only if the control plane provider template
   506                            referenced in the ClusterClass is Machine based.
   507                          properties:
   508                            annotations:
   509                              additionalProperties:
   510                                type: string
   511                              description: |-
   512                                Annotations is an unstructured key value map stored with a resource that may be
   513                                set by external tools to store and retrieve arbitrary metadata. They are not
   514                                queryable and should be preserved when modifying objects.
   515                                More info: http://kubernetes.io/docs/user-guide/annotations
   516                              type: object
   517                            labels:
   518                              additionalProperties:
   519                                type: string
   520                              description: |-
   521                                Map of string keys and values that can be used to organize and categorize
   522                                (scope and select) objects. May match selectors of replication controllers
   523                                and services.
   524                                More info: http://kubernetes.io/docs/user-guide/labels
   525                              type: object
   526                          type: object
   527                        replicas:
   528                          description: |-
   529                            Replicas is the number of control plane nodes.
   530                            If the value is nil, the ControlPlane object is created without the number of Replicas
   531                            and it's assumed that the control plane controller does not implement support for this field.
   532                            When specified against a control plane provider that lacks support for this field, this value will be ignored.
   533                          format: int32
   534                          type: integer
   535                      type: object
   536                    rolloutAfter:
   537                      description: |-
   538                        RolloutAfter performs a rollout of the entire cluster one component at a time,
   539                        control plane first and then machine deployments.
   540                      format: date-time
   541                      type: string
   542                    version:
   543                      description: The Kubernetes version of the cluster.
   544                      type: string
   545                    workers:
   546                      description: |-
   547                        Workers encapsulates the different constructs that form the worker nodes
   548                        for the cluster.
   549                      properties:
   550                        machineDeployments:
   551                          description: MachineDeployments is a list of machine deployments
   552                            in the cluster.
   553                          items:
   554                            description: |-
   555                              MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology.
   556                              This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller.
   557                            properties:
   558                              class:
   559                                description: |-
   560                                  Class is the name of the MachineDeploymentClass used to create the set of worker nodes.
   561                                  This should match one of the deployment classes defined in the ClusterClass object
   562                                  mentioned in the `Cluster.Spec.Class` field.
   563                                type: string
   564                              metadata:
   565                                description: |-
   566                                  Metadata is the metadata applied to the machines of the MachineDeployment.
   567                                  At runtime this metadata is merged with the corresponding metadata from the ClusterClass.
   568                                properties:
   569                                  annotations:
   570                                    additionalProperties:
   571                                      type: string
   572                                    description: |-
   573                                      Annotations is an unstructured key value map stored with a resource that may be
   574                                      set by external tools to store and retrieve arbitrary metadata. They are not
   575                                      queryable and should be preserved when modifying objects.
   576                                      More info: http://kubernetes.io/docs/user-guide/annotations
   577                                    type: object
   578                                  labels:
   579                                    additionalProperties:
   580                                      type: string
   581                                    description: |-
   582                                      Map of string keys and values that can be used to organize and categorize
   583                                      (scope and select) objects. May match selectors of replication controllers
   584                                      and services.
   585                                      More info: http://kubernetes.io/docs/user-guide/labels
   586                                    type: object
   587                                type: object
   588                              name:
   589                                description: |-
   590                                  Name is the unique identifier for this MachineDeploymentTopology.
   591                                  The value is used with other unique identifiers to create a MachineDeployment's Name
   592                                  (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length,
   593                                  the values are hashed together.
   594                                type: string
   595                              replicas:
   596                                description: |-
   597                                  Replicas is the number of worker nodes belonging to this set.
   598                                  If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to zero)
   599                                  and it's assumed that an external entity (like cluster autoscaler) is responsible for the management
   600                                  of this value.
   601                                format: int32
   602                                type: integer
   603                            required:
   604                            - class
   605                            - name
   606                            type: object
   607                          type: array
   608                      type: object
   609                  required:
   610                  - class
   611                  - version
   612                  type: object
   613              type: object
   614            status:
   615              description: ClusterStatus defines the observed state of Cluster.
   616              properties:
   617                conditions:
   618                  description: Conditions defines current service state of the cluster.
   619                  items:
   620                    description: Condition defines an observation of a Cluster API resource
   621                      operational state.
   622                    properties:
   623                      lastTransitionTime:
   624                        description: |-
   625                          Last time the condition transitioned from one status to another.
   626                          This should be when the underlying condition changed. If that is not known, then using the time when
   627                          the API field changed is acceptable.
   628                        format: date-time
   629                        type: string
   630                      message:
   631                        description: |-
   632                          A human readable message indicating details about the transition.
   633                          This field may be empty.
   634                        type: string
   635                      reason:
   636                        description: |-
   637                          The reason for the condition's last transition in CamelCase.
   638                          The specific API may choose whether or not this field is considered a guaranteed API.
   639                          This field may not be empty.
   640                        type: string
   641                      severity:
   642                        description: |-
   643                          Severity provides an explicit classification of Reason code, so the users or machines can immediately
   644                          understand the current situation and act accordingly.
   645                          The Severity field MUST be set only when Status=False.
   646                        type: string
   647                      status:
   648                        description: Status of the condition, one of True, False, Unknown.
   649                        type: string
   650                      type:
   651                        description: |-
   652                          Type of condition in CamelCase or in foo.example.com/CamelCase.
   653                          Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
   654                          can be useful (see .node.status.conditions), the ability to deconflict is important.
   655                        type: string
   656                    required:
   657                    - status
   658                    - type
   659                    type: object
   660                  type: array
   661                controlPlaneReady:
   662                  description: ControlPlaneReady defines if the control plane is ready.
   663                  type: boolean
   664                failureDomains:
   665                  additionalProperties:
   666                    description: |-
   667                      FailureDomainSpec is the Schema for Cluster API failure domains.
   668                      It allows controllers to understand how many failure domains a cluster can optionally span across.
   669                    properties:
   670                      attributes:
   671                        additionalProperties:
   672                          type: string
   673                        description: Attributes is a free form map of attributes an
   674                          infrastructure provider might use or require.
   675                        type: object
   676                      controlPlane:
   677                        description: ControlPlane determines if this failure domain
   678                          is suitable for use by control plane machines.
   679                        type: boolean
   680                    type: object
   681                  description: FailureDomains is a slice of failure domain objects synced
   682                    from the infrastructure provider.
   683                  type: object
   684                failureMessage:
   685                  description: |-
   686                    FailureMessage indicates that there is a fatal problem reconciling the
   687                    state, and will be set to a descriptive error message.
   688                  type: string
   689                failureReason:
   690                  description: |-
   691                    FailureReason indicates that there is a fatal problem reconciling the
   692                    state, and will be set to a token value suitable for
   693                    programmatic interpretation.
   694                  type: string
   695                infrastructureReady:
   696                  description: InfrastructureReady is the state of the infrastructure
   697                    provider.
   698                  type: boolean
   699                observedGeneration:
   700                  description: ObservedGeneration is the latest generation observed
   701                    by the controller.
   702                  format: int64
   703                  type: integer
   704                phase:
   705                  description: |-
   706                    Phase represents the current phase of cluster actuation.
   707                    E.g. Pending, Running, Terminating, Failed etc.
   708                  type: string
   709              type: object
   710          type: object
   711      served: false
   712      storage: false
   713      subresources:
   714        status: {}
   715    - additionalPrinterColumns:
   716      - description: ClusterClass of this Cluster, empty if the Cluster is not using
   717          a ClusterClass
   718        jsonPath: .spec.topology.class
   719        name: ClusterClass
   720        type: string
   721      - description: Cluster status such as Pending/Provisioning/Provisioned/Deleting/Failed
   722        jsonPath: .status.phase
   723        name: Phase
   724        type: string
   725      - description: Time duration since creation of Cluster
   726        jsonPath: .metadata.creationTimestamp
   727        name: Age
   728        type: date
   729      - description: Kubernetes version associated with this Cluster
   730        jsonPath: .spec.topology.version
   731        name: Version
   732        type: string
   733      name: v1beta1
   734      schema:
   735        openAPIV3Schema:
   736          description: Cluster is the Schema for the clusters API.
   737          properties:
   738            apiVersion:
   739              description: |-
   740                APIVersion defines the versioned schema of this representation of an object.
   741                Servers should convert recognized schemas to the latest internal value, and
   742                may reject unrecognized values.
   743                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
   744              type: string
   745            kind:
   746              description: |-
   747                Kind is a string value representing the REST resource this object represents.
   748                Servers may infer this from the endpoint the client submits requests to.
   749                Cannot be updated.
   750                In CamelCase.
   751                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   752              type: string
   753            metadata:
   754              type: object
   755            spec:
   756              description: ClusterSpec defines the desired state of Cluster.
   757              properties:
   758                clusterNetwork:
   759                  description: Cluster network configuration.
   760                  properties:
   761                    apiServerPort:
   762                      description: |-
   763                        APIServerPort specifies the port the API Server should bind to.
   764                        Defaults to 6443.
   765                      format: int32
   766                      type: integer
   767                    pods:
   768                      description: The network ranges from which Pod networks are allocated.
   769                      properties:
   770                        cidrBlocks:
   771                          items:
   772                            type: string
   773                          type: array
   774                      required:
   775                      - cidrBlocks
   776                      type: object
   777                    serviceDomain:
   778                      description: Domain name for services.
   779                      type: string
   780                    services:
   781                      description: The network ranges from which service VIPs are allocated.
   782                      properties:
   783                        cidrBlocks:
   784                          items:
   785                            type: string
   786                          type: array
   787                      required:
   788                      - cidrBlocks
   789                      type: object
   790                  type: object
   791                controlPlaneEndpoint:
   792                  description: ControlPlaneEndpoint represents the endpoint used to
   793                    communicate with the control plane.
   794                  properties:
   795                    host:
   796                      description: The hostname on which the API server is serving.
   797                      type: string
   798                    port:
   799                      description: The port on which the API server is serving.
   800                      format: int32
   801                      type: integer
   802                  required:
   803                  - host
   804                  - port
   805                  type: object
   806                controlPlaneRef:
   807                  description: |-
   808                    ControlPlaneRef is an optional reference to a provider-specific resource that holds
   809                    the details for provisioning the Control Plane for a Cluster.
   810                  properties:
   811                    apiVersion:
   812                      description: API version of the referent.
   813                      type: string
   814                    fieldPath:
   815                      description: |-
   816                        If referring to a piece of an object instead of an entire object, this string
   817                        should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   818                        For example, if the object reference is to a container within a pod, this would take on a value like:
   819                        "spec.containers{name}" (where "name" refers to the name of the container that triggered
   820                        the event) or if no container name is specified "spec.containers[2]" (container with
   821                        index 2 in this pod). This syntax is chosen only to have some well-defined way of
   822                        referencing a part of an object.
   823                        TODO: this design is not final and this field is subject to change in the future.
   824                      type: string
   825                    kind:
   826                      description: |-
   827                        Kind of the referent.
   828                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   829                      type: string
   830                    name:
   831                      description: |-
   832                        Name of the referent.
   833                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   834                      type: string
   835                    namespace:
   836                      description: |-
   837                        Namespace of the referent.
   838                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   839                      type: string
   840                    resourceVersion:
   841                      description: |-
   842                        Specific resourceVersion to which this reference is made, if any.
   843                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   844                      type: string
   845                    uid:
   846                      description: |-
   847                        UID of the referent.
   848                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   849                      type: string
   850                  type: object
   851                  x-kubernetes-map-type: atomic
   852                infrastructureRef:
   853                  description: |-
   854                    InfrastructureRef is a reference to a provider-specific resource that holds the details
   855                    for provisioning infrastructure for a cluster in said provider.
   856                  properties:
   857                    apiVersion:
   858                      description: API version of the referent.
   859                      type: string
   860                    fieldPath:
   861                      description: |-
   862                        If referring to a piece of an object instead of an entire object, this string
   863                        should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   864                        For example, if the object reference is to a container within a pod, this would take on a value like:
   865                        "spec.containers{name}" (where "name" refers to the name of the container that triggered
   866                        the event) or if no container name is specified "spec.containers[2]" (container with
   867                        index 2 in this pod). This syntax is chosen only to have some well-defined way of
   868                        referencing a part of an object.
   869                        TODO: this design is not final and this field is subject to change in the future.
   870                      type: string
   871                    kind:
   872                      description: |-
   873                        Kind of the referent.
   874                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   875                      type: string
   876                    name:
   877                      description: |-
   878                        Name of the referent.
   879                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   880                      type: string
   881                    namespace:
   882                      description: |-
   883                        Namespace of the referent.
   884                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   885                      type: string
   886                    resourceVersion:
   887                      description: |-
   888                        Specific resourceVersion to which this reference is made, if any.
   889                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   890                      type: string
   891                    uid:
   892                      description: |-
   893                        UID of the referent.
   894                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   895                      type: string
   896                  type: object
   897                  x-kubernetes-map-type: atomic
   898                paused:
   899                  description: Paused can be used to prevent controllers from processing
   900                    the Cluster and all its associated objects.
   901                  type: boolean
   902                topology:
   903                  description: |-
   904                    This encapsulates the topology for the cluster.
   905                    NOTE: It is required to enable the ClusterTopology
   906                    feature gate flag to activate managed topologies support;
   907                    this feature is highly experimental, and parts of it might still be not implemented.
   908                  properties:
   909                    class:
   910                      description: The name of the ClusterClass object to create the
   911                        topology.
   912                      type: string
   913                    controlPlane:
   914                      description: ControlPlane describes the cluster control plane.
   915                      properties:
   916                        machineHealthCheck:
   917                          description: |-
   918                            MachineHealthCheck allows to enable, disable and override
   919                            the MachineHealthCheck configuration in the ClusterClass for this control plane.
   920                          properties:
   921                            enable:
   922                              description: |-
   923                                Enable controls if a MachineHealthCheck should be created for the target machines.
   924  
   925  
   926                                If false: No MachineHealthCheck will be created.
   927  
   928  
   929                                If not set(default): A MachineHealthCheck will be created if it is defined here or
   930                                 in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created.
   931  
   932  
   933                                If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will
   934                                block if `enable` is true and no MachineHealthCheck definition is available.
   935                              type: boolean
   936                            maxUnhealthy:
   937                              anyOf:
   938                              - type: integer
   939                              - type: string
   940                              description: |-
   941                                Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by
   942                                "selector" are not healthy.
   943                              x-kubernetes-int-or-string: true
   944                            nodeStartupTimeout:
   945                              description: |-
   946                                Machines older than this duration without a node will be considered to have
   947                                failed and will be remediated.
   948                                If you wish to disable this feature, set the value explicitly to 0.
   949                              type: string
   950                            remediationTemplate:
   951                              description: |-
   952                                RemediationTemplate is a reference to a remediation template
   953                                provided by an infrastructure provider.
   954  
   955  
   956                                This field is completely optional, when filled, the MachineHealthCheck controller
   957                                creates a new object from the template referenced and hands off remediation of the machine to
   958                                a controller that lives outside of Cluster API.
   959                              properties:
   960                                apiVersion:
   961                                  description: API version of the referent.
   962                                  type: string
   963                                fieldPath:
   964                                  description: |-
   965                                    If referring to a piece of an object instead of an entire object, this string
   966                                    should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   967                                    For example, if the object reference is to a container within a pod, this would take on a value like:
   968                                    "spec.containers{name}" (where "name" refers to the name of the container that triggered
   969                                    the event) or if no container name is specified "spec.containers[2]" (container with
   970                                    index 2 in this pod). This syntax is chosen only to have some well-defined way of
   971                                    referencing a part of an object.
   972                                    TODO: this design is not final and this field is subject to change in the future.
   973                                  type: string
   974                                kind:
   975                                  description: |-
   976                                    Kind of the referent.
   977                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   978                                  type: string
   979                                name:
   980                                  description: |-
   981                                    Name of the referent.
   982                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   983                                  type: string
   984                                namespace:
   985                                  description: |-
   986                                    Namespace of the referent.
   987                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
   988                                  type: string
   989                                resourceVersion:
   990                                  description: |-
   991                                    Specific resourceVersion to which this reference is made, if any.
   992                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
   993                                  type: string
   994                                uid:
   995                                  description: |-
   996                                    UID of the referent.
   997                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
   998                                  type: string
   999                              type: object
  1000                              x-kubernetes-map-type: atomic
  1001                            unhealthyConditions:
  1002                              description: |-
  1003                                UnhealthyConditions contains a list of the conditions that determine
  1004                                whether a node is considered unhealthy. The conditions are combined in a
  1005                                logical OR, i.e. if any of the conditions is met, the node is unhealthy.
  1006                              items:
  1007                                description: |-
  1008                                  UnhealthyCondition represents a Node condition type and value with a timeout
  1009                                  specified as a duration.  When the named condition has been in the given
  1010                                  status for at least the timeout value, a node is considered unhealthy.
  1011                                properties:
  1012                                  status:
  1013                                    minLength: 1
  1014                                    type: string
  1015                                  timeout:
  1016                                    type: string
  1017                                  type:
  1018                                    minLength: 1
  1019                                    type: string
  1020                                required:
  1021                                - status
  1022                                - timeout
  1023                                - type
  1024                                type: object
  1025                              type: array
  1026                            unhealthyRange:
  1027                              description: |-
  1028                                Any further remediation is only allowed if the number of machines selected by "selector" as not healthy
  1029                                is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy.
  1030                                Eg. "[3-5]" - This means that remediation will be allowed only when:
  1031                                (a) there are at least 3 unhealthy machines (and)
  1032                                (b) there are at most 5 unhealthy machines
  1033                              pattern: ^\[[0-9]+-[0-9]+\]$
  1034                              type: string
  1035                          type: object
  1036                        metadata:
  1037                          description: |-
  1038                            Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane
  1039                            if the ControlPlaneTemplate referenced by the ClusterClass is machine based. If not, it
  1040                            is applied only to the ControlPlane.
  1041                            At runtime this metadata is merged with the corresponding metadata from the ClusterClass.
  1042                          properties:
  1043                            annotations:
  1044                              additionalProperties:
  1045                                type: string
  1046                              description: |-
  1047                                Annotations is an unstructured key value map stored with a resource that may be
  1048                                set by external tools to store and retrieve arbitrary metadata. They are not
  1049                                queryable and should be preserved when modifying objects.
  1050                                More info: http://kubernetes.io/docs/user-guide/annotations
  1051                              type: object
  1052                            labels:
  1053                              additionalProperties:
  1054                                type: string
  1055                              description: |-
  1056                                Map of string keys and values that can be used to organize and categorize
  1057                                (scope and select) objects. May match selectors of replication controllers
  1058                                and services.
  1059                                More info: http://kubernetes.io/docs/user-guide/labels
  1060                              type: object
  1061                          type: object
  1062                        nodeDeletionTimeout:
  1063                          description: |-
  1064                            NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine
  1065                            hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely.
  1066                            Defaults to 10 seconds.
  1067                          type: string
  1068                        nodeDrainTimeout:
  1069                          description: |-
  1070                            NodeDrainTimeout is the total amount of time that the controller will spend on draining a node.
  1071                            The default value is 0, meaning that the node can be drained without any time limitations.
  1072                            NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
  1073                          type: string
  1074                        nodeVolumeDetachTimeout:
  1075                          description: |-
  1076                            NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes
  1077                            to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations.
  1078                          type: string
  1079                        replicas:
  1080                          description: |-
  1081                            Replicas is the number of control plane nodes.
  1082                            If the value is nil, the ControlPlane object is created without the number of Replicas
  1083                            and it's assumed that the control plane controller does not implement support for this field.
  1084                            When specified against a control plane provider that lacks support for this field, this value will be ignored.
  1085                          format: int32
  1086                          type: integer
  1087                      type: object
  1088                    rolloutAfter:
  1089                      description: |-
  1090                        RolloutAfter performs a rollout of the entire cluster one component at a time,
  1091                        control plane first and then machine deployments.
  1092  
  1093  
  1094                        Deprecated: This field has no function and is going to be removed in the next apiVersion.
  1095                      format: date-time
  1096                      type: string
  1097                    variables:
  1098                      description: |-
  1099                        Variables can be used to customize the Cluster through
  1100                        patches. They must comply to the corresponding
  1101                        VariableClasses defined in the ClusterClass.
  1102                      items:
  1103                        description: |-
  1104                          ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a
  1105                          Variable definition in the ClusterClass `status` variables.
  1106                        properties:
  1107                          definitionFrom:
  1108                            description: |-
  1109                              DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the
  1110                              definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass
  1111                              `.spec.patches` where the patch is external and provides external variables.
  1112                              This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]`
  1113                            type: string
  1114                          name:
  1115                            description: Name of the variable.
  1116                            type: string
  1117                          value:
  1118                            description: |-
  1119                              Value of the variable.
  1120                              Note: the value will be validated against the schema of the corresponding ClusterClassVariable
  1121                              from the ClusterClass.
  1122                              Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a
  1123                              hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools,
  1124                              i.e. it is not possible to have no type field.
  1125                              Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111
  1126                            x-kubernetes-preserve-unknown-fields: true
  1127                        required:
  1128                        - name
  1129                        - value
  1130                        type: object
  1131                      type: array
  1132                    version:
  1133                      description: The Kubernetes version of the cluster.
  1134                      type: string
  1135                    workers:
  1136                      description: |-
  1137                        Workers encapsulates the different constructs that form the worker nodes
  1138                        for the cluster.
  1139                      properties:
  1140                        machineDeployments:
  1141                          description: MachineDeployments is a list of machine deployments
  1142                            in the cluster.
  1143                          items:
  1144                            description: |-
  1145                              MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology.
  1146                              This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller.
  1147                            properties:
  1148                              class:
  1149                                description: |-
  1150                                  Class is the name of the MachineDeploymentClass used to create the set of worker nodes.
  1151                                  This should match one of the deployment classes defined in the ClusterClass object
  1152                                  mentioned in the `Cluster.Spec.Class` field.
  1153                                type: string
  1154                              failureDomain:
  1155                                description: |-
  1156                                  FailureDomain is the failure domain the machines will be created in.
  1157                                  Must match a key in the FailureDomains map stored on the cluster object.
  1158                                type: string
  1159                              machineHealthCheck:
  1160                                description: |-
  1161                                  MachineHealthCheck allows to enable, disable and override
  1162                                  the MachineHealthCheck configuration in the ClusterClass for this MachineDeployment.
  1163                                properties:
  1164                                  enable:
  1165                                    description: |-
  1166                                      Enable controls if a MachineHealthCheck should be created for the target machines.
  1167  
  1168  
  1169                                      If false: No MachineHealthCheck will be created.
  1170  
  1171  
  1172                                      If not set(default): A MachineHealthCheck will be created if it is defined here or
  1173                                       in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created.
  1174  
  1175  
  1176                                      If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will
  1177                                      block if `enable` is true and no MachineHealthCheck definition is available.
  1178                                    type: boolean
  1179                                  maxUnhealthy:
  1180                                    anyOf:
  1181                                    - type: integer
  1182                                    - type: string
  1183                                    description: |-
  1184                                      Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by
  1185                                      "selector" are not healthy.
  1186                                    x-kubernetes-int-or-string: true
  1187                                  nodeStartupTimeout:
  1188                                    description: |-
  1189                                      Machines older than this duration without a node will be considered to have
  1190                                      failed and will be remediated.
  1191                                      If you wish to disable this feature, set the value explicitly to 0.
  1192                                    type: string
  1193                                  remediationTemplate:
  1194                                    description: |-
  1195                                      RemediationTemplate is a reference to a remediation template
  1196                                      provided by an infrastructure provider.
  1197  
  1198  
  1199                                      This field is completely optional, when filled, the MachineHealthCheck controller
  1200                                      creates a new object from the template referenced and hands off remediation of the machine to
  1201                                      a controller that lives outside of Cluster API.
  1202                                    properties:
  1203                                      apiVersion:
  1204                                        description: API version of the referent.
  1205                                        type: string
  1206                                      fieldPath:
  1207                                        description: |-
  1208                                          If referring to a piece of an object instead of an entire object, this string
  1209                                          should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
  1210                                          For example, if the object reference is to a container within a pod, this would take on a value like:
  1211                                          "spec.containers{name}" (where "name" refers to the name of the container that triggered
  1212                                          the event) or if no container name is specified "spec.containers[2]" (container with
  1213                                          index 2 in this pod). This syntax is chosen only to have some well-defined way of
  1214                                          referencing a part of an object.
  1215                                          TODO: this design is not final and this field is subject to change in the future.
  1216                                        type: string
  1217                                      kind:
  1218                                        description: |-
  1219                                          Kind of the referent.
  1220                                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1221                                        type: string
  1222                                      name:
  1223                                        description: |-
  1224                                          Name of the referent.
  1225                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1226                                        type: string
  1227                                      namespace:
  1228                                        description: |-
  1229                                          Namespace of the referent.
  1230                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
  1231                                        type: string
  1232                                      resourceVersion:
  1233                                        description: |-
  1234                                          Specific resourceVersion to which this reference is made, if any.
  1235                                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
  1236                                        type: string
  1237                                      uid:
  1238                                        description: |-
  1239                                          UID of the referent.
  1240                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
  1241                                        type: string
  1242                                    type: object
  1243                                    x-kubernetes-map-type: atomic
  1244                                  unhealthyConditions:
  1245                                    description: |-
  1246                                      UnhealthyConditions contains a list of the conditions that determine
  1247                                      whether a node is considered unhealthy. The conditions are combined in a
  1248                                      logical OR, i.e. if any of the conditions is met, the node is unhealthy.
  1249                                    items:
  1250                                      description: |-
  1251                                        UnhealthyCondition represents a Node condition type and value with a timeout
  1252                                        specified as a duration.  When the named condition has been in the given
  1253                                        status for at least the timeout value, a node is considered unhealthy.
  1254                                      properties:
  1255                                        status:
  1256                                          minLength: 1
  1257                                          type: string
  1258                                        timeout:
  1259                                          type: string
  1260                                        type:
  1261                                          minLength: 1
  1262                                          type: string
  1263                                      required:
  1264                                      - status
  1265                                      - timeout
  1266                                      - type
  1267                                      type: object
  1268                                    type: array
  1269                                  unhealthyRange:
  1270                                    description: |-
  1271                                      Any further remediation is only allowed if the number of machines selected by "selector" as not healthy
  1272                                      is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy.
  1273                                      Eg. "[3-5]" - This means that remediation will be allowed only when:
  1274                                      (a) there are at least 3 unhealthy machines (and)
  1275                                      (b) there are at most 5 unhealthy machines
  1276                                    pattern: ^\[[0-9]+-[0-9]+\]$
  1277                                    type: string
  1278                                type: object
  1279                              metadata:
  1280                                description: |-
  1281                                  Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment.
  1282                                  At runtime this metadata is merged with the corresponding metadata from the ClusterClass.
  1283                                properties:
  1284                                  annotations:
  1285                                    additionalProperties:
  1286                                      type: string
  1287                                    description: |-
  1288                                      Annotations is an unstructured key value map stored with a resource that may be
  1289                                      set by external tools to store and retrieve arbitrary metadata. They are not
  1290                                      queryable and should be preserved when modifying objects.
  1291                                      More info: http://kubernetes.io/docs/user-guide/annotations
  1292                                    type: object
  1293                                  labels:
  1294                                    additionalProperties:
  1295                                      type: string
  1296                                    description: |-
  1297                                      Map of string keys and values that can be used to organize and categorize
  1298                                      (scope and select) objects. May match selectors of replication controllers
  1299                                      and services.
  1300                                      More info: http://kubernetes.io/docs/user-guide/labels
  1301                                    type: object
  1302                                type: object
  1303                              minReadySeconds:
  1304                                description: |-
  1305                                  Minimum number of seconds for which a newly created machine should
  1306                                  be ready.
  1307                                  Defaults to 0 (machine will be considered available as soon as it
  1308                                  is ready)
  1309                                format: int32
  1310                                type: integer
  1311                              name:
  1312                                description: |-
  1313                                  Name is the unique identifier for this MachineDeploymentTopology.
  1314                                  The value is used with other unique identifiers to create a MachineDeployment's Name
  1315                                  (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length,
  1316                                  the values are hashed together.
  1317                                type: string
  1318                              nodeDeletionTimeout:
  1319                                description: |-
  1320                                  NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine
  1321                                  hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely.
  1322                                  Defaults to 10 seconds.
  1323                                type: string
  1324                              nodeDrainTimeout:
  1325                                description: |-
  1326                                  NodeDrainTimeout is the total amount of time that the controller will spend on draining a node.
  1327                                  The default value is 0, meaning that the node can be drained without any time limitations.
  1328                                  NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
  1329                                type: string
  1330                              nodeVolumeDetachTimeout:
  1331                                description: |-
  1332                                  NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes
  1333                                  to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations.
  1334                                type: string
  1335                              replicas:
  1336                                description: |-
  1337                                  Replicas is the number of worker nodes belonging to this set.
  1338                                  If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to 1)
  1339                                  and it's assumed that an external entity (like cluster autoscaler) is responsible for the management
  1340                                  of this value.
  1341                                format: int32
  1342                                type: integer
  1343                              strategy:
  1344                                description: |-
  1345                                  The deployment strategy to use to replace existing machines with
  1346                                  new ones.
  1347                                properties:
  1348                                  rollingUpdate:
  1349                                    description: |-
  1350                                      Rolling update config params. Present only if
  1351                                      MachineDeploymentStrategyType = RollingUpdate.
  1352                                    properties:
  1353                                      deletePolicy:
  1354                                        description: |-
  1355                                          DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling.
  1356                                          Valid values are "Random, "Newest", "Oldest"
  1357                                          When no value is supplied, the default DeletePolicy of MachineSet is used
  1358                                        enum:
  1359                                        - Random
  1360                                        - Newest
  1361                                        - Oldest
  1362                                        type: string
  1363                                      maxSurge:
  1364                                        anyOf:
  1365                                        - type: integer
  1366                                        - type: string
  1367                                        description: |-
  1368                                          The maximum number of machines that can be scheduled above the
  1369                                          desired number of machines.
  1370                                          Value can be an absolute number (ex: 5) or a percentage of
  1371                                          desired machines (ex: 10%).
  1372                                          This can not be 0 if MaxUnavailable is 0.
  1373                                          Absolute number is calculated from percentage by rounding up.
  1374                                          Defaults to 1.
  1375                                          Example: when this is set to 30%, the new MachineSet can be scaled
  1376                                          up immediately when the rolling update starts, such that the total
  1377                                          number of old and new machines do not exceed 130% of desired
  1378                                          machines. Once old machines have been killed, new MachineSet can
  1379                                          be scaled up further, ensuring that total number of machines running
  1380                                          at any time during the update is at most 130% of desired machines.
  1381                                        x-kubernetes-int-or-string: true
  1382                                      maxUnavailable:
  1383                                        anyOf:
  1384                                        - type: integer
  1385                                        - type: string
  1386                                        description: |-
  1387                                          The maximum number of machines that can be unavailable during the update.
  1388                                          Value can be an absolute number (ex: 5) or a percentage of desired
  1389                                          machines (ex: 10%).
  1390                                          Absolute number is calculated from percentage by rounding down.
  1391                                          This can not be 0 if MaxSurge is 0.
  1392                                          Defaults to 0.
  1393                                          Example: when this is set to 30%, the old MachineSet can be scaled
  1394                                          down to 70% of desired machines immediately when the rolling update
  1395                                          starts. Once new machines are ready, old MachineSet can be scaled
  1396                                          down further, followed by scaling up the new MachineSet, ensuring
  1397                                          that the total number of machines available at all times
  1398                                          during the update is at least 70% of desired machines.
  1399                                        x-kubernetes-int-or-string: true
  1400                                    type: object
  1401                                  type:
  1402                                    description: |-
  1403                                      Type of deployment. Allowed values are RollingUpdate and OnDelete.
  1404                                      The default is RollingUpdate.
  1405                                    enum:
  1406                                    - RollingUpdate
  1407                                    - OnDelete
  1408                                    type: string
  1409                                type: object
  1410                              variables:
  1411                                description: Variables can be used to customize the
  1412                                  MachineDeployment through patches.
  1413                                properties:
  1414                                  overrides:
  1415                                    description: Overrides can be used to override Cluster
  1416                                      level variables.
  1417                                    items:
  1418                                      description: |-
  1419                                        ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a
  1420                                        Variable definition in the ClusterClass `status` variables.
  1421                                      properties:
  1422                                        definitionFrom:
  1423                                          description: |-
  1424                                            DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the
  1425                                            definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass
  1426                                            `.spec.patches` where the patch is external and provides external variables.
  1427                                            This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]`
  1428                                          type: string
  1429                                        name:
  1430                                          description: Name of the variable.
  1431                                          type: string
  1432                                        value:
  1433                                          description: |-
  1434                                            Value of the variable.
  1435                                            Note: the value will be validated against the schema of the corresponding ClusterClassVariable
  1436                                            from the ClusterClass.
  1437                                            Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a
  1438                                            hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools,
  1439                                            i.e. it is not possible to have no type field.
  1440                                            Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111
  1441                                          x-kubernetes-preserve-unknown-fields: true
  1442                                      required:
  1443                                      - name
  1444                                      - value
  1445                                      type: object
  1446                                    type: array
  1447                                type: object
  1448                            required:
  1449                            - class
  1450                            - name
  1451                            type: object
  1452                          type: array
  1453                        machinePools:
  1454                          description: MachinePools is a list of machine pools in the
  1455                            cluster.
  1456                          items:
  1457                            description: |-
  1458                              MachinePoolTopology specifies the different parameters for a pool of worker nodes in the topology.
  1459                              This pool of nodes is managed by a MachinePool object whose lifecycle is managed by the Cluster controller.
  1460                            properties:
  1461                              class:
  1462                                description: |-
  1463                                  Class is the name of the MachinePoolClass used to create the pool of worker nodes.
  1464                                  This should match one of the deployment classes defined in the ClusterClass object
  1465                                  mentioned in the `Cluster.Spec.Class` field.
  1466                                type: string
  1467                              failureDomains:
  1468                                description: |-
  1469                                  FailureDomains is the list of failure domains the machine pool will be created in.
  1470                                  Must match a key in the FailureDomains map stored on the cluster object.
  1471                                items:
  1472                                  type: string
  1473                                type: array
  1474                              metadata:
  1475                                description: |-
  1476                                  Metadata is the metadata applied to the MachinePool.
  1477                                  At runtime this metadata is merged with the corresponding metadata from the ClusterClass.
  1478                                properties:
  1479                                  annotations:
  1480                                    additionalProperties:
  1481                                      type: string
  1482                                    description: |-
  1483                                      Annotations is an unstructured key value map stored with a resource that may be
  1484                                      set by external tools to store and retrieve arbitrary metadata. They are not
  1485                                      queryable and should be preserved when modifying objects.
  1486                                      More info: http://kubernetes.io/docs/user-guide/annotations
  1487                                    type: object
  1488                                  labels:
  1489                                    additionalProperties:
  1490                                      type: string
  1491                                    description: |-
  1492                                      Map of string keys and values that can be used to organize and categorize
  1493                                      (scope and select) objects. May match selectors of replication controllers
  1494                                      and services.
  1495                                      More info: http://kubernetes.io/docs/user-guide/labels
  1496                                    type: object
  1497                                type: object
  1498                              minReadySeconds:
  1499                                description: |-
  1500                                  Minimum number of seconds for which a newly created machine pool should
  1501                                  be ready.
  1502                                  Defaults to 0 (machine will be considered available as soon as it
  1503                                  is ready)
  1504                                format: int32
  1505                                type: integer
  1506                              name:
  1507                                description: |-
  1508                                  Name is the unique identifier for this MachinePoolTopology.
  1509                                  The value is used with other unique identifiers to create a MachinePool's Name
  1510                                  (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length,
  1511                                  the values are hashed together.
  1512                                type: string
  1513                              nodeDeletionTimeout:
  1514                                description: |-
  1515                                  NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the MachinePool
  1516                                  hosts after the MachinePool is marked for deletion. A duration of 0 will retry deletion indefinitely.
  1517                                  Defaults to 10 seconds.
  1518                                type: string
  1519                              nodeDrainTimeout:
  1520                                description: |-
  1521                                  NodeDrainTimeout is the total amount of time that the controller will spend on draining a node.
  1522                                  The default value is 0, meaning that the node can be drained without any time limitations.
  1523                                  NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
  1524                                type: string
  1525                              nodeVolumeDetachTimeout:
  1526                                description: |-
  1527                                  NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes
  1528                                  to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations.
  1529                                type: string
  1530                              replicas:
  1531                                description: |-
  1532                                  Replicas is the number of nodes belonging to this pool.
  1533                                  If the value is nil, the MachinePool is created without the number of Replicas (defaulting to 1)
  1534                                  and it's assumed that an external entity (like cluster autoscaler) is responsible for the management
  1535                                  of this value.
  1536                                format: int32
  1537                                type: integer
  1538                              variables:
  1539                                description: Variables can be used to customize the
  1540                                  MachinePool through patches.
  1541                                properties:
  1542                                  overrides:
  1543                                    description: Overrides can be used to override Cluster
  1544                                      level variables.
  1545                                    items:
  1546                                      description: |-
  1547                                        ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a
  1548                                        Variable definition in the ClusterClass `status` variables.
  1549                                      properties:
  1550                                        definitionFrom:
  1551                                          description: |-
  1552                                            DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the
  1553                                            definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass
  1554                                            `.spec.patches` where the patch is external and provides external variables.
  1555                                            This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]`
  1556                                          type: string
  1557                                        name:
  1558                                          description: Name of the variable.
  1559                                          type: string
  1560                                        value:
  1561                                          description: |-
  1562                                            Value of the variable.
  1563                                            Note: the value will be validated against the schema of the corresponding ClusterClassVariable
  1564                                            from the ClusterClass.
  1565                                            Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a
  1566                                            hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools,
  1567                                            i.e. it is not possible to have no type field.
  1568                                            Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111
  1569                                          x-kubernetes-preserve-unknown-fields: true
  1570                                      required:
  1571                                      - name
  1572                                      - value
  1573                                      type: object
  1574                                    type: array
  1575                                type: object
  1576                            required:
  1577                            - class
  1578                            - name
  1579                            type: object
  1580                          type: array
  1581                      type: object
  1582                  required:
  1583                  - class
  1584                  - version
  1585                  type: object
  1586              type: object
  1587            status:
  1588              description: ClusterStatus defines the observed state of Cluster.
  1589              properties:
  1590                conditions:
  1591                  description: Conditions defines current service state of the cluster.
  1592                  items:
  1593                    description: Condition defines an observation of a Cluster API resource
  1594                      operational state.
  1595                    properties:
  1596                      lastTransitionTime:
  1597                        description: |-
  1598                          Last time the condition transitioned from one status to another.
  1599                          This should be when the underlying condition changed. If that is not known, then using the time when
  1600                          the API field changed is acceptable.
  1601                        format: date-time
  1602                        type: string
  1603                      message:
  1604                        description: |-
  1605                          A human readable message indicating details about the transition.
  1606                          This field may be empty.
  1607                        type: string
  1608                      reason:
  1609                        description: |-
  1610                          The reason for the condition's last transition in CamelCase.
  1611                          The specific API may choose whether or not this field is considered a guaranteed API.
  1612                          This field may not be empty.
  1613                        type: string
  1614                      severity:
  1615                        description: |-
  1616                          Severity provides an explicit classification of Reason code, so the users or machines can immediately
  1617                          understand the current situation and act accordingly.
  1618                          The Severity field MUST be set only when Status=False.
  1619                        type: string
  1620                      status:
  1621                        description: Status of the condition, one of True, False, Unknown.
  1622                        type: string
  1623                      type:
  1624                        description: |-
  1625                          Type of condition in CamelCase or in foo.example.com/CamelCase.
  1626                          Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
  1627                          can be useful (see .node.status.conditions), the ability to deconflict is important.
  1628                        type: string
  1629                    required:
  1630                    - lastTransitionTime
  1631                    - status
  1632                    - type
  1633                    type: object
  1634                  type: array
  1635                controlPlaneReady:
  1636                  description: ControlPlaneReady defines if the control plane is ready.
  1637                  type: boolean
  1638                failureDomains:
  1639                  additionalProperties:
  1640                    description: |-
  1641                      FailureDomainSpec is the Schema for Cluster API failure domains.
  1642                      It allows controllers to understand how many failure domains a cluster can optionally span across.
  1643                    properties:
  1644                      attributes:
  1645                        additionalProperties:
  1646                          type: string
  1647                        description: Attributes is a free form map of attributes an
  1648                          infrastructure provider might use or require.
  1649                        type: object
  1650                      controlPlane:
  1651                        description: ControlPlane determines if this failure domain
  1652                          is suitable for use by control plane machines.
  1653                        type: boolean
  1654                    type: object
  1655                  description: FailureDomains is a slice of failure domain objects synced
  1656                    from the infrastructure provider.
  1657                  type: object
  1658                failureMessage:
  1659                  description: |-
  1660                    FailureMessage indicates that there is a fatal problem reconciling the
  1661                    state, and will be set to a descriptive error message.
  1662                  type: string
  1663                failureReason:
  1664                  description: |-
  1665                    FailureReason indicates that there is a fatal problem reconciling the
  1666                    state, and will be set to a token value suitable for
  1667                    programmatic interpretation.
  1668                  type: string
  1669                infrastructureReady:
  1670                  description: InfrastructureReady is the state of the infrastructure
  1671                    provider.
  1672                  type: boolean
  1673                observedGeneration:
  1674                  description: ObservedGeneration is the latest generation observed
  1675                    by the controller.
  1676                  format: int64
  1677                  type: integer
  1678                phase:
  1679                  description: |-
  1680                    Phase represents the current phase of cluster actuation.
  1681                    E.g. Pending, Running, Terminating, Failed etc.
  1682                  type: string
  1683              type: object
  1684          type: object
  1685      served: true
  1686      storage: true
  1687      subresources:
  1688        status: {}