github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/helm/crds/apps.kubeblocks.io_clusters.yaml (about)

     1  apiVersion: apiextensions.k8s.io/v1
     2  kind: CustomResourceDefinition
     3  metadata:
     4    annotations:
     5      controller-gen.kubebuilder.io/version: v0.12.1
     6    labels:
     7      app.kubernetes.io/name: kubeblocks
     8    name: clusters.apps.kubeblocks.io
     9  spec:
    10    group: apps.kubeblocks.io
    11    names:
    12      categories:
    13      - kubeblocks
    14      - all
    15      kind: Cluster
    16      listKind: ClusterList
    17      plural: clusters
    18      singular: cluster
    19    scope: Namespaced
    20    versions:
    21    - additionalPrinterColumns:
    22      - description: ClusterDefinition referenced by cluster.
    23        jsonPath: .spec.clusterDefinitionRef
    24        name: CLUSTER-DEFINITION
    25        type: string
    26      - description: Cluster Application Version.
    27        jsonPath: .spec.clusterVersionRef
    28        name: VERSION
    29        type: string
    30      - description: Cluster termination policy.
    31        jsonPath: .spec.terminationPolicy
    32        name: TERMINATION-POLICY
    33        type: string
    34      - description: Cluster Status.
    35        jsonPath: .status.phase
    36        name: STATUS
    37        type: string
    38      - jsonPath: .metadata.creationTimestamp
    39        name: AGE
    40        type: date
    41      name: v1alpha1
    42      schema:
    43        openAPIV3Schema:
    44          description: Cluster is the Schema for the clusters API.
    45          properties:
    46            apiVersion:
    47              description: 'APIVersion defines the versioned schema of this representation
    48                of an object. Servers should convert recognized schemas to the latest
    49                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    50              type: string
    51            kind:
    52              description: 'Kind is a string value representing the REST resource this
    53                object represents. Servers may infer this from the endpoint the client
    54                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    55              type: string
    56            metadata:
    57              type: object
    58            spec:
    59              description: ClusterSpec defines the desired state of Cluster.
    60              properties:
    61                affinity:
    62                  description: affinity is a group of affinity scheduling rules.
    63                  properties:
    64                    nodeLabels:
    65                      additionalProperties:
    66                        type: string
    67                      description: nodeLabels describes that pods must be scheduled
    68                        to the nodes with the specified node labels.
    69                      type: object
    70                    podAntiAffinity:
    71                      default: Preferred
    72                      description: podAntiAffinity describes the anti-affinity level
    73                        of pods within a component. Preferred means try spread pods
    74                        by `TopologyKeys`. Required means must spread pods by `TopologyKeys`.
    75                      enum:
    76                      - Preferred
    77                      - Required
    78                      type: string
    79                    tenancy:
    80                      default: SharedNode
    81                      description: tenancy describes how pods are distributed across
    82                        node. SharedNode means multiple pods may share the same node.
    83                        DedicatedNode means each pod runs on their own dedicated node.
    84                      enum:
    85                      - SharedNode
    86                      - DedicatedNode
    87                      type: string
    88                    topologyKeys:
    89                      description: topologyKey is the key of node labels. Nodes that
    90                        have a label with this key and identical values are considered
    91                        to be in the same topology. It's used as the topology domain
    92                        for pod anti-affinity and pod spread constraint. Some well-known
    93                        label keys, such as "kubernetes.io/hostname" and "topology.kubernetes.io/zone"
    94                        are often used as TopologyKey, as well as any other custom label
    95                        key.
    96                      items:
    97                        type: string
    98                      type: array
    99                      x-kubernetes-list-type: set
   100                  type: object
   101                availabilityPolicy:
   102                  description: availabilityPolicy describes the availability policy,
   103                    including zone, node, and none.
   104                  enum:
   105                  - zone
   106                  - node
   107                  - none
   108                  type: string
   109                backup:
   110                  description: cluster backup configuration.
   111                  properties:
   112                    cronExpression:
   113                      description: the cron expression for schedule, the timezone is
   114                        in UTC. see https://en.wikipedia.org/wiki/Cron.
   115                      type: string
   116                    enabled:
   117                      default: false
   118                      description: enabled defines whether to enable automated backup.
   119                      type: boolean
   120                    method:
   121                      description: backup method name to use, that is defined in backupPolicy.
   122                      type: string
   123                    pitrEnabled:
   124                      default: false
   125                      description: pitrEnabled defines whether to enable point-in-time
   126                        recovery.
   127                      type: boolean
   128                    repoName:
   129                      description: repoName is the name of the backupRepo, if not set,
   130                        will use the default backupRepo.
   131                      type: string
   132                    retentionPeriod:
   133                      default: 7d
   134                      description: "retentionPeriod determines a duration up to which
   135                        the backup should be kept. controller will remove all backups
   136                        that are older than the RetentionPeriod. For example, RetentionPeriod
   137                        of `30d` will keep only the backups of last 30 days. Sample
   138                        duration format: - years: \t2y - months: \t6mo - days: \t\t30d
   139                        - hours: \t12h - minutes: \t30m You can also combine the above
   140                        durations. For example: 30d12h30m"
   141                      type: string
   142                    startingDeadlineMinutes:
   143                      description: startingDeadlineMinutes defines the deadline in minutes
   144                        for starting the backup job if it misses scheduled time for
   145                        any reason.
   146                      format: int64
   147                      maximum: 1440
   148                      minimum: 0
   149                      type: integer
   150                  type: object
   151                clusterDefinitionRef:
   152                  description: Cluster referencing ClusterDefinition name. This is an
   153                    immutable attribute.
   154                  maxLength: 63
   155                  pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   156                  type: string
   157                  x-kubernetes-validations:
   158                  - message: clusterDefinitionRef is immutable
   159                    rule: self == oldSelf
   160                clusterVersionRef:
   161                  description: Cluster referencing ClusterVersion name.
   162                  maxLength: 63
   163                  pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   164                  type: string
   165                componentSpecs:
   166                  description: List of componentSpecs you want to replace in ClusterDefinition
   167                    and ClusterVersion. It will replace the field in ClusterDefinition's
   168                    and ClusterVersion's component if type is matching.
   169                  items:
   170                    description: ClusterComponentSpec defines the cluster component
   171                      spec.
   172                    properties:
   173                      affinity:
   174                        description: affinity describes affinities specified by users.
   175                        properties:
   176                          nodeLabels:
   177                            additionalProperties:
   178                              type: string
   179                            description: nodeLabels describes that pods must be scheduled
   180                              to the nodes with the specified node labels.
   181                            type: object
   182                          podAntiAffinity:
   183                            default: Preferred
   184                            description: podAntiAffinity describes the anti-affinity
   185                              level of pods within a component. Preferred means try
   186                              spread pods by `TopologyKeys`. Required means must spread
   187                              pods by `TopologyKeys`.
   188                            enum:
   189                            - Preferred
   190                            - Required
   191                            type: string
   192                          tenancy:
   193                            default: SharedNode
   194                            description: tenancy describes how pods are distributed
   195                              across node. SharedNode means multiple pods may share
   196                              the same node. DedicatedNode means each pod runs on their
   197                              own dedicated node.
   198                            enum:
   199                            - SharedNode
   200                            - DedicatedNode
   201                            type: string
   202                          topologyKeys:
   203                            description: topologyKey is the key of node labels. Nodes
   204                              that have a label with this key and identical values are
   205                              considered to be in the same topology. It's used as the
   206                              topology domain for pod anti-affinity and pod spread constraint.
   207                              Some well-known label keys, such as "kubernetes.io/hostname"
   208                              and "topology.kubernetes.io/zone" are often used as TopologyKey,
   209                              as well as any other custom label key.
   210                            items:
   211                              type: string
   212                            type: array
   213                            x-kubernetes-list-type: set
   214                        type: object
   215                      classDefRef:
   216                        description: classDefRef references the class defined in ComponentClassDefinition.
   217                        properties:
   218                          class:
   219                            description: Class refers to the name of the class that
   220                              is defined in the ComponentClassDefinition.
   221                            type: string
   222                          name:
   223                            description: Name refers to the name of the ComponentClassDefinition.
   224                            maxLength: 63
   225                            pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   226                            type: string
   227                        required:
   228                        - class
   229                        type: object
   230                      componentDefRef:
   231                        description: componentDefRef references componentDef defined
   232                          in ClusterDefinition spec. Need to comply with IANA Service
   233                          Naming rule.
   234                        maxLength: 22
   235                        pattern: ^[a-z]([a-z0-9\-]*[a-z0-9])?$
   236                        type: string
   237                        x-kubernetes-validations:
   238                        - message: componentDefRef is immutable
   239                          rule: self == oldSelf
   240                      enabledLogs:
   241                        description: enabledLogs indicates which log file takes effect
   242                          in the database cluster. element is the log type which is
   243                          defined in cluster definition logConfig.name, and will set
   244                          relative variables about this log type in database kernel.
   245                        items:
   246                          type: string
   247                        type: array
   248                        x-kubernetes-list-type: set
   249                      issuer:
   250                        description: issuer defines provider context for TLS certs.
   251                          required when TLS enabled
   252                        properties:
   253                          name:
   254                            default: KubeBlocks
   255                            description: 'Name of issuer. Options supported: - KubeBlocks
   256                              - Certificates signed by KubeBlocks Operator. - UserProvided
   257                              - User provided own CA-signed certificates.'
   258                            enum:
   259                            - KubeBlocks
   260                            - UserProvided
   261                            type: string
   262                          secretRef:
   263                            description: secretRef. TLS certs Secret reference required
   264                              when from is UserProvided
   265                            properties:
   266                              ca:
   267                                description: CA cert key in Secret
   268                                type: string
   269                              cert:
   270                                description: Cert key in Secret
   271                                type: string
   272                              key:
   273                                description: Key of TLS private key in Secret
   274                                type: string
   275                              name:
   276                                description: Name of the Secret
   277                                type: string
   278                            required:
   279                            - ca
   280                            - cert
   281                            - key
   282                            - name
   283                            type: object
   284                        required:
   285                        - name
   286                        type: object
   287                      monitor:
   288                        default: false
   289                        description: monitor is a switch to enable monitoring and is
   290                          set as false by default. KubeBlocks provides an extension
   291                          mechanism to support component level monitoring, which will
   292                          scrape metrics auto or manually from servers in component
   293                          and export metrics to Time Series Database.
   294                        type: boolean
   295                      name:
   296                        description: name defines cluster's component name, this name
   297                          is also part of Service DNS name, so this name will comply
   298                          with IANA Service Naming rule.
   299                        maxLength: 22
   300                        pattern: ^[a-z]([a-z0-9\-]*[a-z0-9])?$
   301                        type: string
   302                        x-kubernetes-validations:
   303                        - message: name is immutable
   304                          rule: self == oldSelf
   305                      noCreatePDB:
   306                        default: false
   307                        description: noCreatePDB defines the PodDisruptionBudget creation
   308                          behavior and is set to true if creation of PodDisruptionBudget
   309                          for this component is not needed. It defaults to false.
   310                        type: boolean
   311                      replicas:
   312                        default: 1
   313                        description: Component replicas. The default value is used in
   314                          ClusterDefinition spec if not specified.
   315                        format: int32
   316                        minimum: 0
   317                        type: integer
   318                      resources:
   319                        description: Resources requests and limits of workload.
   320                        properties:
   321                          claims:
   322                            description: "Claims lists the names of resources, defined
   323                              in spec.resourceClaims, that are used by this container.
   324                              \n This is an alpha field and requires enabling the DynamicResourceAllocation
   325                              feature gate. \n This field is immutable. It can only
   326                              be set for containers."
   327                            items:
   328                              description: ResourceClaim references one entry in PodSpec.ResourceClaims.
   329                              properties:
   330                                name:
   331                                  description: Name must match the name of one entry
   332                                    in pod.spec.resourceClaims of the Pod where this
   333                                    field is used. It makes that resource available
   334                                    inside a container.
   335                                  type: string
   336                              required:
   337                              - name
   338                              type: object
   339                            type: array
   340                            x-kubernetes-list-map-keys:
   341                            - name
   342                            x-kubernetes-list-type: map
   343                          limits:
   344                            additionalProperties:
   345                              anyOf:
   346                              - type: integer
   347                              - type: string
   348                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   349                              x-kubernetes-int-or-string: true
   350                            description: 'Limits describes the maximum amount of compute
   351                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   352                            type: object
   353                          requests:
   354                            additionalProperties:
   355                              anyOf:
   356                              - type: integer
   357                              - type: string
   358                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   359                              x-kubernetes-int-or-string: true
   360                            description: 'Requests describes the minimum amount of compute
   361                              resources required. If Requests is omitted for a container,
   362                              it defaults to Limits if that is explicitly specified,
   363                              otherwise to an implementation-defined value. Requests
   364                              cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   365                            type: object
   366                        type: object
   367                        x-kubernetes-preserve-unknown-fields: true
   368                      serviceAccountName:
   369                        description: serviceAccountName is the name of the ServiceAccount
   370                          that running component depends on.
   371                        type: string
   372                      serviceRefs:
   373                        description: 'serviceRefs define service references for the
   374                          current component. Based on the referenced services, they
   375                          can be categorized into two types: Service provided by external
   376                          sources: These services are provided by external sources and
   377                          are not managed by KubeBlocks. They can be Kubernetes-based
   378                          or non-Kubernetes services. For external services, you need
   379                          to provide an additional ServiceDescriptor object to establish
   380                          the service binding. Service provided by other KubeBlocks
   381                          clusters: These services are provided by other KubeBlocks
   382                          clusters. You can bind to these services by specifying the
   383                          name of the hosting cluster. Each type of service reference
   384                          requires specific configurations and bindings to establish
   385                          the connection and interaction with the respective services.
   386                          It should be noted that the ServiceRef has cluster-level semantic
   387                          consistency, meaning that within the same Cluster, service
   388                          references with the same ServiceRef.Name are considered to
   389                          be the same service. It is only allowed to bind to the same
   390                          Cluster or ServiceDescriptor.'
   391                        items:
   392                          properties:
   393                            cluster:
   394                              description: 'When referencing a service provided by other
   395                                KubeBlocks cluster, you need to provide the name of
   396                                the Cluster being referenced. By default, when other
   397                                KubeBlocks Cluster are referenced, the ClusterDefinition.spec.connectionCredential
   398                                secret corresponding to the referenced Cluster will
   399                                be used to bind to the current component. Currently,
   400                                if a KubeBlocks cluster is to be referenced, the connection
   401                                credential secret should include and correspond to the
   402                                following fields: endpoint, port, username, and password.
   403                                Under this referencing approach, the ServiceKind and
   404                                ServiceVersion of service reference declaration defined
   405                                in the ClusterDefinition will not be validated. If both
   406                                Cluster and ServiceDescriptor are specified, the Cluster
   407                                takes precedence.'
   408                              type: string
   409                            name:
   410                              description: name of the service reference declaration.
   411                                references the serviceRefDeclaration name defined in
   412                                clusterDefinition.componentDefs[*].serviceRefDeclarations[*].name
   413                              type: string
   414                            namespace:
   415                              description: namespace defines the namespace of the referenced
   416                                Cluster or the namespace of the referenced ServiceDescriptor
   417                                object. If not set, the referenced Cluster and ServiceDescriptor
   418                                will be searched in the namespace of the current cluster
   419                                by default.
   420                              type: string
   421                            serviceDescriptor:
   422                              description: serviceDescriptor defines the service descriptor
   423                                of the service provided by external sources. When referencing
   424                                a service provided by external sources, you need to
   425                                provide the ServiceDescriptor object name to establish
   426                                the service binding. And serviceDescriptor is the name
   427                                of the ServiceDescriptor object, furthermore, the ServiceDescriptor.spec.serviceKind
   428                                and ServiceDescriptor.spec.serviceVersion should match
   429                                clusterDefinition.componentDefs[*].serviceRefDeclarations[*].serviceRefDeclarationSpecs[*].serviceKind
   430                                and the regular expression defines in clusterDefinition.componentDefs[*].serviceRefDeclarations[*].serviceRefDeclarationSpecs[*].serviceVersion.
   431                                If both Cluster and ServiceDescriptor are specified,
   432                                the Cluster takes precedence.
   433                              type: string
   434                          required:
   435                          - name
   436                          type: object
   437                        type: array
   438                      services:
   439                        description: Services expose endpoints that can be accessed
   440                          by clients.
   441                        items:
   442                          properties:
   443                            annotations:
   444                              additionalProperties:
   445                                type: string
   446                              description: 'If ServiceType is LoadBalancer, cloud provider
   447                                related parameters can be put here More info: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer.'
   448                              type: object
   449                            name:
   450                              description: Service name
   451                              maxLength: 15
   452                              type: string
   453                            serviceType:
   454                              default: ClusterIP
   455                              description: 'serviceType determines how the Service is
   456                                exposed. Valid options are ClusterIP, NodePort, and
   457                                LoadBalancer. "ClusterIP" allocates a cluster-internal
   458                                IP address for load-balancing to endpoints. Endpoints
   459                                are determined by the selector or if that is not specified,
   460                                they are determined by manual construction of an Endpoints
   461                                object or EndpointSlice objects. If clusterIP is "None",
   462                                no virtual IP is allocated and the endpoints are published
   463                                as a set of endpoints rather than a virtual IP. "NodePort"
   464                                builds on ClusterIP and allocates a port on every node
   465                                which routes to the same endpoints as the clusterIP.
   466                                "LoadBalancer" builds on NodePort and creates an external
   467                                load-balancer (if supported in the current cloud) which
   468                                routes to the same endpoints as the clusterIP. More
   469                                info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types.'
   470                              enum:
   471                              - ClusterIP
   472                              - NodePort
   473                              - LoadBalancer
   474                              type: string
   475                              x-kubernetes-preserve-unknown-fields: true
   476                          required:
   477                          - name
   478                          type: object
   479                        type: array
   480                      switchPolicy:
   481                        description: switchPolicy defines the strategy for switchover
   482                          and failover when workloadType is Replication.
   483                        properties:
   484                          type:
   485                            default: Noop
   486                            description: 'clusterSwitchPolicy defines type of the switchPolicy
   487                              when workloadType is Replication. MaximumAvailability:
   488                              [WIP] when the primary is active, do switch if the synchronization
   489                              delay = 0 in the user-defined lagProbe data delay detection
   490                              logic, otherwise do not switch. The primary is down, switch
   491                              immediately. It will be available in future versions.
   492                              MaximumDataProtection: [WIP] when the primary is active,
   493                              do switch if synchronization delay = 0 in the user-defined
   494                              lagProbe data lag detection logic, otherwise do not switch.
   495                              If the primary is down, if it can be judged that the primary
   496                              and secondary data are consistent, then do the switch,
   497                              otherwise do not switch. It will be available in future
   498                              versions. Noop: KubeBlocks will not perform high-availability
   499                              switching on components. Users need to implement HA by
   500                              themselves or integrate open source HA solution.'
   501                            enum:
   502                            - Noop
   503                            type: string
   504                        type: object
   505                      tls:
   506                        description: Enables or disables TLS certs.
   507                        type: boolean
   508                      tolerations:
   509                        description: Component tolerations will override ClusterSpec.Tolerations
   510                          if specified.
   511                        items:
   512                          description: The pod this Toleration is attached to tolerates
   513                            any taint that matches the triple <key,value,effect> using
   514                            the matching operator <operator>.
   515                          properties:
   516                            effect:
   517                              description: Effect indicates the taint effect to match.
   518                                Empty means match all taint effects. When specified,
   519                                allowed values are NoSchedule, PreferNoSchedule and
   520                                NoExecute.
   521                              type: string
   522                            key:
   523                              description: Key is the taint key that the toleration
   524                                applies to. Empty means match all taint keys. If the
   525                                key is empty, operator must be Exists; this combination
   526                                means to match all values and all keys.
   527                              type: string
   528                            operator:
   529                              description: Operator represents a key's relationship
   530                                to the value. Valid operators are Exists and Equal.
   531                                Defaults to Equal. Exists is equivalent to wildcard
   532                                for value, so that a pod can tolerate all taints of
   533                                a particular category.
   534                              type: string
   535                            tolerationSeconds:
   536                              description: TolerationSeconds represents the period of
   537                                time the toleration (which must be of effect NoExecute,
   538                                otherwise this field is ignored) tolerates the taint.
   539                                By default, it is not set, which means tolerate the
   540                                taint forever (do not evict). Zero and negative values
   541                                will be treated as 0 (evict immediately) by the system.
   542                              format: int64
   543                              type: integer
   544                            value:
   545                              description: Value is the taint value the toleration matches
   546                                to. If the operator is Exists, the value should be empty,
   547                                otherwise just a regular string.
   548                              type: string
   549                          type: object
   550                        type: array
   551                        x-kubernetes-preserve-unknown-fields: true
   552                      userResourceRefs:
   553                        description: userResourceRefs defines the user-defined volumes.
   554                        properties:
   555                          configMapRefs:
   556                            description: configMapRefs defines the user-defined configmaps.
   557                            items:
   558                              properties:
   559                                asVolumeFrom:
   560                                  description: asVolumeFrom defines the list of containers
   561                                    where volumeMounts will be injected into.
   562                                  items:
   563                                    type: string
   564                                  type: array
   565                                  x-kubernetes-list-type: set
   566                                configMap:
   567                                  description: configMap defines the configmap volume
   568                                    source.
   569                                  properties:
   570                                    defaultMode:
   571                                      description: 'defaultMode is optional: mode bits
   572                                        used to set permissions on created files by
   573                                        default. Must be an octal value between 0000
   574                                        and 0777 or a decimal value between 0 and 511.
   575                                        YAML accepts both octal and decimal values,
   576                                        JSON requires decimal values for mode bits.
   577                                        Defaults to 0644. Directories within the path
   578                                        are not affected by this setting. This might
   579                                        be in conflict with other options that affect
   580                                        the file mode, like fsGroup, and the result
   581                                        can be other mode bits set.'
   582                                      format: int32
   583                                      type: integer
   584                                    items:
   585                                      description: items if unspecified, each key-value
   586                                        pair in the Data field of the referenced ConfigMap
   587                                        will be projected into the volume as a file
   588                                        whose name is the key and content is the value.
   589                                        If specified, the listed keys will be projected
   590                                        into the specified paths, and unlisted keys
   591                                        will not be present. If a key is specified which
   592                                        is not present in the ConfigMap, the volume
   593                                        setup will error unless it is marked optional.
   594                                        Paths must be relative and may not contain the
   595                                        '..' path or start with '..'.
   596                                      items:
   597                                        description: Maps a string key to a path within
   598                                          a volume.
   599                                        properties:
   600                                          key:
   601                                            description: key is the key to project.
   602                                            type: string
   603                                          mode:
   604                                            description: 'mode is Optional: mode bits
   605                                              used to set permissions on this file.
   606                                              Must be an octal value between 0000 and
   607                                              0777 or a decimal value between 0 and
   608                                              511. YAML accepts both octal and decimal
   609                                              values, JSON requires decimal values for
   610                                              mode bits. If not specified, the volume
   611                                              defaultMode will be used. This might be
   612                                              in conflict with other options that affect
   613                                              the file mode, like fsGroup, and the result
   614                                              can be other mode bits set.'
   615                                            format: int32
   616                                            type: integer
   617                                          path:
   618                                            description: path is the relative path of
   619                                              the file to map the key to. May not be
   620                                              an absolute path. May not contain the
   621                                              path element '..'. May not start with
   622                                              the string '..'.
   623                                            type: string
   624                                        required:
   625                                        - key
   626                                        - path
   627                                        type: object
   628                                      type: array
   629                                    name:
   630                                      description: 'Name of the referent. More info:
   631                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   632                                        TODO: Add other useful fields. apiVersion, kind,
   633                                        uid?'
   634                                      type: string
   635                                    optional:
   636                                      description: optional specify whether the ConfigMap
   637                                        or its keys must be defined
   638                                      type: boolean
   639                                  type: object
   640                                  x-kubernetes-map-type: atomic
   641                                mountPoint:
   642                                  description: mountPath is the path at which to mount
   643                                    the volume.
   644                                  maxLength: 256
   645                                  pattern: ^/[a-z]([a-z0-9\-]*[a-z0-9])?$
   646                                  type: string
   647                                name:
   648                                  description: name is the name of the referenced the
   649                                    Configmap/Secret object.
   650                                  maxLength: 63
   651                                  pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   652                                  type: string
   653                                subPath:
   654                                  description: subPath is a relative file path within
   655                                    the volume to mount.
   656                                  type: string
   657                              required:
   658                              - configMap
   659                              - mountPoint
   660                              - name
   661                              type: object
   662                            type: array
   663                            x-kubernetes-list-map-keys:
   664                            - name
   665                            x-kubernetes-list-type: map
   666                          secretRefs:
   667                            description: secretRefs defines the user-defined secrets.
   668                            items:
   669                              properties:
   670                                asVolumeFrom:
   671                                  description: asVolumeFrom defines the list of containers
   672                                    where volumeMounts will be injected into.
   673                                  items:
   674                                    type: string
   675                                  type: array
   676                                  x-kubernetes-list-type: set
   677                                mountPoint:
   678                                  description: mountPath is the path at which to mount
   679                                    the volume.
   680                                  maxLength: 256
   681                                  pattern: ^/[a-z]([a-z0-9\-]*[a-z0-9])?$
   682                                  type: string
   683                                name:
   684                                  description: name is the name of the referenced the
   685                                    Configmap/Secret object.
   686                                  maxLength: 63
   687                                  pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   688                                  type: string
   689                                secret:
   690                                  description: secret defines the secret volume source.
   691                                  properties:
   692                                    defaultMode:
   693                                      description: 'defaultMode is Optional: mode bits
   694                                        used to set permissions on created files by
   695                                        default. Must be an octal value between 0000
   696                                        and 0777 or a decimal value between 0 and 511.
   697                                        YAML accepts both octal and decimal values,
   698                                        JSON requires decimal values for mode bits.
   699                                        Defaults to 0644. Directories within the path
   700                                        are not affected by this setting. This might
   701                                        be in conflict with other options that affect
   702                                        the file mode, like fsGroup, and the result
   703                                        can be other mode bits set.'
   704                                      format: int32
   705                                      type: integer
   706                                    items:
   707                                      description: items If unspecified, each key-value
   708                                        pair in the Data field of the referenced Secret
   709                                        will be projected into the volume as a file
   710                                        whose name is the key and content is the value.
   711                                        If specified, the listed keys will be projected
   712                                        into the specified paths, and unlisted keys
   713                                        will not be present. If a key is specified which
   714                                        is not present in the Secret, the volume setup
   715                                        will error unless it is marked optional. Paths
   716                                        must be relative and may not contain the '..'
   717                                        path or start with '..'.
   718                                      items:
   719                                        description: Maps a string key to a path within
   720                                          a volume.
   721                                        properties:
   722                                          key:
   723                                            description: key is the key to project.
   724                                            type: string
   725                                          mode:
   726                                            description: 'mode is Optional: mode bits
   727                                              used to set permissions on this file.
   728                                              Must be an octal value between 0000 and
   729                                              0777 or a decimal value between 0 and
   730                                              511. YAML accepts both octal and decimal
   731                                              values, JSON requires decimal values for
   732                                              mode bits. If not specified, the volume
   733                                              defaultMode will be used. This might be
   734                                              in conflict with other options that affect
   735                                              the file mode, like fsGroup, and the result
   736                                              can be other mode bits set.'
   737                                            format: int32
   738                                            type: integer
   739                                          path:
   740                                            description: path is the relative path of
   741                                              the file to map the key to. May not be
   742                                              an absolute path. May not contain the
   743                                              path element '..'. May not start with
   744                                              the string '..'.
   745                                            type: string
   746                                        required:
   747                                        - key
   748                                        - path
   749                                        type: object
   750                                      type: array
   751                                    optional:
   752                                      description: optional field specify whether the
   753                                        Secret or its keys must be defined
   754                                      type: boolean
   755                                    secretName:
   756                                      description: 'secretName is the name of the secret
   757                                        in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
   758                                      type: string
   759                                  type: object
   760                                subPath:
   761                                  description: subPath is a relative file path within
   762                                    the volume to mount.
   763                                  type: string
   764                              required:
   765                              - mountPoint
   766                              - name
   767                              - secret
   768                              type: object
   769                            type: array
   770                            x-kubernetes-list-map-keys:
   771                            - name
   772                            x-kubernetes-list-type: map
   773                        type: object
   774                      volumeClaimTemplates:
   775                        description: volumeClaimTemplates information for statefulset.spec.volumeClaimTemplates.
   776                        items:
   777                          properties:
   778                            name:
   779                              description: Reference `ClusterDefinition.spec.componentDefs.containers.volumeMounts.name`.
   780                              type: string
   781                            spec:
   782                              description: spec defines the desired characteristics
   783                                of a volume requested by a pod author.
   784                              properties:
   785                                accessModes:
   786                                  description: 'accessModes contains the desired access
   787                                    modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1.'
   788                                  items:
   789                                    type: string
   790                                  type: array
   791                                  x-kubernetes-preserve-unknown-fields: true
   792                                resources:
   793                                  description: 'resources represents the minimum resources
   794                                    the volume should have. If RecoverVolumeExpansionFailure
   795                                    feature is enabled users are allowed to specify
   796                                    resource requirements that are lower than previous
   797                                    value but must still be higher than capacity recorded
   798                                    in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources.'
   799                                  properties:
   800                                    claims:
   801                                      description: "Claims lists the names of resources,
   802                                        defined in spec.resourceClaims, that are used
   803                                        by this container. \n This is an alpha field
   804                                        and requires enabling the DynamicResourceAllocation
   805                                        feature gate. \n This field is immutable. It
   806                                        can only be set for containers."
   807                                      items:
   808                                        description: ResourceClaim references one entry
   809                                          in PodSpec.ResourceClaims.
   810                                        properties:
   811                                          name:
   812                                            description: Name must match the name of
   813                                              one entry in pod.spec.resourceClaims of
   814                                              the Pod where this field is used. It makes
   815                                              that resource available inside a container.
   816                                            type: string
   817                                        required:
   818                                        - name
   819                                        type: object
   820                                      type: array
   821                                      x-kubernetes-list-map-keys:
   822                                      - name
   823                                      x-kubernetes-list-type: map
   824                                    limits:
   825                                      additionalProperties:
   826                                        anyOf:
   827                                        - type: integer
   828                                        - type: string
   829                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   830                                        x-kubernetes-int-or-string: true
   831                                      description: 'Limits describes the maximum amount
   832                                        of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   833                                      type: object
   834                                    requests:
   835                                      additionalProperties:
   836                                        anyOf:
   837                                        - type: integer
   838                                        - type: string
   839                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   840                                        x-kubernetes-int-or-string: true
   841                                      description: 'Requests describes the minimum amount
   842                                        of compute resources required. If Requests is
   843                                        omitted for a container, it defaults to Limits
   844                                        if that is explicitly specified, otherwise to
   845                                        an implementation-defined value. Requests cannot
   846                                        exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   847                                      type: object
   848                                  type: object
   849                                  x-kubernetes-preserve-unknown-fields: true
   850                                storageClassName:
   851                                  description: 'storageClassName is the name of the
   852                                    StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.'
   853                                  type: string
   854                                volumeMode:
   855                                  description: volumeMode defines what type of volume
   856                                    is required by the claim.
   857                                  type: string
   858                              type: object
   859                          required:
   860                          - name
   861                          type: object
   862                        type: array
   863                    required:
   864                    - componentDefRef
   865                    - name
   866                    - replicas
   867                    type: object
   868                  maxItems: 128
   869                  minItems: 1
   870                  type: array
   871                  x-kubernetes-list-map-keys:
   872                  - name
   873                  x-kubernetes-list-type: map
   874                  x-kubernetes-validations:
   875                  - message: duplicated component
   876                    rule: self.all(x, size(self.filter(c, c.name == x.name)) == 1)
   877                  - message: component can not be added dynamically
   878                    rule: self.all(x, oldSelf.exists(y, y.name == x.name))
   879                  - message: component can not be removed dynamically
   880                    rule: oldSelf.all(x, self.exists(y, y.name == x.name))
   881                monitor:
   882                  description: monitor specifies the configuration of monitor
   883                  properties:
   884                    monitoringInterval:
   885                      anyOf:
   886                      - type: integer
   887                      - type: string
   888                      description: monitoringInterval specifies interval of monitoring,
   889                        no monitor if set to 0
   890                      x-kubernetes-int-or-string: true
   891                  type: object
   892                network:
   893                  description: network specifies the configuration of network
   894                  properties:
   895                    hostNetworkAccessible:
   896                      default: false
   897                      description: hostNetworkAccessible specifies whether host network
   898                        is accessible. It defaults to false
   899                      type: boolean
   900                    publiclyAccessible:
   901                      default: false
   902                      description: publiclyAccessible specifies whether it is publicly
   903                        accessible. It defaults to false
   904                      type: boolean
   905                  type: object
   906                replicas:
   907                  description: replicas specifies the replicas of the first componentSpec,
   908                    if the replicas of the first componentSpec is specified, this value
   909                    will be ignored.
   910                  format: int32
   911                  type: integer
   912                resources:
   913                  description: resources specifies the resources of the first componentSpec,
   914                    if the resources of the first componentSpec is specified, this value
   915                    will be ignored.
   916                  properties:
   917                    cpu:
   918                      anyOf:
   919                      - type: integer
   920                      - type: string
   921                      description: 'cpu resource needed, more info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   922                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   923                      x-kubernetes-int-or-string: true
   924                    memory:
   925                      anyOf:
   926                      - type: integer
   927                      - type: string
   928                      description: 'memory resource needed, more info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   929                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   930                      x-kubernetes-int-or-string: true
   931                  type: object
   932                storage:
   933                  description: storage specifies the storage of the first componentSpec,
   934                    if the storage of the first componentSpec is specified, this value
   935                    will be ignored.
   936                  properties:
   937                    size:
   938                      anyOf:
   939                      - type: integer
   940                      - type: string
   941                      description: 'storage size needed, more info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   942                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   943                      x-kubernetes-int-or-string: true
   944                  type: object
   945                tenancy:
   946                  description: tenancy describes how pods are distributed across node.
   947                    SharedNode means multiple pods may share the same node. DedicatedNode
   948                    means each pod runs on their own dedicated node.
   949                  enum:
   950                  - SharedNode
   951                  - DedicatedNode
   952                  type: string
   953                terminationPolicy:
   954                  description: Cluster termination policy. Valid values are DoNotTerminate,
   955                    Halt, Delete, WipeOut. DoNotTerminate will block delete operation.
   956                    Halt will delete workload resources such as statefulset, deployment
   957                    workloads but keep PVCs. Delete is based on Halt and deletes PVCs.
   958                    WipeOut is based on Delete and wipe out all volume snapshots and
   959                    snapshot data from backup storage location.
   960                  enum:
   961                  - DoNotTerminate
   962                  - Halt
   963                  - Delete
   964                  - WipeOut
   965                  type: string
   966                tolerations:
   967                  description: tolerations are attached to tolerate any taint that matches
   968                    the triple `key,value,effect` using the matching operator `operator`.
   969                  items:
   970                    description: The pod this Toleration is attached to tolerates any
   971                      taint that matches the triple <key,value,effect> using the matching
   972                      operator <operator>.
   973                    properties:
   974                      effect:
   975                        description: Effect indicates the taint effect to match. Empty
   976                          means match all taint effects. When specified, allowed values
   977                          are NoSchedule, PreferNoSchedule and NoExecute.
   978                        type: string
   979                      key:
   980                        description: Key is the taint key that the toleration applies
   981                          to. Empty means match all taint keys. If the key is empty,
   982                          operator must be Exists; this combination means to match all
   983                          values and all keys.
   984                        type: string
   985                      operator:
   986                        description: Operator represents a key's relationship to the
   987                          value. Valid operators are Exists and Equal. Defaults to Equal.
   988                          Exists is equivalent to wildcard for value, so that a pod
   989                          can tolerate all taints of a particular category.
   990                        type: string
   991                      tolerationSeconds:
   992                        description: TolerationSeconds represents the period of time
   993                          the toleration (which must be of effect NoExecute, otherwise
   994                          this field is ignored) tolerates the taint. By default, it
   995                          is not set, which means tolerate the taint forever (do not
   996                          evict). Zero and negative values will be treated as 0 (evict
   997                          immediately) by the system.
   998                        format: int64
   999                        type: integer
  1000                      value:
  1001                        description: Value is the taint value the toleration matches
  1002                          to. If the operator is Exists, the value should be empty,
  1003                          otherwise just a regular string.
  1004                        type: string
  1005                    type: object
  1006                  type: array
  1007                  x-kubernetes-preserve-unknown-fields: true
  1008              required:
  1009              - clusterDefinitionRef
  1010              - terminationPolicy
  1011              type: object
  1012            status:
  1013              description: ClusterStatus defines the observed state of Cluster.
  1014              properties:
  1015                clusterDefGeneration:
  1016                  description: clusterDefGeneration represents the generation number
  1017                    of ClusterDefinition referenced.
  1018                  format: int64
  1019                  type: integer
  1020                components:
  1021                  additionalProperties:
  1022                    description: ClusterComponentStatus records components status.
  1023                    properties:
  1024                      consensusSetStatus:
  1025                        description: consensusSetStatus specifies the mapping of role
  1026                          and pod name.
  1027                        properties:
  1028                          followers:
  1029                            description: Followers status.
  1030                            items:
  1031                              properties:
  1032                                accessMode:
  1033                                  default: ReadWrite
  1034                                  description: accessMode defines what service this
  1035                                    pod provides.
  1036                                  enum:
  1037                                  - None
  1038                                  - Readonly
  1039                                  - ReadWrite
  1040                                  type: string
  1041                                name:
  1042                                  default: leader
  1043                                  description: Defines the role name.
  1044                                  type: string
  1045                                pod:
  1046                                  default: Unknown
  1047                                  description: Pod name.
  1048                                  type: string
  1049                              required:
  1050                              - accessMode
  1051                              - name
  1052                              - pod
  1053                              type: object
  1054                            type: array
  1055                          leader:
  1056                            description: Leader status.
  1057                            properties:
  1058                              accessMode:
  1059                                default: ReadWrite
  1060                                description: accessMode defines what service this pod
  1061                                  provides.
  1062                                enum:
  1063                                - None
  1064                                - Readonly
  1065                                - ReadWrite
  1066                                type: string
  1067                              name:
  1068                                default: leader
  1069                                description: Defines the role name.
  1070                                type: string
  1071                              pod:
  1072                                default: Unknown
  1073                                description: Pod name.
  1074                                type: string
  1075                            required:
  1076                            - accessMode
  1077                            - name
  1078                            - pod
  1079                            type: object
  1080                          learner:
  1081                            description: Learner status.
  1082                            properties:
  1083                              accessMode:
  1084                                default: ReadWrite
  1085                                description: accessMode defines what service this pod
  1086                                  provides.
  1087                                enum:
  1088                                - None
  1089                                - Readonly
  1090                                - ReadWrite
  1091                                type: string
  1092                              name:
  1093                                default: leader
  1094                                description: Defines the role name.
  1095                                type: string
  1096                              pod:
  1097                                default: Unknown
  1098                                description: Pod name.
  1099                                type: string
  1100                            required:
  1101                            - accessMode
  1102                            - name
  1103                            - pod
  1104                            type: object
  1105                        required:
  1106                        - leader
  1107                        type: object
  1108                      membersStatus:
  1109                        description: members' status.
  1110                        items:
  1111                          properties:
  1112                            podName:
  1113                              default: Unknown
  1114                              description: PodName pod name.
  1115                              type: string
  1116                            role:
  1117                              properties:
  1118                                accessMode:
  1119                                  default: ReadWrite
  1120                                  description: AccessMode, what service this member
  1121                                    capable.
  1122                                  enum:
  1123                                  - None
  1124                                  - Readonly
  1125                                  - ReadWrite
  1126                                  type: string
  1127                                canVote:
  1128                                  default: true
  1129                                  description: CanVote, whether this member has voting
  1130                                    rights
  1131                                  type: boolean
  1132                                isLeader:
  1133                                  default: false
  1134                                  description: IsLeader, whether this member is the
  1135                                    leader
  1136                                  type: boolean
  1137                                name:
  1138                                  default: leader
  1139                                  description: Name, role name.
  1140                                  type: string
  1141                              required:
  1142                              - accessMode
  1143                              - name
  1144                              type: object
  1145                          required:
  1146                          - podName
  1147                          - role
  1148                          type: object
  1149                        type: array
  1150                      message:
  1151                        additionalProperties:
  1152                          type: string
  1153                        description: message records the component details message in
  1154                          current phase. Keys are podName or deployName or statefulSetName.
  1155                          The format is `ObjectKind/Name`.
  1156                        type: object
  1157                      phase:
  1158                        description: 'phase describes the phase of the component and
  1159                          the detail information of the phases are as following: Creating:
  1160                          `Creating` is a special `Updating` with previous phase `empty`(means
  1161                          "") or `Creating`. Running: component replicas > 0 and all
  1162                          pod specs are latest with a Running state. Updating: component
  1163                          replicas > 0 and has no failed pods. the component is being
  1164                          updated. Abnormal: component replicas > 0 but having some
  1165                          failed pods. the component basically works but in a fragile
  1166                          state. Failed: component replicas > 0 but having some failed
  1167                          pods. the component doesn''t work anymore. Stopping: component
  1168                          replicas = 0 and has terminating pods. Stopped: component
  1169                          replicas = 0 and all pods have been deleted. Deleting: the
  1170                          component is being deleted.'
  1171                        enum:
  1172                        - Creating
  1173                        - Running
  1174                        - Updating
  1175                        - Stopping
  1176                        - Stopped
  1177                        - Deleting
  1178                        - Failed
  1179                        - Abnormal
  1180                        type: string
  1181                      podsReady:
  1182                        description: podsReady checks if all pods of the component are
  1183                          ready.
  1184                        type: boolean
  1185                      podsReadyTime:
  1186                        description: podsReadyTime what time point of all component
  1187                          pods are ready, this time is the ready time of the last component
  1188                          pod.
  1189                        format: date-time
  1190                        type: string
  1191                      replicationSetStatus:
  1192                        description: replicationSetStatus specifies the mapping of role
  1193                          and pod name.
  1194                        properties:
  1195                          primary:
  1196                            description: Primary status.
  1197                            properties:
  1198                              pod:
  1199                                default: Unknown
  1200                                description: Pod name.
  1201                                type: string
  1202                            required:
  1203                            - pod
  1204                            type: object
  1205                          secondaries:
  1206                            description: Secondaries status.
  1207                            items:
  1208                              properties:
  1209                                pod:
  1210                                  default: Unknown
  1211                                  description: Pod name.
  1212                                  type: string
  1213                              required:
  1214                              - pod
  1215                              type: object
  1216                            type: array
  1217                        required:
  1218                        - primary
  1219                        type: object
  1220                    type: object
  1221                  description: components record the current status information of all
  1222                    components of the cluster.
  1223                  type: object
  1224                conditions:
  1225                  description: Describe current state of cluster API Resource, like
  1226                    warning.
  1227                  items:
  1228                    description: "Condition contains details for one aspect of the current
  1229                      state of this API Resource. --- This struct is intended for direct
  1230                      use as an array at the field path .status.conditions.  For example,
  1231                      \n type FooStatus struct{ // Represents the observations of a
  1232                      foo's current state. // Known .status.conditions.type are: \"Available\",
  1233                      \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
  1234                      // +listType=map // +listMapKey=type Conditions []metav1.Condition
  1235                      `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
  1236                      protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
  1237                    properties:
  1238                      lastTransitionTime:
  1239                        description: lastTransitionTime is the last time the condition
  1240                          transitioned from one status to another. This should be when
  1241                          the underlying condition changed.  If that is not known, then
  1242                          using the time when the API field changed is acceptable.
  1243                        format: date-time
  1244                        type: string
  1245                      message:
  1246                        description: message is a human readable message indicating
  1247                          details about the transition. This may be an empty string.
  1248                        maxLength: 32768
  1249                        type: string
  1250                      observedGeneration:
  1251                        description: observedGeneration represents the .metadata.generation
  1252                          that the condition was set based upon. For instance, if .metadata.generation
  1253                          is currently 12, but the .status.conditions[x].observedGeneration
  1254                          is 9, the condition is out of date with respect to the current
  1255                          state of the instance.
  1256                        format: int64
  1257                        minimum: 0
  1258                        type: integer
  1259                      reason:
  1260                        description: reason contains a programmatic identifier indicating
  1261                          the reason for the condition's last transition. Producers
  1262                          of specific condition types may define expected values and
  1263                          meanings for this field, and whether the values are considered
  1264                          a guaranteed API. The value should be a CamelCase string.
  1265                          This field may not be empty.
  1266                        maxLength: 1024
  1267                        minLength: 1
  1268                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
  1269                        type: string
  1270                      status:
  1271                        description: status of the condition, one of True, False, Unknown.
  1272                        enum:
  1273                        - "True"
  1274                        - "False"
  1275                        - Unknown
  1276                        type: string
  1277                      type:
  1278                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
  1279                          --- Many .condition.type values are consistent across resources
  1280                          like Available, but because arbitrary conditions can be useful
  1281                          (see .node.status.conditions), the ability to deconflict is
  1282                          important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
  1283                        maxLength: 316
  1284                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
  1285                        type: string
  1286                    required:
  1287                    - lastTransitionTime
  1288                    - message
  1289                    - reason
  1290                    - status
  1291                    - type
  1292                    type: object
  1293                  type: array
  1294                message:
  1295                  description: message describes cluster details message in current
  1296                    phase.
  1297                  type: string
  1298                observedGeneration:
  1299                  description: observedGeneration is the most recent generation observed
  1300                    for this Cluster. It corresponds to the Cluster's generation, which
  1301                    is updated on mutation by the API Server.
  1302                  format: int64
  1303                  type: integer
  1304                phase:
  1305                  description: 'phase describes the phase of the Cluster, the detail
  1306                    information of the phases are as following: Creating: all components
  1307                    are in `Creating` phase. Running: all components are in `Running`
  1308                    phase, means the cluster is working well. Updating: all components
  1309                    are in `Creating`, `Running` or `Updating` phase, and at least one
  1310                    component is in `Creating` or `Updating` phase, means the cluster
  1311                    is doing an update. Stopping: at least one component is in `Stopping`
  1312                    phase, means the cluster is in a stop progress. Stopped: all components
  1313                    are in ''Stopped` phase, means the cluster has stopped and didn''t
  1314                    provide any function anymore. Failed: all components are in `Failed`
  1315                    phase, means the cluster is unavailable. Abnormal: some components
  1316                    are in `Failed` or `Abnormal` phase, means the cluster in a fragile
  1317                    state. troubleshoot need to be done. Deleting: the cluster is being
  1318                    deleted.'
  1319                  enum:
  1320                  - Creating
  1321                  - Running
  1322                  - Updating
  1323                  - Stopping
  1324                  - Stopped
  1325                  - Deleting
  1326                  - Failed
  1327                  - Abnormal
  1328                  type: string
  1329              type: object
  1330          type: object
  1331      served: true
  1332      storage: true
  1333      subresources:
  1334        status: {}