apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: drconfigs.operator.yugabyte.io spec: group: operator.yugabyte.io scope: Namespaced names: plural: drconfigs singular: drconfig kind: DrConfig categories: - all - yugabyte versions: - name: v1alpha1 subresources: status: {} served: true storage: true schema: openAPIV3Schema: description: Custom resource definition for YugabyteDB DR config. type: object properties: status: type: object description: Dr config status for the Dr config custom resource. properties: message: description: String log message from dr config controller type: string resourceUUID: description: Internal UUID of the dr config resource. type: string taskUUID: description: Internal UUID of the task associated with the dr config. type: string spec: type: object x-kubernetes-validations: - rule: self.sourceUniverse != self.targetUniverse message: '"The source and target universes cannot be the same" ' properties: sourceUniverse: description: 'Name of the source universe for which DrConfig needs to be setup ' type: string x-kubernetes-validations: - message: sourceUniverse cannot be changed rule: self == oldSelf targetUniverse: description: 'Name of the target universe for which DrConfig needs to be setup ' type: string x-kubernetes-validations: - message: targetUniverse cannot be changed rule: self == oldSelf databases: description: 'The list of databases for which replication needs to happen between the source and target universes ' type: array items: type: string minItems: 1 x-kubernetes-validations: - rule: self.all(db, size(db) > 0) message: Database names cannot be empty name: description: Name of the DR config type: string storageConfig: description: 'Storage configuration for the backup, should contain name of storage config object ' type: string required: - sourceUniverse - targetUniverse - databases - name - storageConfig