diff --git a/deploy/crds/planetscale.com_vitessbackupschedules.yaml b/deploy/crds/planetscale.com_vitessbackupschedules.yaml index 10b95be0..f44d3b35 100644 --- a/deploy/crds/planetscale.com_vitessbackupschedules.yaml +++ b/deploy/crds/planetscale.com_vitessbackupschedules.yaml @@ -44,6 +44,10 @@ spec: - Forbid example: Forbid type: string + extraLabels: + additionalProperties: + type: string + type: object failedJobsHistoryLimit: format: int32 minimum: 0 diff --git a/deploy/crds/planetscale.com_vitessbackupstorages.yaml b/deploy/crds/planetscale.com_vitessbackupstorages.yaml index 5454136e..68d61d1a 100644 --- a/deploy/crds/planetscale.com_vitessbackupstorages.yaml +++ b/deploy/crds/planetscale.com_vitessbackupstorages.yaml @@ -28,6 +28,10 @@ spec: type: object spec: properties: + extraLabels: + additionalProperties: + type: string + type: object location: properties: annotations: diff --git a/deploy/crds/planetscale.com_vitessclusters.yaml b/deploy/crds/planetscale.com_vitessclusters.yaml index 97a6d2f1..262dbe5b 100644 --- a/deploy/crds/planetscale.com_vitessclusters.yaml +++ b/deploy/crds/planetscale.com_vitessclusters.yaml @@ -36,6 +36,10 @@ spec: - xtrabackup - mysqlshell type: string + extraLabels: + additionalProperties: + type: string + type: object locations: items: properties: diff --git a/docs/api.md b/docs/api.md index 213cf572..17510498 100644 --- a/docs/api.md +++ b/docs/api.md @@ -775,6 +775,20 @@ This is a list of VitessBackupScheduleTemplate where the “name” fiel across all the items of the list.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to pods created by backup schedules +and the VitessBackupStorage subcontroller. These labels will be applied to both the backup +schedule job pods and the subcontroller pod.

+ +

ConcurrencyPolicy @@ -2540,6 +2554,19 @@ Kubernetes core/v1.PullPolicy The PullPolicy used will be the same as the one used to pull the vtctld image.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to the pods created by VitessBackupSchedule. +This is populated from ClusterBackupSpec.ExtraLabels when the schedule is created.

+ + @@ -2628,6 +2655,19 @@ Kubernetes core/v1.PullPolicy The PullPolicy used will be the same as the one used to pull the vtctld image.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to the pods created by VitessBackupSchedule. +This is populated from ClusterBackupSpec.ExtraLabels when the schedule is created.

+ +

VitessBackupScheduleStatus @@ -3232,6 +3272,19 @@ VitessBackupSubcontrollerSpec

Subcontroller specifies any parameters needed for launching the VitessBackupStorage subcontroller pod.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to the VitessBackupStorage subcontroller pod. +This is populated from ClusterBackupSpec.ExtraLabels when the storage object is created.

+ + @@ -3293,6 +3346,19 @@ VitessBackupSubcontrollerSpec

Subcontroller specifies any parameters needed for launching the VitessBackupStorage subcontroller pod.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to the VitessBackupStorage subcontroller pod. +This is populated from ClusterBackupSpec.ExtraLabels when the storage object is created.

+ +

VitessBackupStorageStatus diff --git a/docs/api/index.html b/docs/api/index.html index 27e7ff20..102dd737 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -777,6 +777,20 @@

ClusterBackupSpec across all the items of the list.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to pods created by backup schedules +and the VitessBackupStorage subcontroller. These labels will be applied to both the backup +schedule job pods and the subcontroller pod.

+ +

ConcurrencyPolicy @@ -2542,6 +2556,19 @@

VitessBackupSchedule The PullPolicy used will be the same as the one used to pull the vtctld image.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to the pods created by VitessBackupSchedule. +This is populated from ClusterBackupSpec.ExtraLabels when the schedule is created.

+ + @@ -2630,6 +2657,19 @@

VitessBackupScheduleSpec The PullPolicy used will be the same as the one used to pull the vtctld image.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to the pods created by VitessBackupSchedule. +This is populated from ClusterBackupSpec.ExtraLabels when the schedule is created.

+ +

VitessBackupScheduleStatus @@ -3234,6 +3274,19 @@

VitessBackupStorage

Subcontroller specifies any parameters needed for launching the VitessBackupStorage subcontroller pod.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to the VitessBackupStorage subcontroller pod. +This is populated from ClusterBackupSpec.ExtraLabels when the storage object is created.

+ + @@ -3295,6 +3348,19 @@

VitessBackupStorageSpec

Subcontroller specifies any parameters needed for launching the VitessBackupStorage subcontroller pod.

+ + +extraLabels
+ +map[string]string + + + +(Optional) +

ExtraLabels can optionally be used to attach custom labels to the VitessBackupStorage subcontroller pod. +This is populated from ClusterBackupSpec.ExtraLabels when the storage object is created.

+ +

