--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.0 creationTimestamp: null name: polardbxclusters.polardbx.aliyun.com spec: group: polardbx.aliyun.com names: kind: PolarDBXCluster listKind: PolarDBXClusterList plural: polardbxclusters shortNames: - px - pxc - polardbx singular: polardbxcluster scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.protocolVersion name: PROTOCOL priority: 1 type: string - jsonPath: .status.statusForPrint.replicaStatus.gms name: GMS type: string - jsonPath: .status.statusForPrint.replicaStatus.cn name: CN type: string - jsonPath: .status.statusForPrint.replicaStatus.dn name: DN type: string - jsonPath: .status.statusForPrint.replicaStatus.cdc name: CDC type: string - jsonPath: .status.statusForPrint.replicaStatus.columnar name: COLUMNAR type: string - jsonPath: .status.phase name: PHASE type: string - jsonPath: .status.statusForPrint.storageSize name: DISK type: string - jsonPath: .status.stage name: STAGE priority: 1 type: string - jsonPath: .status.statusForPrint.rebalanceProcess name: REBALANCE priority: 1 type: string - jsonPath: .status.statusForPrint.detailedVersion name: VERSION priority: 1 type: string - jsonPath: .metadata.creationTimestamp name: AGE type: date name: v1 schema: openAPIV3Schema: 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: default: topology: nodes: cn: template: resources: limits: cpu: 4 memory: 8Gi dn: replicas: 2 template: hostNetwork: true resources: limits: cpu: 4 memory: 8Gi properties: config: description: Config defines the configuration of the current cluster. Both dynamic and static configs of CN and DN are included. properties: cdc: description: CDC config properties: envs: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object type: object cn: description: CN config. properties: coldDataFileStorage: description: ColdDataFileStorage defines the file storage used to store cold data items: properties: engine: description: Engine describes the engine type of file storage pattern: ^(?i)innodb|mrg_myisam|blackhole|myisam|csv|archive|performance_schema|federated|local_disk|s3|oss$ type: string type: object type: array dynamic: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object enableAuditLog: type: boolean static: default: EnableCoroutine: true properties: AttendHtap: type: boolean EnableCoroutine: default: true type: boolean EnableJvmRemoteDebug: type: boolean EnableReplicaRead: type: boolean RPCProtocolVersion: anyOf: - type: integer - type: string default: 1 enum: - 1 - 2 - "1" - "2" - "" x-kubernetes-int-or-string: true ServerProperties: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object type: object type: object columnar: description: Columnar config properties: envs: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object type: object dn: description: DN config. properties: enableAuditLog: type: boolean envs: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object logDataSeparation: type: boolean logPurgeInterval: type: string mycnfOverwrite: type: string type: object type: object initReadonly: description: InitReadonly is the list of readonly cluster that needs to be created and initialized items: properties: cnReplicas: type: integer extraParams: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object name: type: string type: object type: array parameterTemplate: description: ParameterTemplate defines the template of parameters used by cn/dn/gms. properties: name: description: parameter template type: string type: object primaryCluster: description: PrimaryCluster is the name of primary cluster of the readonly cluster type: string privileges: description: Privileges defines the extra accounts that should be created while provisioning the cluster. Specifying an item for the default root account will overwrite the default random password with the given one. items: description: PrivilegeItem represents an item for privilege definition. properties: password: description: Password for the account. The operator will generate a random password if not provided. type: string type: default: RW description: Type represents the type of privilege, default is ReadWrite. enum: - RW - RO - DDL - DML - SUPER type: string username: description: Username for the account. type: string type: object type: array protocolVersion: anyOf: - type: integer - type: string description: ProtocolVersion represents the supported MySQL protocols provided by the cluster. Must be either 5 (5.7) or 8 (8.0). Default is operator dependent. enum: - 5 - 8 - "5" - "8" - "5.7" - "8.0" x-kubernetes-int-or-string: true readonly: default: false description: Readonly demonstrates whether the cluster is readonly. Default is false type: boolean restore: description: Restore defines the restore specification. When provided, the operator will create the cluster in restore mode. Restore might fail due to lack of backups silently. properties: backupset: description: BackupSet defines the source of backup set. It works only when PolarDBXBackup object of this BackupSet still exists. type: string binlogSource: description: BinlogSource defines the binlog datasource properties: checksum: description: Checksum defines the binlog file checksum. type: string namespace: description: Namespace defines the source binlog namespace type: string storageProvider: description: StorageProvider defines the source binlog sink properties: sink: description: Sink defines the storage configuration choose to perform backup type: string storageName: description: StorageName defines the storage medium used to perform backup type: string type: object type: object from: description: "From defines the source information, either a running cluster, backup set path or backup selector. \n If PolarDBXRestoreFrom.BackupSetPath provided, restore will be performed using metadata backup in remote storage. It works only when BackupSet is empty and StorageProvider is provided." properties: backupSelector: additionalProperties: type: string description: BackupSelector defines the selector for the backups to be selected. Optional. type: object backupSetPath: description: BackupSetPath defines the location of backup set in remote storage type: string clusterName: description: PolarBDXName defines the polardbx name that this polardbx is restored from. Optional. type: string type: object storageProvider: description: StorageProvider defines storage used to perform backup properties: sink: description: Sink defines the storage configuration choose to perform backup type: string storageName: description: StorageName defines the storage medium used to perform backup type: string type: object syncSpecWithOriginalCluster: default: false description: SyncSpecWithOriginalCluster identifies whether restored cluster should use the same spec as the original cluster. If the field is set to true, spec of original cluster is used; otherwise users have to declare spec manually or use default spec, but replicas of dn will be forced to sync with original cluster now. Default is false type: boolean time: description: Time defines the specified time of the restored data, in the format of 'yyyy-MM-ddTHH:mm:ssZ'. Required. type: string timezone: description: TimeZone defines the specified time zone of the restore time. Default is the location of current cluster. type: string type: object security: description: Security defines the security config of the cluster, like SSL. properties: encodeKey: description: EncodeKey defines the encode key used by the cluster. If not provided, operator will generate a random key. 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 tls: description: TLS defines the TLS config of the access port. properties: generateSelfSigned: description: GenerateSelfSigned represents if let the operator generate and use a self-signed cert. type: boolean secretName: description: SecretName of the TLS config's secret. type: string type: object type: object serviceName: description: ServiceName represents the name of main (access) service of the cluster. It's set to the name of the cluster object when not provided. type: string serviceType: default: ClusterIP description: ServiceType represents the service type of main (access) service of the cluster. Default is ClusterIP. type: string shareGMS: description: ShareGMS represents there's no standalone GMS instance but shares the first DN as the GMS. It's not recommended in production but useful for tests in environments with not so much CPU/memory resources. Default is false. type: boolean topology: description: Topology defines the desired node topology and templates. properties: nodes: default: cn: replicas: 2 template: resources: limits: cpu: 4 memory: 8Gi dn: replicas: 2 template: hostNetwork: true resources: limits: cpu: 4 memory: 8Gi description: Node defines the replicas and template of components of the cluster. properties: cdc: properties: replicas: default: 2 format: int32 minimum: 0 type: integer template: default: resources: limits: cpu: 4 memory: 8Gi properties: hostNetwork: description: HostNetwork mode. type: boolean image: description: Image for CDC. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 type: object xReplicas: format: int32 minimum: 0 type: integer type: object cn: default: replicas: 2 template: resources: limits: cpu: 4 memory: 8Gi properties: replicas: default: 2 format: int32 minimum: 0 type: integer template: default: resources: limits: cpu: 4 memory: 8Gi properties: hostNetwork: description: HostNetwork mode. type: boolean image: description: Image for CN. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 type: object type: object columnar: properties: replicas: default: 2 format: int32 minimum: 0 type: integer template: default: resources: limits: cpu: 4 memory: 8Gi properties: hostNetwork: description: HostNetwork mode. type: boolean image: description: Image for Columnar. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 type: object type: object dn: default: replicas: 2 template: hostNetwork: true resources: limits: cpu: 4 memory: 8Gi properties: replicas: default: 2 format: int32 minimum: 1 type: integer template: default: hostNetwork: true resources: limits: cpu: 4 memory: 8Gi properties: diskQuota: anyOf: - type: integer - type: string description: DiskQuota for xstore. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true engine: description: Engine of xstore. Default is operator dependent. type: string hostNetwork: default: false description: HostNetwork mode. type: boolean image: description: Image for xstore. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 limits.io: 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: ResourceList is a set of (resource name, quantity) pairs. 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 serviceType: default: ClusterIP description: Service type for xstore's service. Useful when needs an external IP. Default is ClusterIP. type: string type: object type: object gms: properties: template: description: Template of GMS xstore. If not provided, the operator will use the template for DN as template for GMS. properties: diskQuota: anyOf: - type: integer - type: string description: DiskQuota for xstore. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true engine: description: Engine of xstore. Default is operator dependent. type: string hostNetwork: default: false description: HostNetwork mode. type: boolean image: description: Image for xstore. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 limits.io: 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: ResourceList is a set of (resource name, quantity) pairs. 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 serviceType: default: ClusterIP description: Service type for xstore's service. Useful when needs an external IP. Default is ClusterIP. type: string type: object type: object type: object rules: description: Rules defines the topology rules of components of the cluster. properties: components: properties: cdc: items: properties: name: type: string replicas: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array cn: items: properties: name: type: string replicas: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array columnar: items: properties: name: type: string replicas: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array dn: properties: nodeSets: items: properties: name: type: string replicas: default: 1 format: int32 minimum: 1 type: integer role: enum: - Candidate - Voter - Learner type: string selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array rolling: properties: replicas: format: int32 type: integer selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: object gms: properties: nodeSets: items: properties: name: type: string replicas: default: 1 format: int32 minimum: 1 type: integer role: enum: - Candidate - Voter - Learner type: string selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array rolling: properties: replicas: format: int32 type: integer selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: object type: object selectors: items: properties: name: type: string nodeSelector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: array type: object version: description: Version defines the default image version of the all components. Default is empty. If not provided, one should specify the images manually. type: string type: object upgradeStrategy: description: UpgradeStrategy defines the upgrade strategy for stateless nodes. type: string type: object status: properties: conditions: description: Conditions represent the current service state of the cluster. items: description: Condition defines the condition and its status. properties: lastProbeTime: description: Last time we probed the condition. format: date-time type: string lastTransitionTime: description: Last time the condition transition from on status to another. format: date-time type: string message: description: Human-readable message indicating details about last transition. type: string reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: Status is the status of the condition. type: string type: description: Type is the type of the condition. type: string required: - status - type type: object type: array observedGeneration: description: ObservedGeneration is the observed generation of the xstore spec. format: int64 type: integer phase: description: Phase is the current phase of the cluster. type: string pitrStatus: description: PitrStatus represents the status of the pitr restore properties: job: type: string preapreJobEndpoint: type: string type: object randHash: description: Rand represents a random string value to avoid collision. type: string replicaStatus: description: ReplicaStatus represents the replica status of the cluster. properties: cdc: description: CDC defines the replica status for CDC. properties: available: description: Available represents how many replicas are currently available. format: int32 type: integer total: description: Total defines the total size of the replica. format: int32 type: integer type: object cn: description: CN defines the replica status for CN. properties: available: description: Available represents how many replicas are currently available. format: int32 type: integer total: description: Total defines the total size of the replica. format: int32 type: integer type: object columnar: description: Columnar defines the replica status for CDC. properties: available: description: Available represents how many replicas are currently available. format: int32 type: integer total: description: Total defines the total size of the replica. format: int32 type: integer type: object dn: description: DN defines the replica status for DN. properties: available: description: Available represents how many replicas are currently available. format: int32 type: integer total: description: Total defines the total size of the replica. format: int32 type: integer type: object gms: description: GMS defines the replica status for GMS. properties: available: description: Available represents how many replicas are currently available. format: int32 type: integer total: description: Total defines the total size of the replica. format: int32 type: integer type: object type: object restarting: description: Restarting represents if pods need restart type: boolean restartingPods: description: RestartingPods represents pods need to restart properties: lastDeletedPod: type: string toDeletePod: items: type: string type: array type: object restartingType: description: RestartingType represents the type of restart type: string specSnapshot: description: SpecSnapshot represents the snapshot of some aspects of the observed spec. It should be updated atomically with the observed generation. properties: config: properties: cdc: description: CDC config properties: envs: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object type: object cn: description: CN config. properties: coldDataFileStorage: description: ColdDataFileStorage defines the file storage used to store cold data items: properties: engine: description: Engine describes the engine type of file storage pattern: ^(?i)innodb|mrg_myisam|blackhole|myisam|csv|archive|performance_schema|federated|local_disk|s3|oss$ type: string type: object type: array dynamic: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object enableAuditLog: type: boolean static: default: EnableCoroutine: true properties: AttendHtap: type: boolean EnableCoroutine: default: true type: boolean EnableJvmRemoteDebug: type: boolean EnableReplicaRead: type: boolean RPCProtocolVersion: anyOf: - type: integer - type: string default: 1 enum: - 1 - 2 - "1" - "2" - "" x-kubernetes-int-or-string: true ServerProperties: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object type: object type: object columnar: description: Columnar config properties: envs: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object type: object dn: description: DN config. properties: enableAuditLog: type: boolean envs: additionalProperties: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true type: object logDataSeparation: type: boolean logPurgeInterval: type: string mycnfOverwrite: type: string type: object type: object topology: properties: nodes: default: cn: replicas: 2 template: resources: limits: cpu: 4 memory: 8Gi dn: replicas: 2 template: hostNetwork: true resources: limits: cpu: 4 memory: 8Gi description: Node defines the replicas and template of components of the cluster. properties: cdc: properties: replicas: default: 2 format: int32 minimum: 0 type: integer template: default: resources: limits: cpu: 4 memory: 8Gi properties: hostNetwork: description: HostNetwork mode. type: boolean image: description: Image for CDC. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 type: object xReplicas: format: int32 minimum: 0 type: integer type: object cn: default: replicas: 2 template: resources: limits: cpu: 4 memory: 8Gi properties: replicas: default: 2 format: int32 minimum: 0 type: integer template: default: resources: limits: cpu: 4 memory: 8Gi properties: hostNetwork: description: HostNetwork mode. type: boolean image: description: Image for CN. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 type: object type: object columnar: properties: replicas: default: 2 format: int32 minimum: 0 type: integer template: default: resources: limits: cpu: 4 memory: 8Gi properties: hostNetwork: description: HostNetwork mode. type: boolean image: description: Image for Columnar. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 type: object type: object dn: default: replicas: 2 template: hostNetwork: true resources: limits: cpu: 4 memory: 8Gi properties: replicas: default: 2 format: int32 minimum: 1 type: integer template: default: hostNetwork: true resources: limits: cpu: 4 memory: 8Gi properties: diskQuota: anyOf: - type: integer - type: string description: DiskQuota for xstore. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true engine: description: Engine of xstore. Default is operator dependent. type: string hostNetwork: default: false description: HostNetwork mode. type: boolean image: description: Image for xstore. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 limits.io: 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: ResourceList is a set of (resource name, quantity) pairs. 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 serviceType: default: ClusterIP description: Service type for xstore's service. Useful when needs an external IP. Default is ClusterIP. type: string type: object type: object gms: properties: template: description: Template of GMS xstore. If not provided, the operator will use the template for DN as template for GMS. properties: diskQuota: anyOf: - type: integer - type: string description: DiskQuota for xstore. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true engine: description: Engine of xstore. Default is operator dependent. type: string hostNetwork: default: false description: HostNetwork mode. type: boolean image: description: Image for xstore. Should be replaced by default value if not present. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image (especially for the engine container). type: string imagePullSecrets: description: ImagePullSecrets represents the secrets for pulling private images. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: 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 type: object type: array resources: default: limits: cpu: 4 memory: 8Gi description: Resources. Default is limits of 4 cpu and 8Gi memory. 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 limits.io: 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: ResourceList is a set of (resource name, quantity) pairs. 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 serviceType: default: ClusterIP description: Service type for xstore's service. Useful when needs an external IP. Default is ClusterIP. type: string type: object type: object type: object rules: description: Rules defines the topology rules of components of the cluster. properties: components: properties: cdc: items: properties: name: type: string replicas: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array cn: items: properties: name: type: string replicas: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array columnar: items: properties: name: type: string replicas: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array dn: properties: nodeSets: items: properties: name: type: string replicas: default: 1 format: int32 minimum: 1 type: integer role: enum: - Candidate - Voter - Learner type: string selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array rolling: properties: replicas: format: int32 type: integer selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: object gms: properties: nodeSets: items: properties: name: type: string replicas: default: 1 format: int32 minimum: 1 type: integer role: enum: - Candidate - Voter - Learner type: string selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: array rolling: properties: replicas: format: int32 type: integer selector: properties: reference: type: string selector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: object type: object type: object selectors: items: properties: name: type: string nodeSelector: description: A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object type: array required: - nodeSelectorTerms type: object type: object type: array type: object version: description: Version defines the default image version of the all components. Default is empty. If not provided, one should specify the images manually. type: string type: object type: object stage: description: Stage is the current stage of the xstore. type: string statusForPrint: description: StatusForPrint represents the printable status of the cluster. properties: detailedVersion: description: DetailedVersion for the status of current detailed vesrion of the cluster, which is dynamically acquired when cluster is ready. type: string rebalanceProcess: description: RebalanceProgress for the status of data rebalance tasks. type: string replicaStatus: description: ReplicaStatus for the status of nodes' replicas. properties: cdc: description: CDC status, e.g. 1/2 or - when CDC nodes not requested. type: string cn: description: CN status, e.g. 1/2 type: string columnar: description: Columnar status, e.g. 1/2 or - when Columnar nodes not requested. type: string dn: description: DN status, e.g. 1/2 type: string gms: description: GMS status, e.g. 1/1 type: string type: object storageSize: description: StorageSize represents the total storage size that used by this cluster. The value is in IEC format and is simply gotten by accumulating the GMS' and DNs' storage sizes. type: string storageSizeUpdateTime: description: StorageSizeUpdateTime represents the last time that storage size is updated. It's used to control the frequency of the updating progress. format: date-time type: string type: object type: object type: object served: true storage: true subresources: status: {}