---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  creationTimestamp: null
  name: clusters.observability.pingcap.com
spec:
  group: observability.pingcap.com
  names:
    kind: Cluster
    listKind: ClusterList
    plural: clusters
    singular: cluster
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: Cluster is the Schema for the Clusters 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: ClusterSpec defines the desired state of Cluster
            properties:
              endpoint:
                description: Endpoint will create service and endpoint service crd
                properties:
                  name:
                    type: string
                  shared:
                    type: boolean
                  userARN:
                    type: string
                required:
                - name
                type: object
              prometheus:
                description: Prometheus will request prometheus instance from prometheus
                  operator
                properties:
                  alerting:
                    description: AlertingSpec defines parameters for alerting configuration
                      of Prometheus servers.
                    properties:
                      alertmanagers:
                        description: AlertmanagerEndpoints Prometheus should fire
                          alerts against.
                        items:
                          description: AlertmanagerEndpoints defines a selection of
                            a single Endpoints object containing alertmanager IPs
                            to fire alerts against.
                          properties:
                            apiVersion:
                              description: Version of the Alertmanager API that Prometheus
                                uses to send alerts. It can be "v1" or "v2".
                              type: string
                            authorization:
                              description: Authorization section for this alertmanager
                                endpoint
                              properties:
                                credentials:
                                  description: The secret's key that contains the
                                    credentials of the request
                                  properties:
                                    key:
                                      description: The key of the secret to select
                                        from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its
                                        key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                type:
                                  description: Set the authentication type. Defaults
                                    to Bearer, Basic will cause an error
                                  type: string
                              type: object
                            bearerTokenFile:
                              description: BearerTokenFile to read from filesystem
                                to use when authenticating to Alertmanager.
                              type: string
                            name:
                              description: Name of Endpoints object in Namespace.
                              type: string
                            namespace:
                              description: Namespace of Endpoints object.
                              type: string
                            pathPrefix:
                              description: Prefix for the HTTP path alerts are pushed
                                to.
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Port the Alertmanager API is exposed on.
                              x-kubernetes-int-or-string: true
                            scheme:
                              description: Scheme to use when firing alerts.
                              type: string
                            timeout:
                              description: Timeout is a per-target Alertmanager timeout
                                when pushing alerts.
                              pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
                              type: string
                            tlsConfig:
                              description: TLS Config to use for alertmanager connection.
                              properties:
                                ca:
                                  description: Struct containing the CA cert to use
                                    for the targets.
                                  properties:
                                    configMap:
                                      description: ConfigMap containing data to use
                                        for the targets.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap
                                            or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    secret:
                                      description: Secret containing data to use for
                                        the targets.
                                      properties:
                                        key:
                                          description: The key of the secret to select
                                            from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret
                                            or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                  type: object
                                caFile:
                                  description: Path to the CA cert in the Prometheus
                                    container to use for the targets.
                                  type: string
                                cert:
                                  description: Struct containing the client cert file
                                    for the targets.
                                  properties:
                                    configMap:
                                      description: ConfigMap containing data to use
                                        for the targets.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap
                                            or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    secret:
                                      description: Secret containing data to use for
                                        the targets.
                                      properties:
                                        key:
                                          description: The key of the secret to select
                                            from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret
                                            or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                  type: object
                                certFile:
                                  description: Path to the client cert file in the
                                    Prometheus container for the targets.
                                  type: string
                                insecureSkipVerify:
                                  description: Disable target certificate validation.
                                  type: boolean
                                keyFile:
                                  description: Path to the client key file in the
                                    Prometheus container for the targets.
                                  type: string
                                keySecret:
                                  description: Secret containing the client key file
                                    for the targets.
                                  properties:
                                    key:
                                      description: The key of the secret to select
                                        from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its
                                        key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                serverName:
                                  description: Used to verify the hostname for the
                                    targets.
                                  type: string
                              type: object
                          required:
                          - name
                          - namespace
                          - port
                          type: object
                        type: array
                    required:
                    - alertmanagers
                    type: object
                  availabilityZone:
                    type: string
                  metricsToObjectStorage:
                    type: boolean
                  name:
                    type: string
                  replicas:
                    format: int32
                    type: integer
                  resources:
                    description: ResourceRequirements describes the compute resource
                      requirements.
                    properties:
                      limits:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Limits describes the maximum amount of compute
                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                      requests:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Requests describes the minimum amount of compute
                          resources required. If Requests is omitted for a container,
                          it defaults to Limits if that is explicitly specified, otherwise
                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                    type: object
                  retention:
                    description: Retention will set time duration Prometheus shall
                      retain data for. (ms|s|m|h|d|w|y) (milliseconds seconds minutes
                      hours days weeks years).
                    pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
                    type: string
                  ruleNamespaceSelector:
                    description: A label selector is a label query over a set of resources.
                      The result of matchLabels and matchExpressions are ANDed. An
                      empty label selector matches all objects. A null label selector
                      matches no objects.
                    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
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                      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
                  ruleSelector:
                    description: A label selector is a label query over a set of resources.
                      The result of matchLabels and matchExpressions are ANDed. An
                      empty label selector matches all objects. A null label selector
                      matches no objects.
                    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
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                      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
                  version:
                    type: string
                required:
                - name
                type: object
              victoriaAccount:
                description: VictoriaAccount will request vm alert instance from vm
                  operator
                properties:
                  accountID:
                    format: int32
                    type: integer
                  alertResources:
                    description: ResourceRequirements describes the compute resource
                      requirements.
                    properties:
                      limits:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Limits describes the maximum amount of compute
                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                      requests:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Requests describes the minimum amount of compute
                          resources required. If Requests is omitted for a container,
                          it defaults to Limits if that is explicitly specified, otherwise
                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                    type: object
                  alerting:
                    description: AlertingSpec defines parameters for alerting configuration
                      of Prometheus servers.
                    properties:
                      alertmanagers:
                        description: AlertmanagerEndpoints Prometheus should fire
                          alerts against.
                        items:
                          description: AlertmanagerEndpoints defines a selection of
                            a single Endpoints object containing alertmanager IPs
                            to fire alerts against.
                          properties:
                            apiVersion:
                              description: Version of the Alertmanager API that Prometheus
                                uses to send alerts. It can be "v1" or "v2".
                              type: string
                            authorization:
                              description: Authorization section for this alertmanager
                                endpoint
                              properties:
                                credentials:
                                  description: The secret's key that contains the
                                    credentials of the request
                                  properties:
                                    key:
                                      description: The key of the secret to select
                                        from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its
                                        key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                type:
                                  description: Set the authentication type. Defaults
                                    to Bearer, Basic will cause an error
                                  type: string
                              type: object
                            bearerTokenFile:
                              description: BearerTokenFile to read from filesystem
                                to use when authenticating to Alertmanager.
                              type: string
                            name:
                              description: Name of Endpoints object in Namespace.
                              type: string
                            namespace:
                              description: Namespace of Endpoints object.
                              type: string
                            pathPrefix:
                              description: Prefix for the HTTP path alerts are pushed
                                to.
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Port the Alertmanager API is exposed on.
                              x-kubernetes-int-or-string: true
                            scheme:
                              description: Scheme to use when firing alerts.
                              type: string
                            timeout:
                              description: Timeout is a per-target Alertmanager timeout
                                when pushing alerts.
                              pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
                              type: string
                            tlsConfig:
                              description: TLS Config to use for alertmanager connection.
                              properties:
                                ca:
                                  description: Struct containing the CA cert to use
                                    for the targets.
                                  properties:
                                    configMap:
                                      description: ConfigMap containing data to use
                                        for the targets.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap
                                            or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    secret:
                                      description: Secret containing data to use for
                                        the targets.
                                      properties:
                                        key:
                                          description: The key of the secret to select
                                            from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret
                                            or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                  type: object
                                caFile:
                                  description: Path to the CA cert in the Prometheus
                                    container to use for the targets.
                                  type: string
                                cert:
                                  description: Struct containing the client cert file
                                    for the targets.
                                  properties:
                                    configMap:
                                      description: ConfigMap containing data to use
                                        for the targets.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap
                                            or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    secret:
                                      description: Secret containing data to use for
                                        the targets.
                                      properties:
                                        key:
                                          description: The key of the secret to select
                                            from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                            TODO: Add other useful fields. apiVersion,
                                            kind, uid?'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret
                                            or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                  type: object
                                certFile:
                                  description: Path to the client cert file in the
                                    Prometheus container for the targets.
                                  type: string
                                insecureSkipVerify:
                                  description: Disable target certificate validation.
                                  type: boolean
                                keyFile:
                                  description: Path to the client key file in the
                                    Prometheus container for the targets.
                                  type: string
                                keySecret:
                                  description: Secret containing the client key file
                                    for the targets.
                                  properties:
                                    key:
                                      description: The key of the secret to select
                                        from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its
                                        key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                serverName:
                                  description: Used to verify the hostname for the
                                    targets.
                                  type: string
                              type: object
                          required:
                          - name
                          - namespace
                          - port
                          type: object
                        type: array
                    required:
                    - alertmanagers
                    type: object
                  availabilityZone:
                    type: string
                  ruleNamespaceSelector:
                    description: A label selector is a label query over a set of resources.
                      The result of matchLabels and matchExpressions are ANDed. An
                      empty label selector matches all objects. A null label selector
                      matches no objects.
                    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
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                      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
                  ruleSelector:
                    description: A label selector is a label query over a set of resources.
                      The result of matchLabels and matchExpressions are ANDed. An
                      empty label selector matches all objects. A null label selector
                      matches no objects.
                    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
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                      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
                  vmClusterName:
                    type: string
                required:
                - accountID
                - vmClusterName
                type: object
            required:
            - endpoint
            type: object
          status:
            description: ClusterStatus defines the observed state of Cluster
            properties:
              dnsName:
                type: string
              phase:
                type: string
              serviceName:
                type: string
              updateAt:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