VitessBackupStorageStatus diff --git a/pkg/apis/planetscale/v2/vitessbackupschedule_types.go b/pkg/apis/planetscale/v2/vitessbackupschedule_types.go index 3e363853..a8894752 100644 --- a/pkg/apis/planetscale/v2/vitessbackupschedule_types.go +++ b/pkg/apis/planetscale/v2/vitessbackupschedule_types.go @@ -84,6 +84,11 @@ type VitessBackupScheduleSpec struct { // ImagePullPolicy defines the policy to pull the Docker image in the job's pod. // The PullPolicy used will be the same as the one used to pull the vtctld image. ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` + + // ExtraLabels can optionally be used to attach custom labels to the pods created by VitessBackupSchedule. + // This is populated from ClusterBackupSpec.ExtraLabels when the schedule is created. + // +optional + ExtraLabels map[string]string `json:"extraLabels,omitempty"` } // VitessBackupScheduleTemplate contains all the user-specific fields that the user will be diff --git a/pkg/apis/planetscale/v2/vitessbackupstorage_types.go b/pkg/apis/planetscale/v2/vitessbackupstorage_types.go index 776c0ed7..8c850532 100644 --- a/pkg/apis/planetscale/v2/vitessbackupstorage_types.go +++ b/pkg/apis/planetscale/v2/vitessbackupstorage_types.go @@ -61,6 +61,10 @@ type VitessBackupStorageSpec struct { Location VitessBackupLocation `json:"location"` // Subcontroller specifies any parameters needed for launching the VitessBackupStorage subcontroller pod. Subcontroller *VitessBackupSubcontrollerSpec `json:"subcontroller,omitempty"` + // ExtraLabels can optionally be used to attach custom labels to the VitessBackupStorage subcontroller pod. + // This is populated from ClusterBackupSpec.ExtraLabels when the storage object is created. + // +optional + ExtraLabels map[string]string `json:"extraLabels,omitempty"` } type VitessBackupSubcontrollerSpec struct { diff --git a/pkg/apis/planetscale/v2/vitesscluster_types.go b/pkg/apis/planetscale/v2/vitesscluster_types.go index 3b60361a..61f25ba7 100644 --- a/pkg/apis/planetscale/v2/vitesscluster_types.go +++ b/pkg/apis/planetscale/v2/vitesscluster_types.go @@ -327,6 +327,12 @@ type ClusterBackupSpec struct { // +patchMergeKey=name // +patchStrategy=merge Schedules []VitessBackupScheduleTemplate `json:"schedules,omitempty"` + + // ExtraLabels can optionally be used to attach custom labels to pods created by backup schedules + // and the VitessBackupStorage subcontroller. These labels will be applied to both the backup + // schedule job pods and the subcontroller pod. + // +optional + ExtraLabels map[string]string `json:"extraLabels,omitempty"` } // VitessBackupEngine is the backup implementation to use. diff --git a/pkg/apis/planetscale/v2/zz_generated.deepcopy.go b/pkg/apis/planetscale/v2/zz_generated.deepcopy.go index bc79476b..75d6700b 100644 --- a/pkg/apis/planetscale/v2/zz_generated.deepcopy.go +++ b/pkg/apis/planetscale/v2/zz_generated.deepcopy.go @@ -97,6 +97,13 @@ func (in *ClusterBackupSpec) DeepCopyInto(out *ClusterBackupSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ExtraLabels != nil { + in, out := &in.ExtraLabels, &out.ExtraLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBackupSpec. @@ -862,6 +869,13 @@ func (in *VitessBackupScheduleList) DeepCopyObject() runtime.Object { func (in *VitessBackupScheduleSpec) DeepCopyInto(out *VitessBackupScheduleSpec) { *out = *in in.VitessBackupScheduleTemplate.DeepCopyInto(&out.VitessBackupScheduleTemplate) + if in.ExtraLabels != nil { + in, out := &in.ExtraLabels, &out.ExtraLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VitessBackupScheduleSpec. @@ -1104,6 +1118,13 @@ func (in *VitessBackupStorageSpec) DeepCopyInto(out *VitessBackupStorageSpec) { *out = new(VitessBackupSubcontrollerSpec) **out = **in } + if in.ExtraLabels != nil { + in, out := &in.ExtraLabels, &out.ExtraLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VitessBackupStorageSpec. diff --git a/pkg/controller/vitessbackupschedule/vitessbackupschedule_controller.go b/pkg/controller/vitessbackupschedule/vitessbackupschedule_controller.go index 41eb4680..943f5ac7 100644 --- a/pkg/controller/vitessbackupschedule/vitessbackupschedule_controller.go +++ b/pkg/controller/vitessbackupschedule/vitessbackupschedule_controller.go @@ -43,6 +43,7 @@ import ( "planetscale.dev/vitess-operator/pkg/operator/reconciler" "planetscale.dev/vitess-operator/pkg/operator/results" "planetscale.dev/vitess-operator/pkg/operator/resync" + "planetscale.dev/vitess-operator/pkg/operator/update" "planetscale.dev/vitess-operator/pkg/operator/vitessbackup" "planetscale.dev/vitess-operator/pkg/operator/vttablet" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -616,6 +617,10 @@ func (r *ReconcileVitessBackupsSchedule) createJob( planetscalev2.KeyspaceLabel: strategy.Keyspace, planetscalev2.ShardLabel: vkr.SafeName(), } + // Merge user-provided extra labels. + if vbsc.Spec.ExtraLabels != nil { + update.Labels(&labels, vbsc.Spec.ExtraLabels) + } meta := metav1.ObjectMeta{ Labels: labels, @@ -629,6 +634,10 @@ func (r *ReconcileVitessBackupsSchedule) createJob( meta.Annotations[scheduledTimeAnnotation] = scheduledTime.Format(time.RFC3339) maps.Copy(meta.Labels, vbsc.Labels) + // Merge user-provided extra labels into meta as well. + if vbsc.Spec.ExtraLabels != nil { + update.Labels(&meta.Labels, vbsc.Spec.ExtraLabels) + } pod, vtbackupSpec, err := r.createJobPod(ctx, vbsc, strategy, name, vkr, labels) if err != nil { diff --git a/pkg/controller/vitessbackupstorage/reconcile_subcontroller.go b/pkg/controller/vitessbackupstorage/reconcile_subcontroller.go index 1cfa8695..cc2cb533 100644 --- a/pkg/controller/vitessbackupstorage/reconcile_subcontroller.go +++ b/pkg/controller/vitessbackupstorage/reconcile_subcontroller.go @@ -69,6 +69,10 @@ func (r *ReconcileVitessBackupStorage) reconcileSubcontroller(ctx context.Contex planetscalev2.ClusterLabel: clusterName, vitessbackup.LocationLabel: vbs.Spec.Location.Name, } + // Merge user-provided extra labels from ClusterBackupSpec. + if vbs.Spec.ExtraLabels != nil { + update.Labels(&labels, vbs.Spec.ExtraLabels) + } spec, err := r.newSubcontrollerPodSpec(ctx, vbs) if err != nil { diff --git a/pkg/controller/vitesscluster/reconcile_backup_storage.go b/pkg/controller/vitesscluster/reconcile_backup_storage.go index d8e4eb99..411dd663 100644 --- a/pkg/controller/vitesscluster/reconcile_backup_storage.go +++ b/pkg/controller/vitesscluster/reconcile_backup_storage.go @@ -50,7 +50,7 @@ func (r *ReconcileVitessCluster) reconcileBackupStorage(ctx context.Context, vt Name: vitessbackup.StorageObjectName(vt.Name, location.Name), } keys = append(keys, key) - vbsMap[key] = newVitessBackupStorage(key, labels, location, vt.Spec.Backup.Subcontroller) + vbsMap[key] = newVitessBackupStorage(key, labels, location, vt.Spec.Backup.Subcontroller, vt.Spec.Backup.ExtraLabels) } } @@ -72,7 +72,7 @@ func (r *ReconcileVitessCluster) reconcileBackupStorage(ctx context.Context, vt }) } -func newVitessBackupStorage(key client.ObjectKey, parentLabels map[string]string, location *planetscalev2.VitessBackupLocation, subcontroller *planetscalev2.VitessBackupSubcontrollerSpec) *planetscalev2.VitessBackupStorage { +func newVitessBackupStorage(key client.ObjectKey, parentLabels map[string]string, location *planetscalev2.VitessBackupLocation, subcontroller *planetscalev2.VitessBackupSubcontrollerSpec, extraLabels map[string]string) *planetscalev2.VitessBackupStorage { // Copy parent labels and add child-specific labels. labels := map[string]string{ vitessbackup.LocationLabel: location.Name, @@ -81,15 +81,25 @@ func newVitessBackupStorage(key client.ObjectKey, parentLabels map[string]string labels[k] = v } + spec := planetscalev2.VitessBackupStorageSpec{ + Location: *location, + Subcontroller: subcontroller, + } + + // Populate ExtraLabels from ClusterBackupSpec if available. + if extraLabels != nil { + spec.ExtraLabels = make(map[string]string, len(extraLabels)) + for k, v := range extraLabels { + spec.ExtraLabels[k] = v + } + } + return &planetscalev2.VitessBackupStorage{ ObjectMeta: metav1.ObjectMeta{ Namespace: key.Namespace, Name: key.Name, Labels: labels, }, - Spec: planetscalev2.VitessBackupStorageSpec{ - Location: *location, - Subcontroller: subcontroller, - }, + Spec: spec, } } diff --git a/pkg/controller/vitessshard/reconcile_backup_job.go b/pkg/controller/vitessshard/reconcile_backup_job.go index 1b6ae609..cf08812a 100644 --- a/pkg/controller/vitessshard/reconcile_backup_job.go +++ b/pkg/controller/vitessshard/reconcile_backup_job.go @@ -235,6 +235,7 @@ func vtbackupSpec(key client.ObjectKey, vts *planetscalev2.VitessShard, parentLa ExtraEnv: pool.ExtraEnv, ExtraVolumes: pool.ExtraVolumes, ExtraVolumeMounts: pool.ExtraVolumeMounts, + ExtraLabels: pool.ExtraLabels, Annotations: annotations, Affinity: pool.Affinity, Tolerations: pool.Tolerations, diff --git a/pkg/operator/vitessbackup/schedule.go b/pkg/operator/vitessbackup/schedule.go index 3a81b17c..fd9f47fd 100644 --- a/pkg/operator/vitessbackup/schedule.go +++ b/pkg/operator/vitessbackup/schedule.go @@ -32,22 +32,32 @@ func NewVitessBackupSchedule(key client.ObjectKey, vt *planetscalev2.VitessClust return nil } + spec := planetscalev2.VitessBackupScheduleSpec{ + // We simply re-apply the same template that was written by the user. + VitessBackupScheduleTemplate: *vbsc, + + Cluster: vt.Name, + + // To take backups we only care about having the vtctldclient installed in the container. + // For this reason, we re-use the vtctld Docker image and the same image pull policy. + Image: vt.Spec.Images.Vtctld, + ImagePullPolicy: vt.Spec.ImagePullPolicies.Vtctld, + } + + // Populate ExtraLabels from ClusterBackupSpec if available. + if vt.Spec.Backup.ExtraLabels != nil { + spec.ExtraLabels = make(map[string]string, len(vt.Spec.Backup.ExtraLabels)) + for k, v := range vt.Spec.Backup.ExtraLabels { + spec.ExtraLabels[k] = v + } + } + return &planetscalev2.VitessBackupSchedule{ ObjectMeta: metav1.ObjectMeta{ Name: key.Name, Namespace: key.Namespace, Labels: labels, }, - Spec: planetscalev2.VitessBackupScheduleSpec{ - // We simply re-apply the same template that was written by the user. - VitessBackupScheduleTemplate: *vbsc, - - Cluster: vt.Name, - - // To take backups we only care about having the vtctldclient installed in the container. - // For this reason, we re-use the vtctld Docker image and the same image pull policy. - Image: vt.Spec.Images.Vtctld, - ImagePullPolicy: vt.Spec.ImagePullPolicies.Vtctld, - }, + Spec: spec, } } diff --git a/pkg/operator/vttablet/vtbackup_pod.go b/pkg/operator/vttablet/vtbackup_pod.go index f4c0a957..6964313c 100644 --- a/pkg/operator/vttablet/vtbackup_pod.go +++ b/pkg/operator/vttablet/vtbackup_pod.go @@ -193,6 +193,9 @@ func NewBackupPod(key client.ObjectKey, backupSpec *BackupSpec, mysqldImage stri }, } + // Apply ExtraLabels to the pod, similar to regular vttablet pods. + update.Labels(&pod.Labels, tabletSpec.ExtraLabels) + if planetscalev2.DefaultVitessServiceAccount != "" { pod.Spec.ServiceAccountName = planetscalev2.DefaultVitessServiceAccount } diff --git a/test/endtoend/operator/operator-latest.yaml b/test/endtoend/operator/operator-latest.yaml index 4a2308ff..8ff8cc2c 100644 --- a/test/endtoend/operator/operator-latest.yaml +++ b/test/endtoend/operator/operator-latest.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.2 + controller-gen.kubebuilder.io/version: v0.20.1 name: etcdlockservers.planetscale.com spec: group: planetscale.com @@ -11,437 +11,281 @@ spec: listKind: EtcdLockserverList plural: etcdlockservers shortNames: - - etcdls + - etcdls singular: etcdlockserver scope: Namespaced versions: - - name: v2 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - advertisePeerURLs: - items: - type: string - maxItems: 3 - minItems: 3 - type: array - affinity: - 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 - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - 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 - 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 - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: + - name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + advertisePeerURLs: + items: + type: string + maxItems: 3 + minItems: 3 + type: array + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + clientService: + properties: + annotations: + additionalProperties: type: string - volumeName: + type: object + clusterIP: + type: string + type: object + createClientService: + type: boolean + createPDB: + type: boolean + createPeerService: + type: boolean + dataVolumeClaimTemplate: + properties: + accessModes: + items: type: string - type: object - extraEnv: - items: + type: array + x-kubernetes-list-type: atomic + dataSource: properties: - name: + apiGroup: type: string - value: + kind: + type: string + name: type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object required: - - name + - kind + - name type: object - type: array - extraFlags: - additionalProperties: - type: string - type: object - extraLabels: - additionalProperties: - type: string - type: object - extraVolumeMounts: - items: + x-kubernetes-map-type: atomic + dataSourceRef: properties: - mountPath: + apiGroup: type: string - mountPropagation: + kind: type: string name: type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: + namespace: type: string required: - - mountPath - - name + - kind + - name type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - image: - type: string - imagePullPolicy: - type: string - imagePullSecrets: - items: + resources: properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - initContainers: - x-kubernetes-preserve-unknown-fields: true - localMemberIndex: - format: int32 - maximum: 3 - minimum: 1 - type: integer - peerService: - properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: + 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 - type: object - requests: - additionalProperties: - anyOf: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + 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 - type: object - type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - zone: - type: string - type: object - status: - properties: - available: - type: string - clientServiceName: - type: string - observedGeneration: - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - name: vitessbackups.planetscale.com -spec: - group: planetscale.com - names: - kind: VitessBackup - listKind: VitessBackupList - plural: vitessbackups - shortNames: - - vtb - singular: vitessbackup - scope: Namespaced - versions: - - name: v2 - schema: - 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 - served: true - storage: true ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - name: vitessbackupschedules.planetscale.com -spec: - group: planetscale.com - names: - kind: VitessBackupSchedule - listKind: VitessBackupScheduleList - plural: vitessbackupschedules - singular: vitessbackupschedule - scope: Namespaced - versions: - - name: v2 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - allowedMissedRun: - minimum: 0 - type: integer - annotations: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraFlags: additionalProperties: type: string type: object - cluster: - type: string - concurrencyPolicy: - default: Forbid - enum: - - Allow - - Forbid - example: Forbid - type: string - failedJobsHistoryLimit: - format: int32 - minimum: 0 - type: integer - frequency: - type: string + extraLabels: + additionalProperties: + type: string + type: object + extraVolumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true image: type: string imagePullPolicy: type: string - jobTimeoutMinute: - default: 10 + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + initContainers: + x-kubernetes-preserve-unknown-fields: true + localMemberIndex: format: int32 - minimum: 0 + maximum: 3 + minimum: 1 type: integer - name: - example: every-day - minLength: 1 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$ - type: string + peerService: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + type: object resources: properties: claims: @@ -475,91 +319,22 @@ spec: x-kubernetes-int-or-string: true type: object type: object - schedule: - example: 0 0 * * * - minLength: 0 + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + zone: type: string - startingDeadlineSeconds: - format: int64 - minimum: 0 - type: integer - strategies: - items: - properties: - extraFlags: - additionalProperties: - type: string - type: object - keyspace: - example: commerce - type: string - name: - type: string - scope: - enum: - - Shard - - Keyspace - - Cluster - type: string - shard: - example: '-' - type: string - required: - - name - type: object - minItems: 1 - type: array - successfulJobsHistoryLimit: - format: int32 - minimum: 0 - type: integer - suspend: - type: boolean - required: - - cluster - - name - - resources - - strategies type: object status: properties: - active: - items: - properties: - apiVersion: - type: string - fieldPath: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - resourceVersion: - type: string - uid: - type: string - type: object - x-kubernetes-map-type: atomic - type: array - generatedSchedules: - additionalProperties: - type: string - type: object - lastScheduledTime: - format: date-time + available: type: string - lastScheduledTimes: - additionalProperties: - format: date-time - type: string - type: object - nextScheduledTimes: - additionalProperties: - format: date-time - type: string - type: object + clientServiceName: + type: string + observedGeneration: + format: int64 + type: integer type: object type: object served: true @@ -571,4046 +346,2284 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - name: vitessbackupstorages.planetscale.com + controller-gen.kubebuilder.io/version: v0.20.1 + name: vitessbackups.planetscale.com spec: group: planetscale.com names: - kind: VitessBackupStorage - listKind: VitessBackupStorageList - plural: vitessbackupstorages + kind: VitessBackup + listKind: VitessBackupList + plural: vitessbackups shortNames: - - vtbs - singular: vitessbackupstorage + - vtb + singular: vitessbackup scope: Namespaced versions: - - name: v2 - schema: - 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 - ceph: - properties: - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - required: - - authSecret - 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: 63 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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 - forcePathStyle: - type: boolean - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ - type: string - minPartSize: - format: int64 - type: integer - region: - minLength: 1 - type: string - required: - - bucket - - region - type: object - volume: - x-kubernetes-preserve-unknown-fields: true - volumeSubPath: - type: string - type: object - subcontroller: - properties: - serviceAccountName: - type: string - type: object - required: - - location - type: object - status: - properties: - observedGeneration: - format: int64 - type: integer - totalBackupCount: - format: int32 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} + - name: v2 + schema: + 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 + served: true + storage: true --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - name: vitesscells.planetscale.com + controller-gen.kubebuilder.io/version: v0.20.1 + name: vitessbackupschedules.planetscale.com spec: group: planetscale.com names: - kind: VitessCell - listKind: VitessCellList - plural: vitesscells - shortNames: - - vtc - singular: vitesscell + kind: VitessBackupSchedule + listKind: VitessBackupScheduleList + plural: vitessbackupschedules + singular: vitessbackupschedule scope: Namespaced versions: - - name: v2 - schema: - 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: + - name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + allowedMissedRun: + minimum: 0 + type: integer + annotations: + additionalProperties: + type: string + type: object + cluster: + type: string + concurrencyPolicy: + default: Forbid + enum: + - Allow + - Forbid + example: Forbid + type: string + extraLabels: + additionalProperties: + type: string + type: object + failedJobsHistoryLimit: + format: int32 + minimum: 0 + type: integer + frequency: + type: string + image: + type: string + imagePullPolicy: + type: string + jobTimeoutMinute: + default: 10 + format: int32 + minimum: 0 + type: integer + name: + example: every-day + minLength: 1 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$ + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + schedule: + example: 0 0 * * * + minLength: 0 + type: string + startingDeadlineSeconds: + format: int64 + minimum: 0 + type: integer + strategies: + items: properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: + extraFlags: 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 - autoscaler: - properties: - behavior: - properties: - scaleDown: - properties: - policies: - items: - properties: - periodSeconds: - format: int32 - type: integer - type: - type: string - value: - format: int32 - type: integer - required: - - periodSeconds - - type - - value - type: object - type: array - x-kubernetes-list-type: atomic - selectPolicy: - type: string - stabilizationWindowSeconds: - format: int32 - type: integer - type: object - scaleUp: - properties: - policies: - items: - properties: - periodSeconds: - format: int32 - type: integer - type: - type: string - value: - format: int32 - type: integer - required: - - periodSeconds - - type - - value - type: object - type: array - x-kubernetes-list-type: atomic - selectPolicy: - type: string - stabilizationWindowSeconds: - format: int32 - type: integer - type: object - type: object - maxReplicas: - format: int32 - minimum: 0 - type: integer - metrics: - items: - properties: - containerResource: - properties: - container: - type: string - name: - type: string - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - properties: - metric: - properties: - name: - type: string - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - metric - - target - type: object - object: - properties: - describedObject: - properties: - apiVersion: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - metric: - properties: - name: - type: string - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - properties: - metric: - properties: - name: - type: string - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - metric - - target - type: object - resource: - properties: - name: - type: string - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - name - - target - type: object - type: - type: string - required: - - type - type: object - type: array - x-kubernetes-list-type: atomic - minReplicas: - format: int32 - minimum: 0 - type: integer - type: object - extraEnv: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - replicas: - format: int32 - minimum: 0 - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - 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: - x-kubernetes-preserve-unknown-fields: true - strategy: - properties: - rollingUpdate: - properties: - maxSurge: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: - type: string - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - tolerations: - x-kubernetes-preserve-unknown-fields: true - topologySpreadConstraints: - x-kubernetes-preserve-unknown-fields: true - 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 - vtadmin: - type: string - vtbackup: - type: string - vtctld: - type: string - vtgate: - type: string - vtorc: - type: string - vttablet: - type: string - type: object - imagePullSecrets: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - images: - properties: - vtgate: - type: string - type: object - lockserver: - properties: - cellInfoAddress: - type: string - etcd: - properties: - advertisePeerURLs: - items: - type: string - maxItems: 3 - minItems: 3 - type: array - affinity: - 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 - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - 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 - 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 - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - image: - type: string - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - initContainers: - x-kubernetes-preserve-unknown-fields: true - localMemberIndex: - format: int32 - maximum: 3 - minimum: 1 - type: integer - peerService: - properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - type: object - external: - properties: - address: - type: string - implementation: - type: string - rootPath: - type: string - required: - - address - - implementation - - rootPath - type: object - type: object - name: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-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 - labelSelector: - type: string - replicas: - format: int32 - minimum: 0 - type: integer - 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 - served: true - storage: true - subresources: - scale: - labelSelectorPath: .status.gateway.labelSelector - specReplicasPath: .spec.gateway.replicas - statusReplicasPath: .status.gateway.replicas - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - name: vitessclusters.planetscale.com -spec: - group: planetscale.com - names: - kind: VitessCluster - listKind: VitessClusterList - plural: vitessclusters - shortNames: - - vt - singular: vitesscluster - scope: Namespaced - versions: - - name: v2 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - backup: - properties: - engine: - enum: - - builtin - - xtrabackup - - mysqlshell - 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 - ceph: - properties: - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - required: - - authSecret - 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: 63 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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 - forcePathStyle: - type: boolean - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ - type: string - minPartSize: - format: int64 - type: integer - region: - minLength: 1 - type: string - required: - - bucket - - region - type: object - volume: - x-kubernetes-preserve-unknown-fields: true - volumeSubPath: - type: string - type: object - minItems: 1 - type: array - schedules: - items: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - allowedMissedRun: - minimum: 0 - type: integer - annotations: - additionalProperties: - type: string - type: object - concurrencyPolicy: - default: Forbid - enum: - - Allow - - Forbid - example: Forbid - type: string - failedJobsHistoryLimit: - format: int32 - minimum: 0 - type: integer - frequency: - type: string - jobTimeoutMinute: - default: 10 - format: int32 - minimum: 0 - type: integer - name: - example: every-day - minLength: 1 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$ - type: string - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - schedule: - example: 0 0 * * * - minLength: 0 - type: string - startingDeadlineSeconds: - format: int64 - minimum: 0 - type: integer - strategies: - items: - properties: - extraFlags: - additionalProperties: - type: string - type: object - keyspace: - example: commerce - type: string - name: - type: string - scope: - enum: - - Shard - - Keyspace - - Cluster - type: string - shard: - example: '-' - type: string - required: - - name - type: object - minItems: 1 - type: array - successfulJobsHistoryLimit: - format: int32 - minimum: 0 - type: integer - suspend: - type: boolean - required: - - name - - resources - - strategies - type: object - type: array - subcontroller: - properties: - serviceAccountName: - type: string - type: object - required: - - locations - type: object - cells: - items: - properties: - gateway: - properties: - affinity: - 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 - autoscaler: - properties: - behavior: - properties: - scaleDown: - properties: - policies: - items: - properties: - periodSeconds: - format: int32 - type: integer - type: - type: string - value: - format: int32 - type: integer - required: - - periodSeconds - - type - - value - type: object - type: array - x-kubernetes-list-type: atomic - selectPolicy: - type: string - stabilizationWindowSeconds: - format: int32 - type: integer - tolerance: - 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 - type: object - scaleUp: - properties: - policies: - items: - properties: - periodSeconds: - format: int32 - type: integer - type: - type: string - value: - format: int32 - type: integer - required: - - periodSeconds - - type - - value - type: object - type: array - x-kubernetes-list-type: atomic - selectPolicy: - type: string - stabilizationWindowSeconds: - format: int32 - type: integer - tolerance: - 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 - type: object - type: object - maxReplicas: - format: int32 - minimum: 0 - type: integer - metrics: - items: - properties: - containerResource: - properties: - container: - type: string - name: - type: string - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - properties: - metric: - properties: - name: - type: string - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - metric - - target - type: object - object: - properties: - describedObject: - properties: - apiVersion: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - metric: - properties: - name: - type: string - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - properties: - metric: - properties: - name: - type: string - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - metric - - target - type: object - resource: - properties: - name: - type: string - target: - properties: - averageUtilization: - format: int32 - type: integer - averageValue: - 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 - type: - type: string - value: - 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 - required: - - type - type: object - required: - - name - - target - type: object - type: - type: string - required: - - type - type: object - type: array - x-kubernetes-list-type: atomic - minReplicas: - format: int32 - minimum: 0 - type: integer - type: object - extraEnv: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - fileKeyRef: - properties: - key: - type: string - optional: - default: false - type: boolean - path: - type: string - volumeName: - type: string - required: - - key - - path - - volumeName - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - stopSignal: - type: string - type: object - replicas: - format: int32 - minimum: 0 - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - 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: - x-kubernetes-preserve-unknown-fields: true - strategy: - properties: - rollingUpdate: - properties: - maxSurge: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: - type: string - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - tolerations: - x-kubernetes-preserve-unknown-fields: true - topologySpreadConstraints: - x-kubernetes-preserve-unknown-fields: true - type: object - lockserver: - properties: - cellInfoAddress: - type: string - etcd: - properties: - advertisePeerURLs: - items: - type: string - maxItems: 3 - minItems: 3 - type: array - affinity: - 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 - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - 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 - 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 - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - fileKeyRef: - properties: - key: - type: string - optional: - default: false - type: boolean - path: - type: string - volumeName: - type: string - required: - - key - - path - - volumeName - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - image: - type: string - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - initContainers: - x-kubernetes-preserve-unknown-fields: true - localMemberIndex: - format: int32 - maximum: 3 - minimum: 1 - type: integer - peerService: - properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - type: object - external: - properties: - address: - type: string - implementation: - type: string - rootPath: - type: string - required: - - address - - implementation - - rootPath - type: object - type: object - name: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-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: - cellInfoAddress: - type: string - etcd: - properties: - advertisePeerURLs: - items: - type: string - maxItems: 3 - minItems: 3 - type: array - affinity: - 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 - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - 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 - 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 - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - fileKeyRef: - properties: - key: - type: string - optional: - default: false - type: boolean - path: - type: string - volumeName: - type: string - required: - - key - - path - - volumeName - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - image: - type: string - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - initContainers: - x-kubernetes-preserve-unknown-fields: true - localMemberIndex: - format: int32 - maximum: 3 - minimum: 1 - type: integer - peerService: - properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - 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 - vtadmin: - type: string - vtbackup: - type: string - vtctld: - type: string - vtgate: - type: string - vtorc: - type: string - vttablet: - type: string - type: object - imagePullSecrets: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - images: - properties: - mysqld: - properties: - mariadb103Compatible: - type: string - mariadbCompatible: - type: string - mysql56Compatible: - type: string - mysql80Compatible: - type: string - type: object - mysqldExporter: - type: string - vtadmin: - type: string - vtbackup: - type: string - vtctld: - type: string - vtgate: - type: string - vtorc: - type: string - vttablet: - type: string - type: object - keyspaces: - items: - properties: - annotations: - additionalProperties: - type: string - type: object - databaseName: - type: string - durabilityPolicy: - type: string - images: - properties: - mysqld: - properties: - mysql56Compatible: - type: string - mysql80Compatible: - type: string - type: object - mysqldExporter: - type: string - vtbackup: - type: string - vtorc: - type: string - vttablet: - type: string - type: object - name: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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: - initializeBackup: - type: boolean - initializeMaster: - type: boolean - recoverRestartedMaster: - type: boolean - type: object - tabletPools: - items: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: - type: string - type: object - backupLocationName: - type: string - cell: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ - type: string - dataVolumeClaimTemplate: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - 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 - 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 - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - fileKeyRef: - properties: - key: - type: string - optional: - default: false - type: boolean - path: - type: string - volumeName: - type: string - required: - - key - - path - - volumeName - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: + keyspace: + example: commerce + type: string + name: + type: string + scope: + enum: + - Shard + - Keyspace + - Cluster + type: string + shard: + example: '-' + type: string + required: + - name + type: object + minItems: 1 + type: array + successfulJobsHistoryLimit: + format: int32 + minimum: 0 + type: integer + suspend: + type: boolean + required: + - cluster + - name + - resources + - strategies + type: object + status: + properties: + active: + items: + properties: + apiVersion: + type: string + fieldPath: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + resourceVersion: + type: string + uid: + type: string + type: object + x-kubernetes-map-type: atomic + type: array + generatedSchedules: + additionalProperties: + type: string + type: object + lastScheduledTime: + format: date-time + type: string + lastScheduledTimes: + additionalProperties: + format: date-time + type: string + type: object + nextScheduledTimes: + additionalProperties: + format: date-time + type: string + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.20.1 + name: vitessbackupstorages.planetscale.com +spec: + group: planetscale.com + names: + kind: VitessBackupStorage + listKind: VitessBackupStorageList + plural: vitessbackupstorages + shortNames: + - vtbs + singular: vitessbackupstorage + scope: Namespaced + versions: + - name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + extraLabels: + additionalProperties: + type: string + type: object + 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 + ceph: + properties: + authSecret: + properties: + key: + type: string + name: + type: string + volumeName: + type: string + required: + - key + type: object + required: + - authSecret + 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: 63 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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 + forcePathStyle: + type: boolean + keyPrefix: + maxLength: 256 + pattern: ^[^\r\n]*$ + type: string + minPartSize: + format: int64 + type: integer + region: + minLength: 1 + type: string + required: + - bucket + - region + type: object + volume: + x-kubernetes-preserve-unknown-fields: true + volumeSubPath: + type: string + type: object + subcontroller: + properties: + serviceAccountName: + type: string + type: object + required: + - location + type: object + status: + properties: + observedGeneration: + format: int64 + type: integer + totalBackupCount: + format: int32 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.20.1 + name: vitesscells.planetscale.com +spec: + group: planetscale.com + names: + kind: VitessCell + listKind: VitessCellList + plural: vitesscells + shortNames: + - vtc + singular: vitesscell + scope: Namespaced + versions: + - name: v2 + schema: + 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: + 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 + autoscaler: + properties: + behavior: + properties: + scaleDown: + properties: + policies: + items: + properties: + periodSeconds: + format: int32 + type: integer + type: + type: string + value: + format: int32 + type: integer + required: + - periodSeconds + - type + - value + type: object + type: array + x-kubernetes-list-type: atomic + selectPolicy: + type: string + stabilizationWindowSeconds: + format: int32 + type: integer + tolerance: + 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 + type: object + scaleUp: + properties: + policies: + items: + properties: + periodSeconds: + format: int32 + type: integer + type: + type: string + value: + format: int32 + type: integer + required: + - periodSeconds + - type + - value + type: object + type: array + x-kubernetes-list-type: atomic + selectPolicy: + type: string + stabilizationWindowSeconds: + format: int32 + type: integer + tolerance: + 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 + type: object + type: object + maxReplicas: + format: int32 + minimum: 0 + type: integer + metrics: + items: + properties: + containerResource: + properties: + container: + type: string + name: + type: string + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object + required: + - container + - name + - target + type: object + external: + properties: + metric: + properties: + name: + type: string + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true - mysqld: + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + required: + - name + type: object + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object + required: + - metric + - target + type: object + object: + properties: + describedObject: + properties: + apiVersion: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + metric: + properties: + name: + type: string + selector: + properties: + matchExpressions: + items: properties: - configOverrides: + key: type: string - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic required: - - resources + - key + - operator type: object - mysqldExporter: + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + required: + - name + type: object + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object + required: + - describedObject + - metric + - target + type: object + pods: + properties: + metric: + properties: + name: + type: string + selector: + properties: + matchExpressions: + items: properties: - extraFlags: - additionalProperties: + key: + type: string + operator: + type: string + values: + items: type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator type: object - name: - default: "" + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + required: + - name + type: object + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object + required: + - metric + - target + type: object + resource: + properties: + name: + type: string + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object + required: + - name + - target + type: object + type: + type: string + required: + - type + type: object + type: array + x-kubernetes-list-type: atomic + minReplicas: + format: int32 + minimum: 0 + type: integer + type: object + extraEnv: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + replicas: + format: int32 + minimum: 0 + type: integer + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + 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: + x-kubernetes-preserve-unknown-fields: true + strategy: + properties: + rollingUpdate: + properties: + maxSurge: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + maxUnavailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + type: + type: string + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true + 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 + vtadmin: + type: string + vtbackup: + type: string + vtctld: + type: string + vtgate: + type: string + vtorc: + type: string + vttablet: + type: string + type: object + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + images: + properties: + vtgate: + type: string + type: object + lockserver: + properties: + cellInfoAddress: + type: string + etcd: + properties: + advertisePeerURLs: + items: + type: string + maxItems: 3 + minItems: 3 + type: array + affinity: + 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 + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + 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 + 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 + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + initContainers: + x-kubernetes-preserve-unknown-fields: true + localMemberIndex: + format: int32 + maximum: 3 + minimum: 1 + type: integer + peerService: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + type: object + external: + properties: + address: + type: string + implementation: + type: string + rootPath: + type: string + required: + - address + - implementation + - rootPath + type: object + type: object + name: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-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 + labelSelector: + type: string + replicas: + format: int32 + minimum: 0 + type: integer + 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 + served: true + storage: true + subresources: + scale: + labelSelectorPath: .status.gateway.labelSelector + specReplicasPath: .spec.gateway.replicas + statusReplicasPath: .status.gateway.replicas + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.20.1 + name: vitessclusters.planetscale.com +spec: + group: planetscale.com + names: + kind: VitessCluster + listKind: VitessClusterList + plural: vitessclusters + shortNames: + - vt + singular: vitesscluster + scope: Namespaced + versions: + - name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + backup: + properties: + engine: + enum: + - builtin + - xtrabackup + - mysqlshell + type: string + extraLabels: + additionalProperties: + type: string + type: object + 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 + ceph: + properties: + authSecret: + properties: + key: + type: string + name: + type: string + volumeName: + type: string + required: + - key + type: object + required: + - authSecret + 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: 63 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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 + forcePathStyle: + type: boolean + keyPrefix: + maxLength: 256 + pattern: ^[^\r\n]*$ + type: string + minPartSize: + format: int64 + type: integer + region: + minLength: 1 + type: string + required: + - bucket + - region + type: object + volume: + x-kubernetes-preserve-unknown-fields: true + volumeSubPath: + type: string + type: object + minItems: 1 + type: array + schedules: + items: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + allowedMissedRun: + minimum: 0 + type: integer + annotations: + additionalProperties: + type: string + type: object + concurrencyPolicy: + default: Forbid + enum: + - Allow + - Forbid + example: Forbid + type: string + failedJobsHistoryLimit: + format: int32 + minimum: 0 + type: integer + frequency: + type: string + jobTimeoutMinute: + default: 10 + format: int32 + minimum: 0 + type: integer + name: + example: every-day + minLength: 1 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$ + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + schedule: + example: 0 0 * * * + minLength: 0 + type: string + startingDeadlineSeconds: + format: int64 + minimum: 0 + type: integer + strategies: + items: + properties: + extraFlags: + additionalProperties: + type: string + type: object + keyspace: + example: commerce + type: string + name: + type: string + scope: + enum: + - Shard + - Keyspace + - Cluster + type: string + shard: + example: '-' + type: string + required: + - name + type: object + minItems: 1 + type: array + successfulJobsHistoryLimit: + format: int32 + minimum: 0 + type: integer + suspend: + type: boolean + required: + - name + - resources + - strategies + type: object + type: array + subcontroller: + properties: + serviceAccountName: + type: string + type: object + required: + - locations + type: object + cells: + items: + properties: + gateway: + properties: + affinity: + 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 + autoscaler: + properties: + behavior: + properties: + scaleDown: + properties: + policies: + items: + properties: + periodSeconds: + format: int32 + type: integer + type: type: string - replicas: + value: + format: int32 + type: integer + required: + - periodSeconds + - type + - value + type: object + type: array + x-kubernetes-list-type: atomic + selectPolicy: + type: string + stabilizationWindowSeconds: + format: int32 + type: integer + tolerance: + 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 + type: object + scaleUp: + properties: + policies: + items: + properties: + periodSeconds: format: int32 - minimum: 0 type: integer - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - topologySpreadConstraints: - x-kubernetes-preserve-unknown-fields: true type: - enum: - - replica - - rdonly - - externalmaster - - externalreplica - - externalrdonly type: string - vttablet: - properties: - extraFlags: - additionalProperties: - type: string - type: object - lifecycle: - x-kubernetes-preserve-unknown-fields: true - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - vtbackupExtraFlags: - additionalProperties: - type: string - type: object - required: - - resources - type: object + value: + format: int32 + type: integer required: - - cell - - replicas + - periodSeconds - type - - vttablet + - value type: object type: array - x-kubernetes-list-map-keys: - - type - - cell - - name - x-kubernetes-list-type: map - required: - - databaseInitScriptSecret - - keyRange + x-kubernetes-list-type: atomic + selectPolicy: + type: string + stabilizationWindowSeconds: + format: int32 + type: integer + tolerance: + 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 type: object - type: array - required: - - shards - type: object - equal: - properties: - hexWidth: - default: 0 - format: int32 - maximum: 65536 - minimum: 0 - type: integer - parts: - format: int32 - maximum: 65536 - minimum: 1 - type: integer - shardTemplate: + type: object + maxReplicas: + format: int32 + minimum: 0 + type: integer + metrics: + items: properties: - annotations: - additionalProperties: - type: string - type: object - databaseInitScriptSecret: + containerResource: properties: - key: + container: type: string name: type: string - volumeName: - type: string + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object + required: + - container + - name + - target + type: object + external: + properties: + metric: + properties: + name: + type: string + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + required: + - name + type: object + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object required: - - key + - metric + - target type: object - replication: + object: properties: - initializeBackup: - type: boolean - initializeMaster: - type: boolean - recoverRestartedMaster: - type: boolean - type: object - tabletPools: - items: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: + describedObject: + properties: + apiVersion: type: string - type: object - backupLocationName: - type: string - cell: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ - type: string - dataVolumeClaimTemplate: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - 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 - 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 - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - fileKeyRef: - properties: - key: - type: string - optional: - default: false - type: boolean - path: - type: string - volumeName: - type: string - required: - - key - - path - - volumeName - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + metric: + properties: + name: + type: string + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string type: object - required: - - name type: object - type: array - extraLabels: - additionalProperties: + x-kubernetes-map-type: atomic + required: + - name + type: object + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: type: string - type: object - extraVolumeMounts: - items: + value: + 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 + required: + - type + type: object + required: + - describedObject + - metric + - target + type: object + pods: + properties: + metric: + properties: + name: + type: string + selector: properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true - mysqld: - properties: - configOverrides: - type: string - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - required: - - resources - type: object - mysqldExporter: - properties: - extraFlags: - additionalProperties: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - type: object - name: - default: "" - type: string - replicas: - format: int32 - minimum: 0 - type: integer - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - topologySpreadConstraints: - x-kubernetes-preserve-unknown-fields: true - type: - enum: - - replica - - rdonly - - externalmaster - - externalreplica - - externalrdonly - type: string - vttablet: - properties: - extraFlags: - additionalProperties: - type: string - type: object - lifecycle: - x-kubernetes-preserve-unknown-fields: true - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator type: object - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - vtbackupExtraFlags: - additionalProperties: - type: string - type: object - required: - - resources - type: object - required: - - cell - - replicas - - type - - vttablet - type: object - type: array - x-kubernetes-list-map-keys: - - type - - cell + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + required: + - name + type: object + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object + required: + - metric + - target + type: object + resource: + properties: + name: + type: string + target: + properties: + averageUtilization: + format: int32 + type: integer + averageValue: + 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 + type: + type: string + value: + 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 + required: + - type + type: object + required: - name - x-kubernetes-list-type: map + - target + type: object + type: + type: string required: - - databaseInitScriptSecret + - type type: object - required: - - parts - type: object - type: object - maxItems: 2 - minItems: 1 - type: array - sidecarDbName: - type: string - turndownPolicy: - enum: - - RequireIdle - - Immediate - type: string - vitessOrchestrator: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: - type: string + type: array + x-kubernetes-list-type: atomic + minReplicas: + format: int32 + minimum: 0 + type: integer type: object extraEnv: items: @@ -4703,32 +2716,161 @@ spec: additionalProperties: type: string type: object - extraVolumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true + extraVolumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + replicas: + format: int32 + minimum: 0 + type: integer resources: properties: claims: @@ -4762,1290 +2904,2763 @@ spec: x-kubernetes-int-or-string: true type: object type: object - service: - properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: - type: string - type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - type: object - 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: - 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: + secureTransport: properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - fileKeyRef: - properties: - key: - type: string - optional: - default: false - type: boolean - path: - type: string - volumeName: - type: string - required: - - key - - path - - volumeName - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: + required: + type: boolean + tls: properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true - replicas: - format: int32 - type: integer - resources: - properties: - claims: - items: + 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: - name: - type: string - request: + annotations: + additionalProperties: + type: string + type: object + clusterIP: type: string - required: - - name type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - service: - properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: - type: string - type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - type: object - vtadmin: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: - type: string - type: object - apiAddresses: - items: - type: string - type: array - apiResources: - properties: - claims: - items: + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + strategy: properties: - name: - type: string - request: + rollingUpdate: + properties: + maxSurge: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + maxUnavailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + type: type: string - required: - - name type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - cells: - items: - type: string - type: array - extraEnv: - items: + terminationGracePeriodSeconds: + format: int64 + type: integer + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true + type: object + lockserver: properties: - name: - type: string - value: + cellInfoAddress: type: string - valueFrom: + etcd: properties: - configMapKeyRef: + advertisePeerURLs: + items: + type: string + maxItems: 3 + minItems: 3 + type: array + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + clientService: properties: - key: - type: string - name: - default: "" + annotations: + additionalProperties: + type: string + type: object + clusterIP: type: string - optional: - type: boolean - required: - - key type: object - x-kubernetes-map-type: atomic - fieldRef: + createClientService: + type: boolean + createPDB: + type: boolean + createPeerService: + type: boolean + dataVolumeClaimTemplate: properties: - apiVersion: - type: string - fieldPath: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + 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 + 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 + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - fileKeyRef: - properties: - key: + volumeAttributesClassName: type: string - optional: - default: false - type: boolean - path: + volumeMode: type: string volumeName: type: string - required: - - key - - path - - volumeName type: object - x-kubernetes-map-type: atomic - resourceFieldRef: + extraEnv: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + initContainers: + x-kubernetes-preserve-unknown-fields: true + localMemberIndex: + format: int32 + maximum: 3 + minimum: 1 + type: integer + peerService: properties: - containerName: - type: string - divisor: - 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 - resource: + annotations: + additionalProperties: + type: string + type: object + clusterIP: type: string - required: - - resource type: object - x-kubernetes-map-type: atomic - secretKeyRef: + resources: properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object type: object - x-kubernetes-map-type: atomic + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + type: object + external: + properties: + address: + type: string + implementation: + type: string + rootPath: + type: string + required: + - address + - implementation + - rootPath type: object - required: - - name type: object - type: array - extraFlags: - additionalProperties: + name: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ type: string - type: object - extraLabels: + zone: + type: string + required: + - name + type: object + type: array + extraVitessFlags: + additionalProperties: + type: string + type: object + gatewayService: + properties: + annotations: additionalProperties: type: string type: object - extraVolumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - fetchCredentials: + clusterIP: type: string - initContainers: - x-kubernetes-preserve-unknown-fields: true - rbac: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - readOnly: - type: boolean - replicas: - format: int32 - type: integer - service: + type: object + globalLockserver: + properties: + cellInfoAddress: + type: string + etcd: properties: + advertisePeerURLs: + items: + type: string + maxItems: 3 + minItems: 3 + type: array + affinity: + x-kubernetes-preserve-unknown-fields: true annotations: additionalProperties: type: string type: object - clusterIP: - type: string - type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - webResources: - properties: - claims: + 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 + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + 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 + 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 + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 - request: + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: type: string required: + - mountPath - name type: object type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + initContainers: + x-kubernetes-preserve-unknown-fields: true + localMemberIndex: + format: int32 + maximum: 3 + minimum: 1 + type: integer + peerService: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string 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 + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true type: object - required: - - apiAddresses - 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: + external: properties: - available: + address: type: string - clientServiceName: + implementation: type: string - observedGeneration: - format: int64 - type: integer - type: object - type: object - keyspaces: - additionalProperties: - properties: - cells: - items: + rootPath: 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 + required: + - address + - implementation + - rootPath + type: object type: object - observedGeneration: - format: int64 - type: integer - orphanedCells: - additionalProperties: - properties: - message: - type: string - reason: - type: string - required: - - message - - reason - type: object + imagePullPolicies: + properties: + mysqld: + type: string + mysqldExporter: + type: string + vtadmin: + type: string + vtbackup: + type: string + vtctld: + type: string + vtgate: + type: string + vtorc: + type: string + vttablet: + type: string type: object - orphanedKeyspaces: - additionalProperties: + imagePullSecrets: + items: properties: - message: - type: string - reason: + name: + default: "" type: string - required: - - message - - reason type: object - type: object - vitessDashboard: + x-kubernetes-map-type: atomic + type: array + images: properties: - available: + mysqld: + properties: + mariadb103Compatible: + type: string + mariadbCompatible: + type: string + mysql56Compatible: + type: string + mysql80Compatible: + type: string + type: object + mysqldExporter: + type: string + vtadmin: + type: string + vtbackup: type: string - serviceName: + vtctld: type: string - type: object - vtadmin: - properties: - available: + vtgate: type: string - serviceName: + vtorc: type: string - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - name: vitesskeyspaces.planetscale.com -spec: - group: planetscale.com - names: - kind: VitessKeyspace - listKind: VitessKeyspaceList - plural: vitesskeyspaces - shortNames: - - vtk - singular: vitesskeyspace - scope: Namespaced - versions: - - name: v2 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - annotations: - additionalProperties: + vttablet: type: string - type: object - backupEngine: - type: string - backupLocations: - items: - properties: - annotations: - additionalProperties: + type: object + keyspaces: + items: + properties: + annotations: + additionalProperties: + type: string + type: object + databaseName: + type: string + durabilityPolicy: + type: string + images: + properties: + mysqld: + properties: + mysql56Compatible: + type: string + mysql80Compatible: + type: string + type: object + mysqldExporter: 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 - ceph: - properties: - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - required: - - authSecret - type: object - gcs: + vtbackup: + type: string + vtorc: + type: string + vttablet: + type: string + type: object + name: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-z0-9])?$ + type: string + partitionings: + items: properties: - authSecret: + custom: properties: - key: - type: string - name: - type: string - volumeName: - type: string + 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: + initializeBackup: + type: boolean + initializeMaster: + type: boolean + recoverRestartedMaster: + type: boolean + type: object + tabletPools: + items: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + backupLocationName: + type: string + cell: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ + type: string + dataVolumeClaimTemplate: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + 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 + 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 + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + mysqld: + properties: + configOverrides: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + required: + - resources + type: object + mysqldExporter: + properties: + extraFlags: + additionalProperties: + type: string + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + type: object + name: + default: "" + type: string + replicas: + format: int32 + minimum: 0 + type: integer + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true + type: + enum: + - replica + - rdonly + - externalmaster + - externalreplica + - externalrdonly + type: string + vttablet: + properties: + extraFlags: + additionalProperties: + type: string + type: object + lifecycle: + x-kubernetes-preserve-unknown-fields: true + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + vtbackupExtraFlags: + additionalProperties: + type: string + type: object + required: + - resources + type: object + required: + - cell + - replicas + - type + - vttablet + type: object + type: array + x-kubernetes-list-map-keys: + - type + - cell + - name + x-kubernetes-list-type: map + required: + - databaseInitScriptSecret + - keyRange + type: object + type: array required: - - key + - shards type: object - bucket: - minLength: 1 - type: string - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ - type: string - required: - - bucket - type: object - name: - maxLength: 63 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-z0-9])?$ - type: string - s3: - properties: - authSecret: + equal: properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - bucket: - minLength: 1 - type: string - endpoint: - type: string - forcePathStyle: - type: boolean - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ - type: string - minPartSize: - format: int64 - type: integer - region: - minLength: 1 - type: string - required: - - bucket - - region - type: object - volume: - x-kubernetes-preserve-unknown-fields: true - volumeSubPath: - type: string - type: object - type: array - databaseName: - type: string - durabilityPolicy: - 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 - vtadmin: - type: string - vtbackup: - type: string - vtctld: - type: string - vtgate: - type: string - vtorc: - type: string - vttablet: - type: string - type: object - imagePullSecrets: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - 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 - vtorc: - type: string - vttablet: - type: string - type: object - name: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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])*$ + hexWidth: + default: 0 + format: int32 + maximum: 65536 + minimum: 0 + type: integer + parts: + format: int32 + maximum: 65536 + minimum: 1 + type: integer + shardTemplate: + properties: + annotations: + additionalProperties: type: string - type: object - replication: - properties: - initializeBackup: - type: boolean - initializeMaster: - type: boolean - recoverRestartedMaster: - type: boolean - type: object - tabletPools: - items: + type: object + databaseInitScriptSecret: properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: - type: string - type: object - backupLocationName: + key: type: string - cell: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ + name: type: string - dataVolumeClaimTemplate: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: + volumeName: + type: string + required: + - key + type: object + replication: + properties: + initializeBackup: + type: boolean + initializeMaster: + type: boolean + recoverRestartedMaster: + type: boolean + type: object + tabletPools: + items: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + backupLocationName: + type: string + cell: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ + type: string + dataVolumeClaimTemplate: + properties: + accessModes: + items: type: string - required: + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: - kind - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + 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 - type: object - requests: - additionalProperties: - anyOf: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + 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 - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: type: string - type: array - x-kubernetes-list-type: atomic - required: + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: - key - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + externalDatastore: + properties: + credentialsSecret: + properties: + key: type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - externalDatastore: - properties: - credentialsSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: + 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: + 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: + 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: - default: "" - type: string - optional: - type: boolean - required: + type: object + extraEnv: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: - key - type: object - x-kubernetes-map-type: atomic - type: object - required: + type: object + x-kubernetes-map-type: atomic + type: object + required: - name + type: object + type: array + extraLabels: + additionalProperties: + type: string 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: + extraVolumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: - mountPath - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true - mysqld: - properties: - configOverrides: - type: string - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + mysqld: + properties: + configOverrides: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: - name - type: object - type: array - x-kubernetes-list-map-keys: + type: object + type: array + x-kubernetes-list-map-keys: - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: + x-kubernetes-list-type: map + 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 - type: object - requests: - additionalProperties: - anyOf: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + 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 - type: object - type: object - required: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + required: - resources - type: object - mysqldExporter: - properties: - extraFlags: - additionalProperties: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: + type: object + mysqldExporter: + properties: + extraFlags: + additionalProperties: + type: string + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: - name - type: object - type: array - x-kubernetes-list-map-keys: + type: object + type: array + x-kubernetes-list-map-keys: - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: + x-kubernetes-list-type: map + 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 - type: object - requests: - additionalProperties: - anyOf: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + 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 - type: object - type: object - type: object - name: - default: "" - type: string - replicas: - format: int32 - minimum: 0 - type: integer - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - topologySpreadConstraints: - x-kubernetes-preserve-unknown-fields: true - type: - enum: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + type: object + name: + default: "" + type: string + replicas: + format: int32 + minimum: 0 + type: integer + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true + type: + enum: - replica - rdonly - externalmaster - externalreplica - externalrdonly - type: string - vttablet: - properties: - extraFlags: - additionalProperties: - type: string - type: object - vtbackupExtraFlags: - additionalProperties: - type: string - type: object - lifecycle: - x-kubernetes-preserve-unknown-fields: true - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: + type: string + vttablet: + properties: + extraFlags: + additionalProperties: + type: string + type: object + lifecycle: + x-kubernetes-preserve-unknown-fields: true + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: - name - type: object - type: array - x-kubernetes-list-map-keys: + type: object + type: array + x-kubernetes-list-map-keys: - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: + x-kubernetes-list-type: map + 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 - type: object - requests: - additionalProperties: - anyOf: + - 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 + 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 - type: object - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - required: + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + vtbackupExtraFlags: + additionalProperties: + type: string + type: object + required: - resources - type: object - required: + type: object + required: - cell - replicas - type - vttablet - type: object - type: array - x-kubernetes-list-map-keys: + type: object + type: array + x-kubernetes-list-map-keys: - type - cell - name - x-kubernetes-list-type: map + x-kubernetes-list-type: map + required: + - databaseInitScriptSecret + type: object + required: + - parts + type: object + type: object + maxItems: 2 + minItems: 1 + type: array + sidecarDbName: + type: string + turndownPolicy: + enum: + - RequireIdle + - Immediate + type: string + vitessOrchestrator: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + extraEnv: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + type: object + 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: + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + replicas: + format: int32 + type: integer + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + type: object + vtadmin: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + apiAddresses: + items: + type: string + type: array + apiResources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + 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: + default: "" + type: string + optional: + type: boolean required: - - databaseInitScriptSecret - - keyRange + - key type: object - type: array - required: - - shards + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + fetchCredentials: + type: string + initContainers: + x-kubernetes-preserve-unknown-fields: true + rbac: + properties: + key: + type: string + name: + type: string + volumeName: + type: string + required: + - key + type: object + readOnly: + type: boolean + replicas: + format: int32 + type: integer + service: + properties: + annotations: + additionalProperties: + type: string type: object - equal: - properties: - hexWidth: - default: 0 - format: int32 - maximum: 65536 - minimum: 0 - type: integer - parts: - format: int32 - maximum: 65536 - minimum: 1 - type: integer - shardTemplate: + clusterIP: + type: string + type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + webResources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + required: + - apiAddresses + 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 + vtadmin: + properties: + available: + type: string + serviceName: + type: string + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.20.1 + name: vitesskeyspaces.planetscale.com +spec: + group: planetscale.com + names: + kind: VitessKeyspace + listKind: VitessKeyspaceList + plural: vitesskeyspaces + shortNames: + - vtk + singular: vitesskeyspace + scope: Namespaced + versions: + - name: v2 + schema: + 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 + ceph: + properties: + authSecret: + properties: + key: + type: string + name: + type: string + volumeName: + type: string + required: + - key + type: object + required: + - authSecret + 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: 63 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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 + forcePathStyle: + type: boolean + keyPrefix: + maxLength: 256 + pattern: ^[^\r\n]*$ + type: string + minPartSize: + format: int64 + type: integer + region: + minLength: 1 + type: string + required: + - bucket + - region + type: object + volume: + x-kubernetes-preserve-unknown-fields: true + volumeSubPath: + type: string + type: object + type: array + databaseName: + type: string + durabilityPolicy: + 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 + vtadmin: + type: string + vtbackup: + type: string + vtctld: + type: string + vtgate: + type: string + vtorc: + type: string + vttablet: + type: string + type: object + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + 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 + vtorc: + type: string + vttablet: + type: string + type: object + name: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-z0-9])?$ + type: string + partitionings: + items: + properties: + custom: + properties: + shards: + items: properties: annotations: additionalProperties: @@ -6060,7 +5675,16 @@ spec: volumeName: type: string required: - - key + - 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: @@ -6103,8 +5727,8 @@ spec: name: type: string required: - - kind - - name + - kind + - name type: object x-kubernetes-map-type: atomic dataSourceRef: @@ -6118,24 +5742,24 @@ spec: namespace: type: string required: - - kind - - name + - kind + - name type: object resources: properties: limits: additionalProperties: anyOf: - - type: integer - - type: string + - 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 type: object requests: additionalProperties: anyOf: - - type: integer - - type: string + - 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 type: object @@ -6154,9 +5778,9 @@ spec: type: string type: array x-kubernetes-list-type: atomic - required: - - key - - operator + required: + - key + - operator type: object type: array x-kubernetes-list-type: atomic @@ -6186,7 +5810,7 @@ spec: volumeName: type: string required: - - key + - key type: object database: type: string @@ -6206,16 +5830,16 @@ spec: volumeName: type: string required: - - key + - key type: object user: type: string required: - - credentialsSecret - - database - - host - - port - - user + - credentialsSecret + - database + - host + - port + - user type: object extraEnv: items: @@ -6236,7 +5860,7 @@ spec: optional: type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic fieldRef: @@ -6246,7 +5870,24 @@ spec: fieldPath: type: string required: - - fieldPath + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName type: object x-kubernetes-map-type: atomic resourceFieldRef: @@ -6255,14 +5896,14 @@ spec: type: string divisor: anyOf: - - type: integer - - type: string + - 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 resource: type: string required: - - resource + - resource type: object x-kubernetes-map-type: atomic secretKeyRef: @@ -6275,12 +5916,12 @@ spec: optional: type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic type: object required: - - name + - name type: object type: array extraLabels: @@ -6305,8 +5946,8 @@ spec: subPathExpr: type: string required: - - mountPath - - name + - mountPath + - name type: object type: array extraVolumes: @@ -6327,1198 +5968,1382 @@ spec: request: type: string required: - - name + - name type: object type: array x-kubernetes-list-map-keys: - - name + - name x-kubernetes-list-type: map limits: additionalProperties: anyOf: - - type: integer - - type: string + - 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 type: object requests: additionalProperties: anyOf: - - type: integer - - type: string + - 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 type: object type: object required: - - resources + - resources type: object mysqldExporter: properties: extraFlags: additionalProperties: type: string - type: object - resources: + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + type: object + name: + default: "" + type: string + replicas: + format: int32 + minimum: 0 + type: integer + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true + type: + enum: + - replica + - rdonly + - externalmaster + - externalreplica + - externalrdonly + type: string + vttablet: + properties: + extraFlags: + additionalProperties: + type: string + type: object + lifecycle: + x-kubernetes-preserve-unknown-fields: true + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + vtbackupExtraFlags: + additionalProperties: + type: string + type: object + required: + - resources + type: object + required: + - cell + - replicas + - type + - vttablet + type: object + type: array + x-kubernetes-list-map-keys: + - type + - cell + - name + x-kubernetes-list-type: map + required: + - databaseInitScriptSecret + - keyRange + type: object + type: array + required: + - shards + type: object + equal: + properties: + hexWidth: + default: 0 + format: int32 + maximum: 65536 + minimum: 0 + type: integer + parts: + format: int32 + maximum: 65536 + 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: + initializeBackup: + type: boolean + initializeMaster: + type: boolean + recoverRestartedMaster: + type: boolean + type: object + tabletPools: + items: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + backupLocationName: + type: string + cell: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ + type: string + dataVolumeClaimTemplate: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + 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 + 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 + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + 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: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key type: object - requests: - additionalProperties: - anyOf: + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key type: object + x-kubernetes-map-type: atomic type: object + required: + - name type: object - name: - default: "" - type: string - replicas: - format: int32 - minimum: 0 - type: integer - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - topologySpreadConstraints: - x-kubernetes-preserve-unknown-fields: true - type: - enum: - - replica - - rdonly - - externalmaster - - externalreplica - - externalrdonly + type: array + extraLabels: + additionalProperties: type: string - vttablet: + type: object + extraVolumeMounts: + items: properties: - extraFlags: - additionalProperties: - type: string - type: object - vtbackupExtraFlags: - additionalProperties: - type: string - type: object - lifecycle: - x-kubernetes-preserve-unknown-fields: true - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string required: - - resources + - mountPath + - name type: object - required: - - cell - - replicas - - type - - vttablet - type: object - type: array - x-kubernetes-list-map-keys: - - type - - cell - - name - x-kubernetes-list-type: map - required: - - databaseInitScriptSecret - type: object - required: - - hexWidth - - parts - type: object - type: object - maxItems: 2 - minItems: 1 - type: array - sidecarDbName: - 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 - 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 - vitessOrchestrator: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: - type: string - type: object - extraEnv: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + mysqld: + properties: + configOverrides: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + required: + - resources + type: object + mysqldExporter: + properties: + extraFlags: + additionalProperties: + type: string + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + type: object name: default: "" type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" + replicas: + format: int32 + minimum: 0 + type: integer + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true + type: + enum: + - replica + - rdonly + - externalmaster + - externalreplica + - externalrdonly type: string - optional: - type: boolean + vttablet: + properties: + extraFlags: + additionalProperties: + type: string + type: object + lifecycle: + x-kubernetes-preserve-unknown-fields: true + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + vtbackupExtraFlags: + additionalProperties: + type: string + type: object + required: + - resources + type: object required: - - key + - cell + - replicas + - type + - vttablet type: object - x-kubernetes-map-type: atomic - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: + type: array + x-kubernetes-list-map-keys: + - type + - cell - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 + x-kubernetes-list-type: map + required: + - databaseInitScriptSecret type: object + required: + - parts type: object - service: + type: object + maxItems: 2 + minItems: 1 + type: array + sidecarDbName: + 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 + 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 + vitessOrchestrator: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + extraEnv: + items: properties: - annotations: - additionalProperties: - type: string + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic type: object - clusterIP: - type: string + required: + - name type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - 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: array + extraFlags: + additionalProperties: + type: string type: object - type: array - idle: - type: string - observedGeneration: - format: int64 - type: integer - orphanedShards: - additionalProperties: - properties: - message: - type: string - reason: - type: string - required: - - message - - reason + extraLabels: + additionalProperties: + type: string type: object - type: object - partitionings: - items: - properties: - desiredShards: - format: int32 - type: integer - desiredTablets: - format: int32 - type: integer - readyShards: - format: int32 - type: integer - readyTablets: - format: int32 - type: integer - servingWrites: - type: string - shardNames: - items: + extraVolumeMounts: + items: + properties: + mountPath: type: string - type: array - tablets: - format: int32 - type: integer - updatedTablets: - format: int32 - type: integer - type: object - type: array - resharding: - properties: - copyProgress: - type: integer - 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: + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + resources: properties: - cells: + claims: items: - type: string + properties: + name: + type: string + request: + type: string + required: + - name + type: object 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 + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object type: object - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - name: vitessshards.planetscale.com -spec: - group: planetscale.com - names: - kind: VitessShard - listKind: VitessShardList - plural: vitessshards - shortNames: - - vts - singular: vitessshard - scope: Namespaced - versions: - - name: v2 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - annotations: - additionalProperties: - type: string - type: object - backupEngine: - type: string - backupLocations: - items: + service: 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 - ceph: - properties: - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - required: - - authSecret - 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: 63 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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 - forcePathStyle: - type: boolean - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ - type: string - minPartSize: - format: int64 - type: integer - region: - minLength: 1 - type: string - required: - - bucket - - region - type: object - volume: - x-kubernetes-preserve-unknown-fields: true - volumeSubPath: + clusterIP: type: string type: object - type: array - databaseInitScriptSecret: + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + type: object + zoneMap: + additionalProperties: + type: string + type: object + required: + - globalLockserver + - name + - partitionings + - zoneMap + type: object + status: + properties: + conditions: + items: properties: - key: + lastTransitionTime: + format: date-time type: string - name: - type: string - volumeName: + message: type: string - required: - - key - type: object - databaseName: - type: string - extraVitessFlags: - additionalProperties: - type: string - type: object - globalLockserver: - properties: - address: + reason: type: string - implementation: + status: + enum: + - "True" + - "False" + - Unknown type: string - rootPath: + type: type: string required: - - address - - implementation - - rootPath + - status + - type type: object - imagePullPolicies: + type: array + idle: + type: string + observedGeneration: + format: int64 + type: integer + orphanedShards: + additionalProperties: properties: - mysqld: - type: string - mysqldExporter: - type: string - vtadmin: - type: string - vtbackup: - type: string - vtctld: - type: string - vtgate: - type: string - vtorc: + message: type: string - vttablet: + reason: type: string + required: + - message + - reason type: object - imagePullSecrets: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - images: + type: object + partitionings: + items: properties: - mysqld: - properties: - mariadb103Compatible: - type: string - mariadbCompatible: - type: string - mysql56Compatible: - type: string - mysql80Compatible: - type: string - type: object - mysqldExporter: - type: string - vtbackup: + desiredShards: + format: int32 + type: integer + desiredTablets: + format: int32 + type: integer + readyShards: + format: int32 + type: integer + readyTablets: + format: int32 + type: integer + servingWrites: type: string - vtorc: + shardNames: + items: + type: string + type: array + tablets: + format: int32 + type: integer + updatedTablets: + format: int32 + type: integer + type: object + type: array + resharding: + properties: + copyProgress: + type: integer + sourceShards: + items: type: string - vttablet: + type: array + state: + type: string + targetShards: + items: type: string - type: object - keyRange: + type: array + workflow: + type: string + required: + - state + - workflow + type: object + shards: + additionalProperties: properties: - end: - pattern: ^([0-9a-f][0-9a-f])*$ + cells: + items: + type: string + type: array + desiredTablets: + format: int32 + type: integer + hasMaster: + type: string + pendingChanges: type: string - start: - pattern: ^([0-9a-f][0-9a-f])*$ + readyTablets: + format: int32 + type: integer + servingWrites: type: string + tablets: + format: int32 + type: integer + updatedTablets: + format: int32 + type: integer type: object - name: - type: string - replication: - properties: - initializeBackup: - type: boolean - initializeMaster: - type: boolean - recoverRestartedMaster: - type: boolean - type: object - tabletPools: - items: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: - type: string - type: object - backupLocationName: - type: string - cell: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ - type: string - dataVolumeClaimTemplate: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - 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 - 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 - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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: + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.20.1 + name: vitessshards.planetscale.com +spec: + group: planetscale.com + names: + kind: VitessShard + listKind: VitessShardList + plural: vitessshards + shortNames: + - vts + singular: vitessshard + scope: Namespaced + versions: + - name: v2 + schema: + 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 - value: + volumeName: type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - 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 - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object required: - - name + - key type: object - type: array - extraLabels: - additionalProperties: + container: + minLength: 1 type: string - type: object - extraVolumeMounts: - items: + keyPrefix: + maxLength: 256 + pattern: ^[^\r\n]*$ + type: string + required: + - account + - authSecret + - container + type: object + ceph: + properties: + authSecret: + properties: + key: + type: string + name: + type: string + volumeName: + type: string + required: + - key + type: object + required: + - authSecret + 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: 63 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-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 + forcePathStyle: + type: boolean + keyPrefix: + maxLength: 256 + pattern: ^[^\r\n]*$ + type: string + minPartSize: + format: int64 + type: integer + region: + minLength: 1 + type: string + required: + - bucket + - region + type: object + volume: + x-kubernetes-preserve-unknown-fields: true + volumeSubPath: + type: string + 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 + vtadmin: + type: string + vtbackup: + type: string + vtctld: + type: string + vtgate: + type: string + vtorc: + type: string + vttablet: + type: string + type: object + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + 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 + vtorc: + 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: + initializeBackup: + type: boolean + initializeMaster: + type: boolean + recoverRestartedMaster: + type: boolean + type: object + tabletPools: + items: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + backupLocationName: + type: string + cell: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ + type: string + dataVolumeClaimTemplate: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: properties: - mountPath: + apiGroup: type: string - mountPropagation: + kind: type: string name: type: string - readOnly: - type: boolean - recursiveReadOnly: + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: type: string - subPath: + kind: type: string - subPathExpr: + name: + type: string + namespace: type: string required: - - mountPath - - name + - kind + - name type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - initContainers: - x-kubernetes-preserve-unknown-fields: true - mysqld: - properties: - configOverrides: - type: string - resources: - properties: - claims: - items: - properties: - name: - type: string - request: + resources: + 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 + 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 + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator type: object - type: object - required: - - resources - type: object - mysqldExporter: - properties: - extraFlags: - additionalProperties: + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + externalDatastore: + properties: + credentialsSecret: + properties: + key: type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - type: object - name: - default: "" - type: string - replicas: - format: int32 - minimum: 0 - type: integer - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - topologySpreadConstraints: - x-kubernetes-preserve-unknown-fields: true - type: - enum: - - replica - - rdonly - - externalmaster - - externalreplica - - externalrdonly - type: string - vttablet: - properties: - extraFlags: - additionalProperties: + name: type: string - type: object - vtbackupExtraFlags: - additionalProperties: + volumeName: type: string - type: object - lifecycle: - x-kubernetes-preserve-unknown-fields: true - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - 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 - 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 - type: object - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - required: - - resources - type: object - required: - - cell - - replicas - - type - - vttablet - type: object - type: array - x-kubernetes-list-map-keys: - - type - - cell - - name - x-kubernetes-list-type: map - 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 - vitessOrchestrator: - properties: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: - 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: @@ -7539,7 +7364,7 @@ spec: optional: type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic fieldRef: @@ -7549,7 +7374,24 @@ spec: fieldPath: type: string required: - - fieldPath + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName type: object x-kubernetes-map-type: atomic resourceFieldRef: @@ -7558,14 +7400,14 @@ spec: type: string divisor: anyOf: - - type: integer - - type: string + - 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 resource: type: string required: - - resource + - resource type: object x-kubernetes-map-type: atomic secretKeyRef: @@ -7578,18 +7420,14 @@ spec: optional: type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic type: object required: - - name + - name type: object type: array - extraFlags: - additionalProperties: - type: string - type: object extraLabels: additionalProperties: type: string @@ -7612,181 +7450,504 @@ spec: subPathExpr: type: string required: - - mountPath - - name + - mountPath + - name type: object type: array extraVolumes: x-kubernetes-preserve-unknown-fields: true initContainers: x-kubernetes-preserve-unknown-fields: true - resources: + mysqld: properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: + configOverrides: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + required: + - resources + type: object + mysqldExporter: + properties: + extraFlags: 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 + type: string + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object + type: object + type: object + name: + default: "" + type: string + replicas: + format: int32 + minimum: 0 + type: integer + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true + type: + enum: + - replica + - rdonly + - externalmaster + - externalreplica + - externalrdonly + type: string + vttablet: + properties: + extraFlags: + additionalProperties: + type: string + type: object + lifecycle: + x-kubernetes-preserve-unknown-fields: true + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object type: object - requests: + terminationGracePeriodSeconds: + format: int64 + type: integer + vtbackupExtraFlags: 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 + type: string + type: object + required: + - resources + type: object + required: + - cell + - replicas + - type + - vttablet + type: object + type: array + x-kubernetes-list-map-keys: + - type + - cell + - name + x-kubernetes-list-type: map + 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 + vitessOrchestrator: + properties: + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + type: string + type: object + extraEnv: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + 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 + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic type: object + required: + - name type: object - service: + type: array + extraFlags: + additionalProperties: + type: string + type: object + extraLabels: + additionalProperties: + type: string + type: object + extraVolumeMounts: + items: properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - type: object - zoneMap: - additionalProperties: - type: string - type: object - required: - - databaseInitScriptSecret - - globalLockserver - - images - - keyRange - - name - - zoneMap - type: object - status: - properties: - backupLocations: - items: + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + resources: properties: - completeBackups: - format: int32 - type: integer - incompleteBackups: - format: int32 - type: integer - latestCompleteBackupTime: - format: date-time - type: string - name: - type: string - required: - - completeBackups - - incompleteBackups + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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 + 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 + type: object type: object - type: array - cells: - items: - type: string - type: array - conditions: - additionalProperties: + service: properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - enum: - - "True" - - "False" - - Unknown + annotations: + additionalProperties: + type: string + type: object + clusterIP: type: string - required: - - status type: object - type: object - hasInitialBackup: - type: string - hasMaster: - type: string - idle: - type: string - lowestPodGeneration: - format: int64 - type: integer - masterAlias: + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + type: object + zoneMap: + additionalProperties: type: string - observedGeneration: - format: int64 - type: integer - orphanedTablets: - additionalProperties: - properties: - message: - type: string - reason: - type: string - required: - - message - - reason - type: object + 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 - servingWrites: + type: array + cells: + items: 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: 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 - vitessOrchestrator: + type: object + servingWrites: + type: string + tablets: + additionalProperties: properties: available: type: string - serviceName: + 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 - served: true - storage: true - subresources: - status: {} + type: object + vitessOrchestrator: + properties: + available: + type: string + serviceName: + type: string + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} --- apiVersion: v1 kind: ServiceAccount @@ -7805,108 +7966,108 @@ metadata: name: vitess-operator-backup-storage namespace: example rules: - - apiGroups: - - planetscale.com - resources: - - vitessshards - - vitessshards/status - - vitessshards/finalizers - - vitessbackups - - vitessbackups/status - - vitessbackups/finalizers - - vitessbackupstorages - - vitessbackupstorages/status - - vitessbackupstorages/finalizers - verbs: - - '*' +- apiGroups: + - planetscale.com + resources: + - vitessshards + - vitessshards/status + - vitessshards/finalizers + - vitessbackups + - vitessbackups/status + - vitessbackups/finalizers + - vitessbackupstorages + - vitessbackupstorages/status + - vitessbackupstorages/finalizers + verbs: + - '*' --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole 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 - - vitessbackupschedules - - vitessbackupschedules/status - - vitessbackupschedules/finalizers - verbs: - - '*' - - apiGroups: - - batch - resources: - - jobs - verbs: - - '*' - - apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - '*' +- 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 + - vitessbackupschedules + - vitessbackupschedules/status + - vitessbackupschedules/finalizers + verbs: + - '*' +- apiGroups: + - batch + resources: + - jobs + verbs: + - '*' +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - '*' --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding @@ -7918,9 +8079,9 @@ roleRef: kind: Role name: vitess-operator-backup-storage subjects: - - kind: ServiceAccount - name: vitess-operator - namespace: example +- kind: ServiceAccount + name: vitess-operator + namespace: example --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding @@ -7931,9 +8092,9 @@ roleRef: kind: ClusterRole name: vitess-operator subjects: - - kind: ServiceAccount - name: vitess-operator - namespace: default +- kind: ServiceAccount + name: vitess-operator + namespace: default --- apiVersion: scheduling.k8s.io/v1 description: Vitess components (vttablet, vtgate, vtctld, etcd) @@ -7966,37 +8127,37 @@ spec: app: vitess-operator spec: containers: - - args: - - --logtostderr - - -v=4 - command: - - vitess-operator - env: - - name: WATCH_NAMESPACE - value: "default,example" - - 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: vitess-operator-pr:latest - imagePullPolicy: Never - name: vitess-operator - resources: - limits: - memory: 512Mi - requests: - cpu: 100m - memory: 128Mi + - args: + - --logtostderr + - -v=4 + command: + - vitess-operator + env: + - name: WATCH_NAMESPACE + value: "default,example" + - 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: vitess-operator-pr:latest + imagePullPolicy: Never + name: vitess-operator + resources: + limits: + memory: 512Mi + requests: + cpu: 100m + memory: 128Mi priorityClassName: vitess-operator-control-plane securityContext: # The fsGroup needs to be set to the default fsGroup of Vitess.