# Version: 20200918: 25ca1bc881f433d2a42c3b5f59da416f4ef6dc44 apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.4 creationTimestamp: null name: etcdlockservers.planetscale.com spec: group: planetscale.com names: kind: EtcdLockserver listKind: EtcdLockserverList plural: etcdlockservers shortNames: - etcdls singular: etcdlockserver scope: Namespaced subresources: status: {} validation: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: properties: advertisePeerURLs: items: type: string maxItems: 3 minItems: 3 type: array affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object clientService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object createClientService: type: boolean createPDB: type: boolean createPeerService: type: boolean dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraFlags: additionalProperties: type: string type: object extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array image: type: string imagePullPolicy: type: string imagePullSecrets: items: properties: name: type: string type: object type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array localMemberIndex: format: int32 maximum: 3 minimum: 1 type: integer peerService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array zone: type: string type: object status: properties: available: type: string clientServiceName: type: string observedGeneration: format: int64 type: integer type: object type: object version: v2 versions: - name: v2 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.4 creationTimestamp: null name: vitessbackups.planetscale.com spec: group: planetscale.com names: kind: VitessBackup listKind: VitessBackupList plural: vitessbackups shortNames: - vtb singular: vitessbackup scope: Namespaced validation: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: type: object status: properties: complete: type: boolean engine: type: string finishedTime: format: date-time type: string position: type: string startTime: format: date-time type: string storageDirectory: type: string storageName: type: string type: object type: object version: v2 versions: - name: v2 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.4 creationTimestamp: null name: vitessbackupstorages.planetscale.com spec: group: planetscale.com names: kind: VitessBackupStorage listKind: VitessBackupStorageList plural: vitessbackupstorages shortNames: - vtbs singular: vitessbackupstorage scope: Namespaced subresources: status: {} validation: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: properties: location: properties: annotations: additionalProperties: type: string type: object azblob: properties: account: minLength: 1 type: string authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object container: minLength: 1 type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string required: - account - authSecret - container type: object gcs: properties: authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object bucket: minLength: 1 type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string required: - bucket type: object name: maxLength: 25 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string s3: properties: authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object bucket: minLength: 1 type: string endpoint: type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string region: minLength: 1 type: string required: - bucket - region type: object volume: type: object x-kubernetes-preserve-unknown-fields: true type: object required: - location type: object status: properties: observedGeneration: format: int64 type: integer totalBackupCount: format: int32 type: integer type: object type: object version: v2 versions: - name: v2 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.4 creationTimestamp: null name: vitesscells.planetscale.com spec: group: planetscale.com names: kind: VitessCell listKind: VitessCellList plural: vitesscells shortNames: - vtc singular: vitesscell scope: Namespaced subresources: status: {} validation: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: properties: allCells: items: type: string type: array extraVitessFlags: additionalProperties: type: string type: object gateway: properties: affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object authentication: properties: static: properties: secret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object type: object type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraFlags: additionalProperties: type: string type: object extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array replicas: format: int32 minimum: 0 type: integer resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object secureTransport: properties: required: type: boolean tls: properties: certSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object clientCACertSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object keySecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object type: object type: object service: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: object globalLockserver: properties: address: type: string implementation: type: string rootPath: type: string required: - address - implementation - rootPath type: object imagePullPolicies: properties: mysqld: type: string mysqldExporter: type: string vtbackup: type: string vtctld: type: string vtgate: type: string vttablet: type: string type: object imagePullSecrets: items: properties: name: type: string type: object type: array images: properties: vtgate: type: string type: object lockserver: properties: etcd: properties: advertisePeerURLs: items: type: string maxItems: 3 minItems: 3 type: array affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object clientService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object createClientService: type: boolean createPDB: type: boolean createPeerService: type: boolean dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraFlags: additionalProperties: type: string type: object extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array image: type: string imagePullPolicy: type: string imagePullSecrets: items: properties: name: type: string type: object type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array localMemberIndex: format: int32 maximum: 3 minimum: 1 type: integer peerService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: object external: properties: address: type: string implementation: type: string rootPath: type: string required: - address - implementation - rootPath type: object type: object name: maxLength: 25 minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string topologyReconciliation: properties: pruneCells: type: boolean pruneKeyspaces: type: boolean pruneShardCells: type: boolean pruneShards: type: boolean pruneSrvKeyspaces: type: boolean pruneTablets: type: boolean registerCells: type: boolean registerCellsAliases: type: boolean type: object zone: type: string required: - allCells - globalLockserver - name type: object status: properties: gateway: properties: available: type: string serviceName: type: string type: object idle: type: string keyspaces: additionalProperties: type: object type: object lockserver: properties: etcd: properties: available: type: string clientServiceName: type: string observedGeneration: format: int64 type: integer type: object type: object observedGeneration: format: int64 type: integer type: object type: object version: v2 versions: - name: v2 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.4 creationTimestamp: null name: vitessclusters.planetscale.com spec: group: planetscale.com names: kind: VitessCluster listKind: VitessClusterList plural: vitessclusters shortNames: - vt singular: vitesscluster scope: Namespaced subresources: status: {} validation: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: properties: backup: properties: engine: enum: - builtin - xtrabackup type: string locations: items: properties: annotations: additionalProperties: type: string type: object azblob: properties: account: minLength: 1 type: string authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object container: minLength: 1 type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string required: - account - authSecret - container type: object gcs: properties: authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object bucket: minLength: 1 type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string required: - bucket type: object name: maxLength: 25 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string s3: properties: authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object bucket: minLength: 1 type: string endpoint: type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string region: minLength: 1 type: string required: - bucket - region type: object volume: type: object x-kubernetes-preserve-unknown-fields: true type: object minItems: 1 type: array required: - locations type: object cells: items: properties: gateway: properties: affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object authentication: properties: static: properties: secret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object type: object type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraFlags: additionalProperties: type: string type: object extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array replicas: format: int32 minimum: 0 type: integer resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object secureTransport: properties: required: type: boolean tls: properties: certSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object clientCACertSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object keySecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object type: object type: object service: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: object lockserver: properties: etcd: properties: advertisePeerURLs: items: type: string maxItems: 3 minItems: 3 type: array affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object clientService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object createClientService: type: boolean createPDB: type: boolean createPeerService: type: boolean dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraFlags: additionalProperties: type: string type: object extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array image: type: string imagePullPolicy: type: string imagePullSecrets: items: properties: name: type: string type: object type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array localMemberIndex: format: int32 maximum: 3 minimum: 1 type: integer peerService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: object external: properties: address: type: string implementation: type: string rootPath: type: string required: - address - implementation - rootPath type: object type: object name: maxLength: 25 minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string zone: type: string required: - name type: object type: array extraVitessFlags: additionalProperties: type: string type: object gatewayService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object globalLockserver: properties: etcd: properties: advertisePeerURLs: items: type: string maxItems: 3 minItems: 3 type: array affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object clientService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object createClientService: type: boolean createPDB: type: boolean createPeerService: type: boolean dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraFlags: additionalProperties: type: string type: object extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array image: type: string imagePullPolicy: type: string imagePullSecrets: items: properties: name: type: string type: object type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array localMemberIndex: format: int32 maximum: 3 minimum: 1 type: integer peerService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: object external: properties: address: type: string implementation: type: string rootPath: type: string required: - address - implementation - rootPath type: object type: object imagePullPolicies: properties: mysqld: type: string mysqldExporter: type: string vtbackup: type: string vtctld: type: string vtgate: type: string vttablet: type: string type: object imagePullSecrets: items: properties: name: type: string type: object type: array images: properties: mysqld: properties: mariadb103Compatible: type: string mariadbCompatible: type: string mysql56Compatible: type: string mysql80Compatible: type: string type: object mysqldExporter: type: string vtbackup: type: string vtctld: type: string vtgate: type: string vttablet: type: string type: object keyspaces: items: properties: annotations: additionalProperties: type: string type: object databaseName: type: string name: maxLength: 25 minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string partitionings: items: properties: custom: properties: shards: items: properties: annotations: additionalProperties: type: string type: object databaseInitScriptSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object keyRange: properties: end: pattern: ^([0-9a-f][0-9a-f])*$ type: string start: pattern: ^([0-9a-f][0-9a-f])*$ type: string type: object replication: properties: enforceSemiSync: type: boolean initializeBackup: type: boolean initializeMaster: type: boolean recoverRestartedMaster: type: boolean type: object tabletPools: items: properties: affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object backupLocationName: type: string cell: minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object externalDatastore: properties: credentialsSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object database: type: string host: type: string port: format: int32 maximum: 65535 minimum: 1 type: integer serverCACertSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object user: type: string required: - credentialsSecret - database - host - port - user type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array mysqld: properties: configOverrides: type: string resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object replicas: format: int32 minimum: 0 type: integer sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: enum: - replica - rdonly - externalmaster - externalreplica - externalrdonly type: string vttablet: properties: extraFlags: additionalProperties: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object required: - cell - replicas - type - vttablet type: object type: array required: - databaseInitScriptSecret - keyRange type: object type: array required: - shards type: object equal: properties: parts: format: int32 minimum: 1 type: integer shardTemplate: properties: annotations: additionalProperties: type: string type: object databaseInitScriptSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object replication: properties: enforceSemiSync: type: boolean initializeBackup: type: boolean initializeMaster: type: boolean recoverRestartedMaster: type: boolean type: object tabletPools: items: properties: affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object backupLocationName: type: string cell: minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object externalDatastore: properties: credentialsSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object database: type: string host: type: string port: format: int32 maximum: 65535 minimum: 1 type: integer serverCACertSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object user: type: string required: - credentialsSecret - database - host - port - user type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array mysqld: properties: configOverrides: type: string resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object replicas: format: int32 minimum: 0 type: integer sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: enum: - replica - rdonly - externalmaster - externalreplica - externalrdonly type: string vttablet: properties: extraFlags: additionalProperties: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object required: - cell - replicas - type - vttablet type: object type: array required: - databaseInitScriptSecret type: object required: - parts type: object type: object maxItems: 2 minItems: 1 type: array turndownPolicy: enum: - RequireIdle - Immediate type: string required: - name - partitionings type: object type: array tabletService: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object topologyReconciliation: properties: pruneCells: type: boolean pruneKeyspaces: type: boolean pruneShardCells: type: boolean pruneShards: type: boolean pruneSrvKeyspaces: type: boolean pruneTablets: type: boolean registerCells: type: boolean registerCellsAliases: type: boolean type: object updateStrategy: properties: external: properties: allowResourceChanges: items: type: string type: array type: object type: enum: - External - Immediate type: string type: object vitessDashboard: properties: affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object cells: items: type: string type: array extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraFlags: additionalProperties: type: string type: object extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array replicas: format: int32 type: integer resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object service: properties: annotations: additionalProperties: type: string type: object clusterIP: type: string type: object sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: object required: - cells type: object status: properties: cells: additionalProperties: properties: gatewayAvailable: type: string pendingChanges: type: string type: object type: object gatewayServiceName: type: string globalLockserver: properties: etcd: properties: available: type: string clientServiceName: type: string observedGeneration: format: int64 type: integer type: object type: object keyspaces: additionalProperties: properties: cells: items: type: string type: array desiredShards: format: int32 type: integer desiredTablets: format: int32 type: integer pendingChanges: type: string readyShards: format: int32 type: integer readyTablets: format: int32 type: integer shards: format: int32 type: integer tablets: format: int32 type: integer updatedShards: format: int32 type: integer updatedTablets: format: int32 type: integer type: object type: object observedGeneration: format: int64 type: integer orphanedCells: additionalProperties: properties: message: type: string reason: type: string required: - message - reason type: object type: object orphanedKeyspaces: additionalProperties: properties: message: type: string reason: type: string required: - message - reason type: object type: object vitessDashboard: properties: available: type: string serviceName: type: string type: object type: object type: object version: v2 versions: - name: v2 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.4 creationTimestamp: null name: vitesskeyspaces.planetscale.com spec: group: planetscale.com names: kind: VitessKeyspace listKind: VitessKeyspaceList plural: vitesskeyspaces shortNames: - vtk singular: vitesskeyspace scope: Namespaced subresources: status: {} validation: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: properties: annotations: additionalProperties: type: string type: object backupEngine: type: string backupLocations: items: properties: annotations: additionalProperties: type: string type: object azblob: properties: account: minLength: 1 type: string authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object container: minLength: 1 type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string required: - account - authSecret - container type: object gcs: properties: authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object bucket: minLength: 1 type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string required: - bucket type: object name: maxLength: 25 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string s3: properties: authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object bucket: minLength: 1 type: string endpoint: type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string region: minLength: 1 type: string required: - bucket - region type: object volume: type: object x-kubernetes-preserve-unknown-fields: true type: object type: array databaseName: type: string extraVitessFlags: additionalProperties: type: string type: object globalLockserver: properties: address: type: string implementation: type: string rootPath: type: string required: - address - implementation - rootPath type: object imagePullPolicies: properties: mysqld: type: string mysqldExporter: type: string vtbackup: type: string vtctld: type: string vtgate: type: string vttablet: type: string type: object imagePullSecrets: items: properties: name: type: string type: object type: array images: properties: mysqld: properties: mariadb103Compatible: type: string mariadbCompatible: type: string mysql56Compatible: type: string mysql80Compatible: type: string type: object mysqldExporter: type: string vtbackup: type: string vttablet: type: string type: object name: maxLength: 25 minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string partitionings: items: properties: custom: properties: shards: items: properties: annotations: additionalProperties: type: string type: object databaseInitScriptSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object keyRange: properties: end: pattern: ^([0-9a-f][0-9a-f])*$ type: string start: pattern: ^([0-9a-f][0-9a-f])*$ type: string type: object replication: properties: enforceSemiSync: type: boolean initializeBackup: type: boolean initializeMaster: type: boolean recoverRestartedMaster: type: boolean type: object tabletPools: items: properties: affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object backupLocationName: type: string cell: minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object externalDatastore: properties: credentialsSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object database: type: string host: type: string port: format: int32 maximum: 65535 minimum: 1 type: integer serverCACertSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object user: type: string required: - credentialsSecret - database - host - port - user type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array mysqld: properties: configOverrides: type: string resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object replicas: format: int32 minimum: 0 type: integer sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: enum: - replica - rdonly - externalmaster - externalreplica - externalrdonly type: string vttablet: properties: extraFlags: additionalProperties: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object required: - cell - replicas - type - vttablet type: object type: array required: - databaseInitScriptSecret - keyRange type: object type: array required: - shards type: object equal: properties: parts: format: int32 minimum: 1 type: integer shardTemplate: properties: annotations: additionalProperties: type: string type: object databaseInitScriptSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object replication: properties: enforceSemiSync: type: boolean initializeBackup: type: boolean initializeMaster: type: boolean recoverRestartedMaster: type: boolean type: object tabletPools: items: properties: affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object backupLocationName: type: string cell: minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object externalDatastore: properties: credentialsSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object database: type: string host: type: string port: format: int32 maximum: 65535 minimum: 1 type: integer serverCACertSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object user: type: string required: - credentialsSecret - database - host - port - user type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array mysqld: properties: configOverrides: type: string resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object replicas: format: int32 minimum: 0 type: integer sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: enum: - replica - rdonly - externalmaster - externalreplica - externalrdonly type: string vttablet: properties: extraFlags: additionalProperties: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object required: - cell - replicas - type - vttablet type: object type: array required: - databaseInitScriptSecret type: object required: - parts type: object type: object maxItems: 2 minItems: 1 type: array topologyReconciliation: properties: pruneCells: type: boolean pruneKeyspaces: type: boolean pruneShardCells: type: boolean pruneShards: type: boolean pruneSrvKeyspaces: type: boolean pruneTablets: type: boolean registerCells: type: boolean registerCellsAliases: type: boolean type: object turndownPolicy: enum: - RequireIdle - Immediate type: string updateStrategy: properties: external: properties: allowResourceChanges: items: type: string type: array type: object type: enum: - External - Immediate type: string type: object zoneMap: additionalProperties: type: string type: object required: - globalLockserver - name - partitionings - zoneMap type: object status: properties: conditions: items: properties: lastTransitionTime: format: date-time type: string message: type: string reason: type: string status: enum: - "True" - "False" - Unknown type: string type: type: string required: - status - type type: object type: array idle: type: string observedGeneration: format: int64 type: integer orphanedShards: additionalProperties: properties: message: type: string reason: type: string required: - message - reason type: object type: object partitionings: items: properties: servingWrites: type: string shardNames: items: type: string type: array type: object type: array resharding: properties: sourceShards: items: type: string type: array state: type: string targetShards: items: type: string type: array workflow: type: string required: - state - workflow type: object shards: additionalProperties: properties: cells: items: type: string type: array desiredTablets: format: int32 type: integer hasMaster: type: string pendingChanges: type: string readyTablets: format: int32 type: integer servingWrites: type: string tablets: format: int32 type: integer updatedTablets: format: int32 type: integer type: object type: object type: object type: object version: v2 versions: - name: v2 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.4 creationTimestamp: null name: vitessshards.planetscale.com spec: group: planetscale.com names: kind: VitessShard listKind: VitessShardList plural: vitessshards shortNames: - vts singular: vitessshard scope: Namespaced subresources: status: {} validation: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: properties: annotations: additionalProperties: type: string type: object backupEngine: type: string backupLocations: items: properties: annotations: additionalProperties: type: string type: object azblob: properties: account: minLength: 1 type: string authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object container: minLength: 1 type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string required: - account - authSecret - container type: object gcs: properties: authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object bucket: minLength: 1 type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string required: - bucket type: object name: maxLength: 25 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string s3: properties: authSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object bucket: minLength: 1 type: string endpoint: type: string keyPrefix: maxLength: 256 pattern: ^[^\r\n]*$ type: string region: minLength: 1 type: string required: - bucket - region type: object volume: type: object x-kubernetes-preserve-unknown-fields: true type: object type: array databaseInitScriptSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object databaseName: type: string extraVitessFlags: additionalProperties: type: string type: object globalLockserver: properties: address: type: string implementation: type: string rootPath: type: string required: - address - implementation - rootPath type: object imagePullPolicies: properties: mysqld: type: string mysqldExporter: type: string vtbackup: type: string vtctld: type: string vtgate: type: string vttablet: type: string type: object imagePullSecrets: items: properties: name: type: string type: object type: array images: properties: mysqld: properties: mariadb103Compatible: type: string mariadbCompatible: type: string mysql56Compatible: type: string mysql80Compatible: type: string type: object mysqldExporter: type: string vtbackup: type: string vttablet: type: string type: object keyRange: properties: end: pattern: ^([0-9a-f][0-9a-f])*$ type: string start: pattern: ^([0-9a-f][0-9a-f])*$ type: string type: object name: type: string replication: properties: enforceSemiSync: type: boolean initializeBackup: type: boolean initializeMaster: type: boolean recoverRestartedMaster: type: boolean type: object tabletPools: items: properties: affinity: type: object x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object backupLocationName: type: string cell: minLength: 1 pattern: ^[a-z0-9]([a-z0-9]*[a-z0-9])?$ type: string dataVolumeClaimTemplate: properties: accessModes: items: type: string type: array resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object selector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object storageClassName: type: string volumeMode: type: string volumeName: type: string type: object externalDatastore: properties: credentialsSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object database: type: string host: type: string port: format: int32 maximum: 65535 minimum: 1 type: integer serverCACertSecret: properties: key: type: string name: type: string volumeName: type: string required: - key type: object user: type: string required: - credentialsSecret - database - host - port - user type: object extraEnv: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object resourceFieldRef: properties: containerName: type: string divisor: type: string resource: type: string required: - resource type: object secretKeyRef: properties: key: type: string name: type: string optional: type: boolean required: - key type: object type: object required: - name type: object type: array extraLabels: additionalProperties: type: string type: object extraVolumeMounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array extraVolumes: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array initContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array mysqld: properties: configOverrides: type: string resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object replicas: format: int32 minimum: 0 type: integer sidecarContainers: items: required: - name type: object x-kubernetes-preserve-unknown-fields: true type: array type: enum: - replica - rdonly - externalmaster - externalreplica - externalrdonly type: string vttablet: properties: extraFlags: additionalProperties: type: string type: object resources: properties: limits: additionalProperties: type: string type: object requests: additionalProperties: type: string type: object type: object required: - resources type: object required: - cell - replicas - type - vttablet type: object type: array topologyReconciliation: properties: pruneCells: type: boolean pruneKeyspaces: type: boolean pruneShardCells: type: boolean pruneShards: type: boolean pruneSrvKeyspaces: type: boolean pruneTablets: type: boolean registerCells: type: boolean registerCellsAliases: type: boolean type: object updateStrategy: properties: external: properties: allowResourceChanges: items: type: string type: array type: object type: enum: - External - Immediate type: string type: object zoneMap: additionalProperties: type: string type: object required: - databaseInitScriptSecret - globalLockserver - images - keyRange - name - zoneMap type: object status: properties: backupLocations: items: properties: completeBackups: format: int32 type: integer incompleteBackups: format: int32 type: integer latestCompleteBackupTime: format: date-time type: string name: type: string required: - completeBackups - incompleteBackups type: object type: array cells: items: type: string type: array conditions: additionalProperties: properties: lastTransitionTime: format: date-time type: string message: type: string reason: type: string status: enum: - "True" - "False" - Unknown type: string required: - status type: object type: object hasInitialBackup: type: string hasMaster: type: string idle: type: string lowestPodGeneration: format: int64 type: integer masterAlias: type: string observedGeneration: format: int64 type: integer orphanedTablets: additionalProperties: properties: message: type: string reason: type: string required: - message - reason type: object type: object servingWrites: type: string tablets: additionalProperties: properties: available: type: string dataVolumeBound: type: string index: format: int32 type: integer pendingChanges: type: string poolType: type: string ready: type: string running: type: string type: type: string type: object type: object type: object type: object version: v2 versions: - name: v2 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: [] --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: vitess-operator rules: - apiGroups: - "" resources: - pods - services - endpoints - persistentvolumeclaims - events - configmaps - secrets verbs: - '*' - apiGroups: - "" resources: - namespaces verbs: - get - apiGroups: - apps resources: - deployments - daemonsets - replicasets - statefulsets verbs: - '*' - apiGroups: - policy resources: - poddisruptionbudgets verbs: - '*' - apiGroups: - apps resourceNames: - vitess-operator resources: - deployments/finalizers verbs: - update - apiGroups: - planetscale.com resources: - vitessclusters - vitessclusters/status - vitessclusters/finalizers - vitesscells - vitesscells/status - vitesscells/finalizers - vitesskeyspaces - vitesskeyspaces/status - vitesskeyspaces/finalizers - vitessshards - vitessshards/status - vitessshards/finalizers - etcdlockservers - etcdlockservers/status - etcdlockservers/finalizers - vitessbackups - vitessbackups/status - vitessbackups/finalizers - vitessbackupstorages - vitessbackupstorages/status - vitessbackupstorages/finalizers verbs: - '*' --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: vitess-operator roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: vitess-operator subjects: - kind: ServiceAccount name: vitess-operator --- apiVersion: scheduling.k8s.io/v1beta1 description: Vitess components (vttablet, vtgate, vtctld, etcd) globalDefault: false kind: PriorityClass metadata: name: vitess value: 1000 --- apiVersion: scheduling.k8s.io/v1beta1 description: The vitess-operator control plane. globalDefault: false kind: PriorityClass metadata: name: vitess-operator-control-plane value: 5000 --- apiVersion: apps/v1 kind: Deployment metadata: name: vitess-operator spec: replicas: 1 selector: matchLabels: app: vitess-operator template: metadata: labels: app: vitess-operator spec: containers: - args: - --logtostderr - -v=4 command: - vitess-operator env: - name: WATCH_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: PS_OPERATOR_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: PS_OPERATOR_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: OPERATOR_NAME value: vitess-operator image: planetscale/vitess-operator imagePullPolicy: IfNotPresent name: vitess-operator resources: limits: memory: 128Mi requests: cpu: 100m memory: 128Mi priorityClassName: vitess-operator-control-plane serviceAccountName: vitess-operator