---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.2
  name: clusterconfigs.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: ClusterConfig
    listKind: ClusterConfigList
    plural: clusterconfigs
    singular: clusterconfig
  preserveUnknownFields: false
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: ClusterConfig is the Schema for the clusterconfigs API
        properties:
          apiVersion:
            description: |-
              APIVersion defines the versioned schema of this representation of an object.
              Servers should convert recognized schemas to the latest internal value, and
              may reject unrecognized values.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
            type: string
          kind:
            description: |-
              Kind is a string value representing the REST resource this object represents.
              Servers may infer this from the endpoint the client submits requests to.
              Cannot be updated.
              In CamelCase.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
            type: string
          metadata:
            type: object
          spec:
            description: ClusterConfigSpec defines the desired state of ClusterConfig
            properties:
              backup:
                description: Backup contains all configurations about backup job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              configMeta:
                description: ConfigMeta contains metadata information of configurations
                properties:
                  configVersion:
                    description: |-
                      ConfigVersion is configuration version, version will auto-increment to
                      aviod old version overrides new version configuration
                    format: int64
                    type: integer
                  gitCommitID:
                    description: GitCommitID is git commit ID of cluster configuration
                    type: string
                required:
                - configVersion
                - gitCommitID
                type: object
              lightning:
                description: Lightning contains all configurations about a lightning
                  job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              pd:
                description: PD contains all default and overlay configurations of
                  pd server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              priority:
                description: |-
                  Priority used for overlay in server side
                  Higher priority config will overwrite lower priority config
                type: integer
              restore:
                description: Restore contains all configurations about restore job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              selector:
                description: Label selector for clusters, it wll match the cluster
                  object's labels.
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      description: |-
                        A label selector requirement is a selector that contains values, a key, and an operator that
                        relates the key and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies
                            to.
                          type: string
                        operator:
                          description: |-
                            operator represents a key's relationship to a set of values.
                            Valid operators are In, NotIn, Exists and DoesNotExist.
                          type: string
                        values:
                          description: |-
                            values is an array of string values. If the operator is In or NotIn,
                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                            the values array must be empty. This array is replaced during a strategic
                            merge patch.
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  matchLabels:
                    additionalProperties:
                      type: string
                    description: |-
                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                    type: object
                type: object
                x-kubernetes-map-type: atomic
              ticdc:
                description: TiCDC contains all configurations about a ticdc cluster
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tidb:
                description: TiDB contains all default and overlay configurations
                  of tidb server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiflash:
                description: TiFlash contains all default and overlay configurations
                  of tiflash server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiflashLearner:
                description: TiFlashLearner contains all default and overlay configurations
                  of tiflash learner
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiflowExecutor:
                description: TiflowExecutor contains all configurations about the
                  tiflow exector
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiflowMaster:
                description: TiflowMaster contains all configurations about the tiflow
                  master
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tikv:
                description: TiKV contains all default and overlay configurations
                  of tikv server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiproxy:
                description: TiProxy contains all default and overlay configurations
                  of tiproxy server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              updatePolicy:
                type: string
              version:
                description: TiDB cluster version
                type: string
            required:
            - selector
            type: object
          status:
            description: ClusterConfigStatus defines the observed state of ClusterConfig
            type: object
        type: object
    served: true
    storage: true
