diff --git a/deploy/crds/planetscale.com_etcdlockservers.yaml b/deploy/crds/planetscale.com_etcdlockservers.yaml index 065de789..f54bca0e 100644 --- a/deploy/crds/planetscale.com_etcdlockservers.yaml +++ b/deploy/crds/planetscale.com_etcdlockservers.yaml @@ -307,6 +307,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true zone: type: string type: object diff --git a/deploy/crds/planetscale.com_vitesscells.yaml b/deploy/crds/planetscale.com_vitesscells.yaml index 68c9887a..a4a0ca0a 100644 --- a/deploy/crds/planetscale.com_vitesscells.yaml +++ b/deploy/crds/planetscale.com_vitesscells.yaml @@ -1047,6 +1047,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true type: object external: properties: diff --git a/deploy/crds/planetscale.com_vitessclusters.yaml b/deploy/crds/planetscale.com_vitessclusters.yaml index f04b0e5e..6a4c7112 100644 --- a/deploy/crds/planetscale.com_vitessclusters.yaml +++ b/deploy/crds/planetscale.com_vitessclusters.yaml @@ -1238,6 +1238,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true type: object external: properties: @@ -1562,6 +1564,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true type: object external: properties: @@ -2718,6 +2722,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true type: object required: - name @@ -2928,6 +2934,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true type: object vtadmin: properties: @@ -3107,6 +3115,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true webResources: properties: claims: diff --git a/deploy/crds/planetscale.com_vitesskeyspaces.yaml b/deploy/crds/planetscale.com_vitesskeyspaces.yaml index 674e4588..5bce408b 100644 --- a/deploy/crds/planetscale.com_vitesskeyspaces.yaml +++ b/deploy/crds/planetscale.com_vitesskeyspaces.yaml @@ -1310,6 +1310,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true type: object zoneMap: additionalProperties: diff --git a/deploy/crds/planetscale.com_vitessshards.yaml b/deploy/crds/planetscale.com_vitessshards.yaml index ea951365..ac372924 100644 --- a/deploy/crds/planetscale.com_vitessshards.yaml +++ b/deploy/crds/planetscale.com_vitessshards.yaml @@ -837,6 +837,8 @@ spec: x-kubernetes-preserve-unknown-fields: true tolerations: x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true type: object zoneMap: additionalProperties: diff --git a/docs/api.md b/docs/api.md index a43f0b7d..89987d3e 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1227,6 +1227,20 @@ ServiceOverrides

Tolerations allow you to schedule pods onto nodes with matching taints.

+ + +topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + + + +

TopologySpreadConstraint can optionally be used to +specify how to spread etcd pods among the given topology

+ +

ExternalDatastore @@ -4883,6 +4897,20 @@ ServiceOverrides

Tolerations allow you to schedule pods onto nodes with matching taints.

+ + +topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + + + +

TopologySpreadConstraint can optionally be used to +specify how to spread vtctld pods among the given topology

+ +

VitessDashboardStatus @@ -6999,6 +7027,20 @@ ServiceOverrides

Tolerations allow you to schedule pods onto nodes with matching taints.

+ + +topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + + + +

TopologySpreadConstraint can optionally be used to +specify how to spread vtorc pods among the given topology

+ +

VitessOrchestratorStatus @@ -8638,6 +8680,20 @@ ServiceOverrides

Tolerations allow you to schedule pods onto nodes with matching taints.

+ + +topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + + + +

TopologySpreadConstraint can optionally be used to +specify how to spread vtadmin pods among the given topology

+ +

VtadminStatus diff --git a/docs/api/index.html b/docs/api/index.html index 76c1abe0..2c1a5c77 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -1229,6 +1229,20 @@

EtcdLockserverTemplate

Tolerations allow you to schedule pods onto nodes with matching taints.

+ + +topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + + + +

TopologySpreadConstraint can optionally be used to +specify how to spread etcd pods among the given topology

+ +

ExternalDatastore @@ -4885,6 +4899,20 @@

VitessDashboardSpec

Tolerations allow you to schedule pods onto nodes with matching taints.

+ + +topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + + + +

TopologySpreadConstraint can optionally be used to +specify how to spread vtctld pods among the given topology

+ +

VitessDashboardStatus @@ -7001,6 +7029,20 @@

VitessOrchestratorSpec

Tolerations allow you to schedule pods onto nodes with matching taints.

+ + +topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + + + +

TopologySpreadConstraint can optionally be used to +specify how to spread vtorc pods among the given topology

+ +

VitessOrchestratorStatus @@ -8640,6 +8682,20 @@

VtAdminSpec

Tolerations allow you to schedule pods onto nodes with matching taints.

+ + +topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + + + +

TopologySpreadConstraint can optionally be used to +specify how to spread vtadmin pods among the given topology

+ +

VtadminStatus diff --git a/pkg/apis/planetscale/v2/etcdlockserver_types.go b/pkg/apis/planetscale/v2/etcdlockserver_types.go index d3589087..3ab996b9 100644 --- a/pkg/apis/planetscale/v2/etcdlockserver_types.go +++ b/pkg/apis/planetscale/v2/etcdlockserver_types.go @@ -197,6 +197,12 @@ type EtcdLockserverTemplate struct { // +kubebuilder:validation:Schemaless // +kubebuilder:pruning:PreserveUnknownFields Tolerations []corev1.Toleration `json:"tolerations,omitempty"` + + // TopologySpreadConstraint can optionally be used to + // specify how to spread etcd pods among the given topology + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields + TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` } // EtcdLockserverStatus defines the observed state of an EtcdLockserver. diff --git a/pkg/apis/planetscale/v2/vitesscluster_types.go b/pkg/apis/planetscale/v2/vitesscluster_types.go index c19ebc5a..3121b307 100644 --- a/pkg/apis/planetscale/v2/vitesscluster_types.go +++ b/pkg/apis/planetscale/v2/vitesscluster_types.go @@ -450,6 +450,12 @@ type VitessDashboardSpec struct { // +kubebuilder:validation:Schemaless // +kubebuilder:pruning:PreserveUnknownFields Tolerations []corev1.Toleration `json:"tolerations,omitempty"` + + // TopologySpreadConstraint can optionally be used to + // specify how to spread vtctld pods among the given topology + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields + TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` } // VtAdminSpec specifies deployment parameters for vtadmin. @@ -547,6 +553,12 @@ type VtAdminSpec struct { // +kubebuilder:validation:Schemaless // +kubebuilder:pruning:PreserveUnknownFields Tolerations []corev1.Toleration `json:"tolerations,omitempty"` + + // TopologySpreadConstraint can optionally be used to + // specify how to spread vtadmin pods among the given topology + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields + TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` } // ServiceOverrides allows customization of an arbitrary Service object. diff --git a/pkg/apis/planetscale/v2/vitesskeyspace_types.go b/pkg/apis/planetscale/v2/vitesskeyspace_types.go index 1d8dbdd0..07c63aec 100644 --- a/pkg/apis/planetscale/v2/vitesskeyspace_types.go +++ b/pkg/apis/planetscale/v2/vitesskeyspace_types.go @@ -285,6 +285,12 @@ type VitessOrchestratorSpec struct { // +kubebuilder:validation:Schemaless // +kubebuilder:pruning:PreserveUnknownFields Tolerations []corev1.Toleration `json:"tolerations,omitempty"` + + // TopologySpreadConstraint can optionally be used to + // specify how to spread vtorc pods among the given topology + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields + TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` } // VitessKeyspaceTurndownPolicy is the policy for turning down a keyspace. diff --git a/pkg/apis/planetscale/v2/zz_generated.deepcopy.go b/pkg/apis/planetscale/v2/zz_generated.deepcopy.go index ace6b890..70c3033a 100644 --- a/pkg/apis/planetscale/v2/zz_generated.deepcopy.go +++ b/pkg/apis/planetscale/v2/zz_generated.deepcopy.go @@ -311,6 +311,13 @@ func (in *EtcdLockserverTemplate) DeepCopyInto(out *EtcdLockserverTemplate) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.TopologySpreadConstraints != nil { + in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints + *out = make([]v1.TopologySpreadConstraint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdLockserverTemplate. @@ -1729,6 +1736,13 @@ func (in *VitessDashboardSpec) DeepCopyInto(out *VitessDashboardSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.TopologySpreadConstraints != nil { + in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints + *out = make([]v1.TopologySpreadConstraint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VitessDashboardSpec. @@ -2364,6 +2378,13 @@ func (in *VitessOrchestratorSpec) DeepCopyInto(out *VitessOrchestratorSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.TopologySpreadConstraints != nil { + in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints + *out = make([]v1.TopologySpreadConstraint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VitessOrchestratorSpec. @@ -2866,6 +2887,13 @@ func (in *VtAdminSpec) DeepCopyInto(out *VtAdminSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.TopologySpreadConstraints != nil { + in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints + *out = make([]v1.TopologySpreadConstraint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VtAdminSpec. diff --git a/pkg/controller/etcdlockserver/reconcile_members.go b/pkg/controller/etcdlockserver/reconcile_members.go index 41e56b9f..723ff117 100644 --- a/pkg/controller/etcdlockserver/reconcile_members.go +++ b/pkg/controller/etcdlockserver/reconcile_members.go @@ -142,26 +142,27 @@ func memberSpecs(ls *planetscalev2.EtcdLockserver, parentLabels map[string]strin } members = append(members, &etcd.Spec{ - LockserverName: ls.Name, - Image: ls.Spec.Image, - ImagePullPolicy: ls.Spec.ImagePullPolicy, - ImagePullSecrets: ls.Spec.ImagePullSecrets, - Resources: ls.Spec.Resources, - Labels: labels, - Zone: ls.Spec.Zone, - Index: i, - DataVolumePVCSpec: &ls.Spec.DataVolumeClaimTemplate, - ExtraFlags: ls.Spec.ExtraFlags, - ExtraEnv: ls.Spec.ExtraEnv, - ExtraVolumes: ls.Spec.ExtraVolumes, - ExtraVolumeMounts: ls.Spec.ExtraVolumeMounts, - ExtraLabels: ls.Spec.ExtraLabels, - InitContainers: ls.Spec.InitContainers, - SidecarContainers: ls.Spec.SidecarContainers, - Affinity: ls.Spec.Affinity, - Annotations: ls.Spec.Annotations, - AdvertisePeerURLs: ls.Spec.AdvertisePeerURLs, - Tolerations: ls.Spec.Tolerations, + LockserverName: ls.Name, + Image: ls.Spec.Image, + ImagePullPolicy: ls.Spec.ImagePullPolicy, + ImagePullSecrets: ls.Spec.ImagePullSecrets, + Resources: ls.Spec.Resources, + Labels: labels, + Zone: ls.Spec.Zone, + Index: i, + DataVolumePVCSpec: &ls.Spec.DataVolumeClaimTemplate, + ExtraFlags: ls.Spec.ExtraFlags, + ExtraEnv: ls.Spec.ExtraEnv, + ExtraVolumes: ls.Spec.ExtraVolumes, + ExtraVolumeMounts: ls.Spec.ExtraVolumeMounts, + ExtraLabels: ls.Spec.ExtraLabels, + InitContainers: ls.Spec.InitContainers, + SidecarContainers: ls.Spec.SidecarContainers, + Affinity: ls.Spec.Affinity, + Annotations: ls.Spec.Annotations, + AdvertisePeerURLs: ls.Spec.AdvertisePeerURLs, + Tolerations: ls.Spec.Tolerations, + TopologySpreadConstraints: ls.Spec.TopologySpreadConstraints, }) } return members diff --git a/pkg/controller/vitesscluster/reconcile_vtadmin.go b/pkg/controller/vitesscluster/reconcile_vtadmin.go index f458c327..6d8a2410 100644 --- a/pkg/controller/vitesscluster/reconcile_vtadmin.go +++ b/pkg/controller/vitesscluster/reconcile_vtadmin.go @@ -200,28 +200,29 @@ func (r *ReconcileVitessCluster) vtadminSpecs(ctx context.Context, vt *planetsca } specs = append(specs, &vtadmin.Spec{ - Cell: cell, - Discovery: discoverySecret, - ClusterConfig: clusterConfigSecret, - Rbac: vt.Spec.VtAdmin.Rbac, - WebConfig: webConfigSecret, - Image: vt.Spec.Images.Vtadmin, - ImagePullPolicy: vt.Spec.ImagePullPolicies.Vtadmin, - ImagePullSecrets: vt.Spec.ImagePullSecrets, - Labels: labels, - Replicas: *vt.Spec.VtAdmin.Replicas, - APIResources: vt.Spec.VtAdmin.APIResources, - WebResources: vt.Spec.VtAdmin.WebResources, - Affinity: vt.Spec.VtAdmin.Affinity, - ExtraFlags: extraFlags, - ExtraEnv: vt.Spec.VtAdmin.ExtraEnv, - ExtraVolumes: vt.Spec.VtAdmin.ExtraVolumes, - ExtraVolumeMounts: vt.Spec.VtAdmin.ExtraVolumeMounts, - InitContainers: vt.Spec.VtAdmin.InitContainers, - SidecarContainers: vt.Spec.VtAdmin.SidecarContainers, - Annotations: vt.Spec.VtAdmin.Annotations, - ExtraLabels: vt.Spec.VtAdmin.ExtraLabels, - Tolerations: vt.Spec.VtAdmin.Tolerations, + Cell: cell, + Discovery: discoverySecret, + ClusterConfig: clusterConfigSecret, + Rbac: vt.Spec.VtAdmin.Rbac, + WebConfig: webConfigSecret, + Image: vt.Spec.Images.Vtadmin, + ImagePullPolicy: vt.Spec.ImagePullPolicies.Vtadmin, + ImagePullSecrets: vt.Spec.ImagePullSecrets, + Labels: labels, + Replicas: *vt.Spec.VtAdmin.Replicas, + APIResources: vt.Spec.VtAdmin.APIResources, + WebResources: vt.Spec.VtAdmin.WebResources, + Affinity: vt.Spec.VtAdmin.Affinity, + ExtraFlags: extraFlags, + ExtraEnv: vt.Spec.VtAdmin.ExtraEnv, + ExtraVolumes: vt.Spec.VtAdmin.ExtraVolumes, + ExtraVolumeMounts: vt.Spec.VtAdmin.ExtraVolumeMounts, + InitContainers: vt.Spec.VtAdmin.InitContainers, + SidecarContainers: vt.Spec.VtAdmin.SidecarContainers, + Annotations: vt.Spec.VtAdmin.Annotations, + ExtraLabels: vt.Spec.VtAdmin.ExtraLabels, + Tolerations: vt.Spec.VtAdmin.Tolerations, + TopologySpreadConstraints: vt.Spec.VtAdmin.TopologySpreadConstraints, }) } return specs, nil diff --git a/pkg/controller/vitesscluster/reconcile_vtctld.go b/pkg/controller/vitesscluster/reconcile_vtctld.go index 3520544f..627311e4 100644 --- a/pkg/controller/vitesscluster/reconcile_vtctld.go +++ b/pkg/controller/vitesscluster/reconcile_vtctld.go @@ -171,26 +171,27 @@ func (r *ReconcileVitessCluster) vtctldSpecs(vt *planetscalev2.VitessCluster, pa } specs = append(specs, &vtctld.Spec{ - GlobalLockserver: glsParams, - Image: vt.Spec.Images.Vtctld, - ImagePullPolicy: vt.Spec.ImagePullPolicies.Vtctld, - ImagePullSecrets: vt.Spec.ImagePullSecrets, - Cell: cell, - Labels: labels, - Replicas: *vt.Spec.VitessDashboard.Replicas, - Resources: vt.Spec.VitessDashboard.Resources, - Affinity: vt.Spec.VitessDashboard.Affinity, - ExtraFlags: extraFlags, - ExtraEnv: vt.Spec.VitessDashboard.ExtraEnv, - ExtraVolumes: vt.Spec.VitessDashboard.ExtraVolumes, - ExtraVolumeMounts: vt.Spec.VitessDashboard.ExtraVolumeMounts, - InitContainers: vt.Spec.VitessDashboard.InitContainers, - SidecarContainers: vt.Spec.VitessDashboard.SidecarContainers, - Annotations: vt.Spec.VitessDashboard.Annotations, - ExtraLabels: vt.Spec.VitessDashboard.ExtraLabels, - Tolerations: vt.Spec.VitessDashboard.Tolerations, - BackupEngine: backupEngine, - BackupLocation: backupLocation, + GlobalLockserver: glsParams, + Image: vt.Spec.Images.Vtctld, + ImagePullPolicy: vt.Spec.ImagePullPolicies.Vtctld, + ImagePullSecrets: vt.Spec.ImagePullSecrets, + Cell: cell, + Labels: labels, + Replicas: *vt.Spec.VitessDashboard.Replicas, + Resources: vt.Spec.VitessDashboard.Resources, + Affinity: vt.Spec.VitessDashboard.Affinity, + ExtraFlags: extraFlags, + ExtraEnv: vt.Spec.VitessDashboard.ExtraEnv, + ExtraVolumes: vt.Spec.VitessDashboard.ExtraVolumes, + ExtraVolumeMounts: vt.Spec.VitessDashboard.ExtraVolumeMounts, + InitContainers: vt.Spec.VitessDashboard.InitContainers, + SidecarContainers: vt.Spec.VitessDashboard.SidecarContainers, + Annotations: vt.Spec.VitessDashboard.Annotations, + ExtraLabels: vt.Spec.VitessDashboard.ExtraLabels, + Tolerations: vt.Spec.VitessDashboard.Tolerations, + TopologySpreadConstraints: vt.Spec.VitessDashboard.TopologySpreadConstraints, + BackupEngine: backupEngine, + BackupLocation: backupLocation, }) } diff --git a/pkg/controller/vitessshard/reconcile_backup_job.go b/pkg/controller/vitessshard/reconcile_backup_job.go index f580ce91..2064b7ab 100644 --- a/pkg/controller/vitessshard/reconcile_backup_job.go +++ b/pkg/controller/vitessshard/reconcile_backup_job.go @@ -229,27 +229,28 @@ func vtbackupSpec(key client.ObjectKey, vts *planetscalev2.VitessShard, parentLa // Fill in the parts of a vttablet spec that make sense for vtbackup. tabletSpec := &vttablet.Spec{ - GlobalLockserver: vts.Spec.GlobalLockserver, - Labels: labels, - Images: vts.Spec.Images, - KeyRange: vts.Spec.KeyRange, - Vttablet: &pool.Vttablet, - Mysqld: pool.Mysqld, - MysqldExporter: pool.MysqldExporter, - DataVolumePVCName: key.Name, - DataVolumePVCSpec: pool.DataVolumeClaimTemplate, - KeyspaceName: keyspaceName, - DatabaseName: vts.Spec.DatabaseName, - DatabaseInitScriptSecret: vts.Spec.DatabaseInitScriptSecret, - BackupLocation: backupLocation, - BackupEngine: vts.Spec.BackupEngine, - InitContainers: pool.InitContainers, - SidecarContainers: pool.SidecarContainers, - ExtraEnv: pool.ExtraEnv, - Annotations: annotations, - Affinity: pool.Affinity, - Tolerations: pool.Tolerations, - ImagePullSecrets: vts.Spec.ImagePullSecrets, + GlobalLockserver: vts.Spec.GlobalLockserver, + Labels: labels, + Images: vts.Spec.Images, + KeyRange: vts.Spec.KeyRange, + Vttablet: &pool.Vttablet, + Mysqld: pool.Mysqld, + MysqldExporter: pool.MysqldExporter, + DataVolumePVCName: key.Name, + DataVolumePVCSpec: pool.DataVolumeClaimTemplate, + KeyspaceName: keyspaceName, + DatabaseName: vts.Spec.DatabaseName, + DatabaseInitScriptSecret: vts.Spec.DatabaseInitScriptSecret, + BackupLocation: backupLocation, + BackupEngine: vts.Spec.BackupEngine, + InitContainers: pool.InitContainers, + SidecarContainers: pool.SidecarContainers, + ExtraEnv: pool.ExtraEnv, + Annotations: annotations, + Affinity: pool.Affinity, + Tolerations: pool.Tolerations, + TopologySpreadConstraints: pool.TopologySpreadConstraints, + ImagePullSecrets: vts.Spec.ImagePullSecrets, } return &vttablet.BackupSpec{ diff --git a/pkg/controller/vitessshard/reconcile_vtorc.go b/pkg/controller/vitessshard/reconcile_vtorc.go index 05d6886d..cdce15be 100644 --- a/pkg/controller/vitessshard/reconcile_vtorc.go +++ b/pkg/controller/vitessshard/reconcile_vtorc.go @@ -136,26 +136,27 @@ func (r *ReconcileVitessShard) vtorcSpecs(vts *planetscalev2.VitessShard, parent update.StringMap(&extraFlags, vts.Spec.VitessOrchestrator.ExtraFlags) specs = append(specs, &vtorc.Spec{ - GlobalLockserver: vts.Spec.GlobalLockserver, - Image: vts.Spec.Images.Vtorc, - ImagePullPolicy: vts.Spec.ImagePullPolicies.Vtorc, - ImagePullSecrets: vts.Spec.ImagePullSecrets, - Keyspace: parentLabels[planetscalev2.KeyspaceLabel], - Shard: vts.Spec.KeyRange.String(), - Cell: tabletPool.Cell, - Zone: vts.Spec.ZoneMap[tabletPool.Cell], - Labels: labels, - Resources: vts.Spec.VitessOrchestrator.Resources, - Affinity: vts.Spec.VitessOrchestrator.Affinity, - ExtraFlags: extraFlags, - ExtraEnv: vts.Spec.VitessOrchestrator.ExtraEnv, - ExtraVolumes: vts.Spec.VitessOrchestrator.ExtraVolumes, - ExtraVolumeMounts: vts.Spec.VitessOrchestrator.ExtraVolumeMounts, - InitContainers: vts.Spec.VitessOrchestrator.InitContainers, - SidecarContainers: vts.Spec.VitessOrchestrator.SidecarContainers, - Annotations: vts.Spec.VitessOrchestrator.Annotations, - ExtraLabels: vts.Spec.VitessOrchestrator.ExtraLabels, - Tolerations: vts.Spec.VitessOrchestrator.Tolerations, + GlobalLockserver: vts.Spec.GlobalLockserver, + Image: vts.Spec.Images.Vtorc, + ImagePullPolicy: vts.Spec.ImagePullPolicies.Vtorc, + ImagePullSecrets: vts.Spec.ImagePullSecrets, + Keyspace: parentLabels[planetscalev2.KeyspaceLabel], + Shard: vts.Spec.KeyRange.String(), + Cell: tabletPool.Cell, + Zone: vts.Spec.ZoneMap[tabletPool.Cell], + Labels: labels, + Resources: vts.Spec.VitessOrchestrator.Resources, + Affinity: vts.Spec.VitessOrchestrator.Affinity, + ExtraFlags: extraFlags, + ExtraEnv: vts.Spec.VitessOrchestrator.ExtraEnv, + ExtraVolumes: vts.Spec.VitessOrchestrator.ExtraVolumes, + ExtraVolumeMounts: vts.Spec.VitessOrchestrator.ExtraVolumeMounts, + InitContainers: vts.Spec.VitessOrchestrator.InitContainers, + SidecarContainers: vts.Spec.VitessOrchestrator.SidecarContainers, + Annotations: vts.Spec.VitessOrchestrator.Annotations, + ExtraLabels: vts.Spec.VitessOrchestrator.ExtraLabels, + Tolerations: vts.Spec.VitessOrchestrator.Tolerations, + TopologySpreadConstraints: vts.Spec.VitessOrchestrator.TopologySpreadConstraints, }) } return specs diff --git a/pkg/operator/contenthash/topology_spread_constraints.go b/pkg/operator/contenthash/topology_spread_constraints.go index 505a8c93..13891bc9 100644 --- a/pkg/operator/contenthash/topology_spread_constraints.go +++ b/pkg/operator/contenthash/topology_spread_constraints.go @@ -20,6 +20,7 @@ package contenthash import ( "crypto/md5" "encoding/hex" + "strings" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -42,7 +43,16 @@ func TopologySpreadConstraints(in []corev1.TopologySpreadConstraint) string { labelSelectors = map[string]string{} } writeStringHash(h, StringMap(labelSelectors)) - + writeStringHash(h, strings.Join(tsc.MatchLabelKeys, "")) + if tsc.MinDomains != nil { + writeStringHash(h, string(*tsc.MinDomains)) + } + if tsc.NodeAffinityPolicy != nil { + writeStringHash(h, string(*tsc.NodeAffinityPolicy)) + } + if tsc.NodeTaintsPolicy != nil { + writeStringHash(h, string(*tsc.NodeTaintsPolicy)) + } } sum := h.Sum(nil) diff --git a/pkg/operator/contenthash/topology_spread_constraints_test.go b/pkg/operator/contenthash/topology_spread_constraints_test.go new file mode 100644 index 00000000..723bc347 --- /dev/null +++ b/pkg/operator/contenthash/topology_spread_constraints_test.go @@ -0,0 +1,64 @@ +/* +Copyright 2024 PlanetScale Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package contenthash + +import ( + "testing" + + corev1 "k8s.io/api/core/v1" + "k8s.io/utils/ptr" +) + +func TestTopologySpreadConstraintMinDomainsSecondsNil(t *testing.T) { + // Make sure nil is distinguishable from 0. + nilHash := TopologySpreadConstraints([]corev1.TopologySpreadConstraint{ + {MinDomains: nil}, + }) + zeroHash := TopologySpreadConstraints([]corev1.TopologySpreadConstraint{ + + {MinDomains: ptr.To(int32(0))}, + }) + if nilHash == zeroHash { + t.Errorf("nilHash = zeroHash = %v; expected different values", nilHash) + } +} + +func TestTopologySpreadConstraintNodeAffinityPolicysNil(t *testing.T) { + // Make sure nil is distinguishable from 0. + nilHash := TopologySpreadConstraints([]corev1.TopologySpreadConstraint{ + {NodeAffinityPolicy: nil}, + }) + honorHash := TopologySpreadConstraints([]corev1.TopologySpreadConstraint{ + {NodeAffinityPolicy: ptr.To(corev1.NodeInclusionPolicyHonor)}, + }) + if nilHash == honorHash { + t.Errorf("nilHash = zeroHash = %v; expected different values", nilHash) + } +} + +func TestTopologySpreadConstraintNodeTaintsPolicysNil(t *testing.T) { + // Make sure nil is distinguishable from 0. + nilHash := TopologySpreadConstraints([]corev1.TopologySpreadConstraint{ + {NodeTaintsPolicy: nil}, + }) + honorHash := TopologySpreadConstraints([]corev1.TopologySpreadConstraint{ + {NodeTaintsPolicy: ptr.To(corev1.NodeInclusionPolicyHonor)}, + }) + if nilHash == honorHash { + t.Errorf("nilHash = zeroHash = %v; expected different values", nilHash) + } +} diff --git a/pkg/operator/desiredstatehash/builder_test.go b/pkg/operator/desiredstatehash/builder_test.go index 3181cae5..8f5ddd11 100644 --- a/pkg/operator/desiredstatehash/builder_test.go +++ b/pkg/operator/desiredstatehash/builder_test.go @@ -46,6 +46,8 @@ func TestEmptyValues(t *testing.T) { b.AddContainersUpdates("empty ContainersUpdates", []corev1.Container{}) b.AddTolerations("nil Tolerations", nil) b.AddTolerations("empty Tolerations", []corev1.Toleration{}) + b.AddTopologySpreadConstraints("nil TopologySpreadConstraints", nil) + b.AddTopologySpreadConstraints("empty TopologySpreadConstraints", []corev1.TopologySpreadConstraint{}) b.AddVolumeNames("nil VolumeNames", nil) b.AddVolumeNames("empty VolumeNames", []corev1.Volume{}) diff --git a/pkg/operator/etcd/pod.go b/pkg/operator/etcd/pod.go index 657775db..17fe8d7d 100644 --- a/pkg/operator/etcd/pod.go +++ b/pkg/operator/etcd/pod.go @@ -66,27 +66,28 @@ func PodName(lockserverName string, index int) string { // Spec specifies all the internal parameters needed to deploy an etcd instance. type Spec struct { - LockserverName string - Image string - ImagePullPolicy corev1.PullPolicy - ImagePullSecrets []corev1.LocalObjectReference - Resources corev1.ResourceRequirements - Labels map[string]string - Zone string - Index int - DataVolumePVCName string - DataVolumePVCSpec *corev1.PersistentVolumeClaimSpec - ExtraFlags map[string]string - ExtraEnv []corev1.EnvVar - ExtraVolumes []corev1.Volume - ExtraVolumeMounts []corev1.VolumeMount - InitContainers []corev1.Container - SidecarContainers []corev1.Container - Affinity *corev1.Affinity - Annotations map[string]string - ExtraLabels map[string]string - AdvertisePeerURLs []string - Tolerations []corev1.Toleration + LockserverName string + Image string + ImagePullPolicy corev1.PullPolicy + ImagePullSecrets []corev1.LocalObjectReference + Resources corev1.ResourceRequirements + Labels map[string]string + Zone string + Index int + DataVolumePVCName string + DataVolumePVCSpec *corev1.PersistentVolumeClaimSpec + ExtraFlags map[string]string + ExtraEnv []corev1.EnvVar + ExtraVolumes []corev1.Volume + ExtraVolumeMounts []corev1.VolumeMount + InitContainers []corev1.Container + SidecarContainers []corev1.Container + Affinity *corev1.Affinity + Annotations map[string]string + ExtraLabels map[string]string + AdvertisePeerURLs []string + Tolerations []corev1.Toleration + TopologySpreadConstraints []corev1.TopologySpreadConstraint } // NewPod creates a new etcd Pod. @@ -300,6 +301,7 @@ func UpdatePod(obj *corev1.Pod, spec *Spec) { } update.Tolerations(&obj.Spec.Tolerations, spec.Tolerations) + update.TopologySpreadConstraints(&obj.Spec.TopologySpreadConstraints, spec.TopologySpreadConstraints) // Use the PriorityClass we defined for etcd in deploy/priority.yaml, // or a custom value if overridden in the operator command line. @@ -329,6 +331,10 @@ func UpdatePod(obj *corev1.Pod, spec *Spec) { // one disappears from the desired list. desiredStateHash.AddTolerations("tolerations", spec.Tolerations) + // Record a hash of desired topologySpreadConstraints to force the Pod to be + // recreated if one disappears from the desired list. + desiredStateHash.AddTopologySpreadConstraints("topologySpreadConstraints", spec.TopologySpreadConstraints) + // Add the final desired state hash annotation. update.Annotations(&obj.Annotations, map[string]string{ desiredstatehash.Annotation: desiredStateHash.String(), diff --git a/pkg/operator/update/podspec.go b/pkg/operator/update/podspec.go index 4742d9ed..702e4e62 100644 --- a/pkg/operator/update/podspec.go +++ b/pkg/operator/update/podspec.go @@ -20,7 +20,6 @@ import ( "reflect" corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // Volumes updates entries in 'dst' based on the values in 'src'. @@ -302,21 +301,10 @@ func TopologySpreadConstraints(dst *[]corev1.TopologySpreadConstraint, src []cor srcLoop: for srcIndex := range src { srcObj := &src[srcIndex] - srcMap, srcErr := metav1.LabelSelectorAsMap(srcObj.LabelSelector) - if srcErr != nil { - // There is no return of error for this function - // or its callers, which makes this a bit of a hack - srcMap = map[string]string{} - } // If this item is already there, update it. for dstIndex := range *dst { dstObj := &(*dst)[dstIndex] - dstMap, dstErr := metav1.LabelSelectorAsMap(dstObj.LabelSelector) - if dstErr != nil { - dstMap = map[string]string{} - } - if reflect.DeepEqual(dstMap, srcMap) { - *dstObj = *srcObj + if reflect.DeepEqual(srcObj, dstObj) { continue srcLoop } } diff --git a/pkg/operator/update/podspec_test.go b/pkg/operator/update/podspec_test.go index 2198e8a9..b0113ce1 100644 --- a/pkg/operator/update/podspec_test.go +++ b/pkg/operator/update/podspec_test.go @@ -21,6 +21,7 @@ import ( corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestTolerations(t *testing.T) { @@ -41,3 +42,98 @@ func TestTolerations(t *testing.T) { t.Errorf("val = %#v; want %#v", val, want) } } + +func TestTopologySpreadConstraints(t *testing.T) { + // Make sure we don't touch topology spread constraints that were already there. + val := []corev1.TopologySpreadConstraint{ + { + MaxSkew: 1, + TopologyKey: "existing-retain", + WhenUnsatisfiable: corev1.DoNotSchedule, + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "example-existing": "test", + }, + }, + }, + { + MaxSkew: 1, + TopologyKey: "existing-do-not-override", + WhenUnsatisfiable: corev1.DoNotSchedule, + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "example-override": "test", + }, + }, + }, + } + want := []corev1.TopologySpreadConstraint{ + { + MaxSkew: 1, + TopologyKey: "existing-retain", + WhenUnsatisfiable: corev1.DoNotSchedule, + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "example-existing": "test", + }, + }, + }, + { + MaxSkew: 1, + TopologyKey: "existing-do-not-override", + WhenUnsatisfiable: corev1.DoNotSchedule, + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "example-override": "test", + }, + }, + }, + { + MaxSkew: 2, + TopologyKey: "new-1", + WhenUnsatisfiable: corev1.ScheduleAnyway, + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "example-new": "new-1", + }, + }, + }, + { + MaxSkew: 2, + TopologyKey: "new-2", + WhenUnsatisfiable: corev1.DoNotSchedule, + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "example-override": "test", + }, + }, + }, + } + + TopologySpreadConstraints(&val, []corev1.TopologySpreadConstraint{ + { + MaxSkew: 2, + TopologyKey: "new-1", + WhenUnsatisfiable: corev1.ScheduleAnyway, + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "example-new": "new-1", + }, + }, + }, + { + MaxSkew: 2, + TopologyKey: "new-2", + WhenUnsatisfiable: corev1.DoNotSchedule, + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "example-override": "test", + }, + }, + }, + }) + + if !equality.Semantic.DeepEqual(val, want) { + t.Errorf("val = %#v; want %#v", val, want) + } +} diff --git a/pkg/operator/vtadmin/deployment.go b/pkg/operator/vtadmin/deployment.go index 76132da6..540d77b6 100644 --- a/pkg/operator/vtadmin/deployment.go +++ b/pkg/operator/vtadmin/deployment.go @@ -87,26 +87,27 @@ type Spec struct { ClusterConfig *planetscalev2.SecretSource // Discovery holds the secret information for the vtctld and vtgate // endpoints to use by vtadmin - Discovery *planetscalev2.SecretSource - Rbac *planetscalev2.SecretSource - WebConfig *planetscalev2.SecretSource - Image string - ImagePullPolicy corev1.PullPolicy - ImagePullSecrets []corev1.LocalObjectReference - Labels map[string]string - Replicas int32 - APIResources corev1.ResourceRequirements - WebResources corev1.ResourceRequirements - Affinity *corev1.Affinity - ExtraFlags map[string]string - ExtraEnv []corev1.EnvVar - ExtraVolumes []corev1.Volume - ExtraVolumeMounts []corev1.VolumeMount - InitContainers []corev1.Container - SidecarContainers []corev1.Container - Annotations map[string]string - ExtraLabels map[string]string - Tolerations []corev1.Toleration + Discovery *planetscalev2.SecretSource + Rbac *planetscalev2.SecretSource + WebConfig *planetscalev2.SecretSource + Image string + ImagePullPolicy corev1.PullPolicy + ImagePullSecrets []corev1.LocalObjectReference + Labels map[string]string + Replicas int32 + APIResources corev1.ResourceRequirements + WebResources corev1.ResourceRequirements + Affinity *corev1.Affinity + ExtraFlags map[string]string + ExtraEnv []corev1.EnvVar + ExtraVolumes []corev1.Volume + ExtraVolumeMounts []corev1.VolumeMount + InitContainers []corev1.Container + SidecarContainers []corev1.Container + Annotations map[string]string + ExtraLabels map[string]string + Tolerations []corev1.Toleration + TopologySpreadConstraints []corev1.TopologySpreadConstraint } // NewDeployment creates a new Deployment object for vtadmin. @@ -175,6 +176,7 @@ func UpdateDeployment(obj *appsv1.Deployment, spec *Spec) { obj.Spec.Template.Spec.PriorityClassName = planetscalev2.DefaultVitessPriorityClass obj.Spec.Template.Spec.ServiceAccountName = planetscalev2.DefaultVitessServiceAccount obj.Spec.Template.Spec.Tolerations = spec.Tolerations + obj.Spec.Template.Spec.TopologySpreadConstraints = spec.TopologySpreadConstraints update.Volumes(&obj.Spec.Template.Spec.Volumes, spec.ExtraVolumes) securityContext := &corev1.SecurityContext{} diff --git a/pkg/operator/vtctld/deployment.go b/pkg/operator/vtctld/deployment.go index 43b628ff..0c831e05 100644 --- a/pkg/operator/vtctld/deployment.go +++ b/pkg/operator/vtctld/deployment.go @@ -52,26 +52,27 @@ func DeploymentName(clusterName, cellName string) string { // Spec specifies all the internal parameters needed to deploy vtctld, // as opposed to the API type planetscalev2.VitessDashboardSpec, which is the public API. type Spec struct { - GlobalLockserver *planetscalev2.VitessLockserverParams - Cell *planetscalev2.VitessCellTemplate - Image string - ImagePullPolicy corev1.PullPolicy - ImagePullSecrets []corev1.LocalObjectReference - Labels map[string]string - Replicas int32 - Resources corev1.ResourceRequirements - Affinity *corev1.Affinity - ExtraFlags map[string]string - ExtraEnv []corev1.EnvVar - ExtraVolumes []corev1.Volume - ExtraVolumeMounts []corev1.VolumeMount - InitContainers []corev1.Container - SidecarContainers []corev1.Container - Annotations map[string]string - ExtraLabels map[string]string - Tolerations []corev1.Toleration - BackupLocation *planetscalev2.VitessBackupLocation - BackupEngine planetscalev2.VitessBackupEngine + GlobalLockserver *planetscalev2.VitessLockserverParams + Cell *planetscalev2.VitessCellTemplate + Image string + ImagePullPolicy corev1.PullPolicy + ImagePullSecrets []corev1.LocalObjectReference + Labels map[string]string + Replicas int32 + Resources corev1.ResourceRequirements + Affinity *corev1.Affinity + ExtraFlags map[string]string + ExtraEnv []corev1.EnvVar + ExtraVolumes []corev1.Volume + ExtraVolumeMounts []corev1.VolumeMount + InitContainers []corev1.Container + SidecarContainers []corev1.Container + Annotations map[string]string + ExtraLabels map[string]string + Tolerations []corev1.Toleration + TopologySpreadConstraints []corev1.TopologySpreadConstraint + BackupLocation *planetscalev2.VitessBackupLocation + BackupEngine planetscalev2.VitessBackupEngine } // NewDeployment creates a new Deployment object for vtctld. @@ -141,6 +142,7 @@ func UpdateDeployment(obj *appsv1.Deployment, spec *Spec, mysqldImage string) { obj.Spec.Template.Spec.PriorityClassName = planetscalev2.DefaultVitessPriorityClass obj.Spec.Template.Spec.ServiceAccountName = planetscalev2.DefaultVitessServiceAccount obj.Spec.Template.Spec.Tolerations = spec.Tolerations + obj.Spec.Template.Spec.TopologySpreadConstraints = spec.TopologySpreadConstraints volumes := spec.ExtraVolumes volumeMounts := spec.ExtraVolumeMounts env := spec.ExtraEnv diff --git a/pkg/operator/vtorc/deployment.go b/pkg/operator/vtorc/deployment.go index 01332817..3e38deb1 100644 --- a/pkg/operator/vtorc/deployment.go +++ b/pkg/operator/vtorc/deployment.go @@ -51,26 +51,27 @@ func DeploymentName(clusterName, keyspace string, shardKeyRange planetscalev2.Vi // Spec specifies all the internal parameters needed to deploy VTOrc, // as opposed to the API type planetscalev2.VitessDashboardSpec, which is the public API. type Spec struct { - GlobalLockserver planetscalev2.VitessLockserverParams - Keyspace string - Shard string - Cell string - Zone string - Image string - ImagePullPolicy corev1.PullPolicy - ImagePullSecrets []corev1.LocalObjectReference - Labels map[string]string - Resources corev1.ResourceRequirements - Affinity *corev1.Affinity - ExtraFlags map[string]string - ExtraEnv []corev1.EnvVar - ExtraVolumes []corev1.Volume - ExtraVolumeMounts []corev1.VolumeMount - InitContainers []corev1.Container - SidecarContainers []corev1.Container - Annotations map[string]string - ExtraLabels map[string]string - Tolerations []corev1.Toleration + GlobalLockserver planetscalev2.VitessLockserverParams + Keyspace string + Shard string + Cell string + Zone string + Image string + ImagePullPolicy corev1.PullPolicy + ImagePullSecrets []corev1.LocalObjectReference + Labels map[string]string + Resources corev1.ResourceRequirements + Affinity *corev1.Affinity + ExtraFlags map[string]string + ExtraEnv []corev1.EnvVar + ExtraVolumes []corev1.Volume + ExtraVolumeMounts []corev1.VolumeMount + InitContainers []corev1.Container + SidecarContainers []corev1.Container + Annotations map[string]string + ExtraLabels map[string]string + Tolerations []corev1.Toleration + TopologySpreadConstraints []corev1.TopologySpreadConstraint } // NewDeployment creates a new Deployment object for vtorc. @@ -136,6 +137,7 @@ func UpdateDeployment(obj *appsv1.Deployment, spec *Spec) { obj.Spec.Template.Spec.PriorityClassName = planetscalev2.DefaultVitessPriorityClass obj.Spec.Template.Spec.ServiceAccountName = planetscalev2.DefaultVitessServiceAccount obj.Spec.Template.Spec.Tolerations = spec.Tolerations + obj.Spec.Template.Spec.TopologySpreadConstraints = spec.TopologySpreadConstraints update.Volumes(&obj.Spec.Template.Spec.Volumes, spec.ExtraVolumes) securityContext := &corev1.SecurityContext{} diff --git a/pkg/operator/vttablet/vtbackup_pod.go b/pkg/operator/vttablet/vtbackup_pod.go index 813257f9..e3f17132 100644 --- a/pkg/operator/vttablet/vtbackup_pod.go +++ b/pkg/operator/vttablet/vtbackup_pod.go @@ -143,12 +143,13 @@ func NewBackupPod(key client.ObjectKey, backupSpec *BackupSpec, mysqldImage stri Annotations: tabletAnnotations.Get(tabletSpec), }, Spec: corev1.PodSpec{ - ImagePullSecrets: tabletSpec.ImagePullSecrets, - RestartPolicy: corev1.RestartPolicyOnFailure, - Volumes: tabletVolumes.Get(tabletSpec), - SecurityContext: podSecurityContext, - Affinity: tabletSpec.Affinity, - Tolerations: tabletSpec.Tolerations, + ImagePullSecrets: tabletSpec.ImagePullSecrets, + RestartPolicy: corev1.RestartPolicyOnFailure, + Volumes: tabletVolumes.Get(tabletSpec), + SecurityContext: podSecurityContext, + Affinity: tabletSpec.Affinity, + Tolerations: tabletSpec.Tolerations, + TopologySpreadConstraints: tabletSpec.TopologySpreadConstraints, InitContainers: []corev1.Container{ { Name: "init-vt-root", diff --git a/test/endtoend/operator/operator-latest.yaml b/test/endtoend/operator/operator-latest.yaml index e7e3d6b9..baa437b1 100644 --- a/test/endtoend/operator/operator-latest.yaml +++ b/test/endtoend/operator/operator-latest.yaml @@ -11,319 +11,321 @@ 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 + 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 - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - tolerations: - x-kubernetes-preserve-unknown-fields: true - zone: - type: string - type: object - status: - properties: - available: + type: array + extraFlags: + additionalProperties: type: string - clientServiceName: + type: object + extraLabels: + additionalProperties: type: string - observedGeneration: - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} + 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 + topologySpreadConstraints: + 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 @@ -338,44 +340,44 @@ spec: listKind: VitessBackupList plural: vitessbackups shortNames: - - vtb + - 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 + - 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 @@ -392,162 +394,162 @@ spec: 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: - additionalProperties: - type: string - type: object - cluster: - type: string - concurrencyPolicy: - enum: - - Allow - - Forbid - example: Forbid - type: string - failedJobsHistoryLimit: - format: int32 - minimum: 0 - type: integer - image: - type: string - imagePullPolicy: + - 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 - 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: object + cluster: + type: string + concurrencyPolicy: + enum: + - Allow + - Forbid + example: Forbid + type: string + failedJobsHistoryLimit: + format: int32 + minimum: 0 + type: integer + 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 - type: object - keyspace: - example: commerce - type: string - name: - enum: - - BackupShard - type: string - shard: - example: '-' - type: string - required: - - keyspace + request: + type: string + required: - name - - shard + 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 - minItems: 1 - type: array - successfulJobsHistoryLimit: - format: int32 - minimum: 0 - type: integer - suspend: - type: boolean - required: - - cluster - - name - - resources - - schedule - - 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 + 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 - x-kubernetes-map-type: atomic - type: array - lastScheduledTime: - format: date-time - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} + 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: + enum: + - BackupShard + type: string + shard: + example: '-' + type: string + required: + - keyspace + - name + - shard + type: object + minItems: 1 + type: array + successfulJobsHistoryLimit: + format: int32 + minimum: 0 + type: integer + suspend: + type: boolean + required: + - cluster + - name + - resources + - schedule + - 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 + lastScheduledTime: + format: date-time + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition @@ -562,157 +564,157 @@ spec: listKind: VitessBackupStorageList plural: vitessbackupstorages shortNames: - - vtbs + - vtbs singular: vitessbackupstorage 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 - region: - minLength: 1 - type: string - required: - - bucket - - region - type: object - volume: - x-kubernetes-preserve-unknown-fields: true - volumeSubPath: + - name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + location: + properties: + annotations: + additionalProperties: 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: {} + 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 + 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 @@ -727,5074 +729,4636 @@ spec: listKind: VitessCellList plural: vitesscells shortNames: - - vtc + - 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: + - 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 + 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: - secret: + 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: - - key + - container + - name + - target type: object - type: object - type: object - autoscaler: - properties: - behavior: - properties: - scaleDown: + external: 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 + 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 - scaleUp: + object: 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 + describedObject: + properties: + apiVersion: + type: string + kind: + type: string + name: + type: string + required: + - kind - name - - target - type: object - external: - properties: - metric: - properties: - name: - type: string - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: + type: object + metric: + properties: + name: + type: string + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: 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: array + x-kubernetes-list-type: atomic + required: + - key + - operator 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: 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 - 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: array + x-kubernetes-list-type: atomic + required: + - key + - operator 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: + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + 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: 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 - 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 + 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: - - seconds + - metric + - target type: object - tcpSocket: + resource: properties: - host: + name: type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true + 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: - - port + - name + - target type: object + type: + type: string + required: + - type type: object - preStop: + 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: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: + configMapKeyRef: 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: + key: type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: + name: + default: "" type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true + optional: + type: boolean required: - - port + - key 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: + x-kubernetes-map-type: atomic + fieldRef: properties: - key: - type: string - name: + apiVersion: type: string - volumeName: + fieldPath: type: string required: - - key + - fieldPath type: object - clientCACertSecret: + x-kubernetes-map-type: atomic + resourceFieldRef: properties: - key: + containerName: type: string - name: - type: string - volumeName: + 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: - - key + - resource type: object - keySecret: + x-kubernetes-map-type: atomic + secretKeyRef: properties: key: type: string name: + default: "" type: string - volumeName: - type: string + optional: + type: boolean required: - - key + - key type: object + x-kubernetes-map-type: atomic type: object + required: + - name type: object - service: - properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: - type: string - type: object - sidecarContainers: - x-kubernetes-preserve-unknown-fields: true - 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: array + extraFlags: + additionalProperties: 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: + extraLabels: + additionalProperties: type: string - type: object - lockserver: - properties: - cellInfoAddress: - type: string - etcd: + type: object + extraVolumeMounts: + items: 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: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: 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: + 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 - 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: + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: properties: - name: + host: type: string - value: + 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 - 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 + - port type: object - type: array - extraFlags: - additionalProperties: - type: string - type: object - extraLabels: - additionalProperties: - type: string - type: object - extraVolumeMounts: - items: + sleep: properties: - mountPath: - type: string - mountPropagation: - type: string - name: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: type: string - readOnly: - type: boolean - recursiveReadOnly: + 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 - subPath: + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: type: string - subPathExpr: + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: type: string required: - - mountPath - - name + - port type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - image: - type: string - imagePullPolicy: - type: string - imagePullSecrets: - items: + sleep: properties: - name: - default: "" + 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 - x-kubernetes-map-type: atomic - type: array - initContainers: - x-kubernetes-preserve-unknown-fields: true - localMemberIndex: - format: int32 - maximum: 3 - minimum: 1 - type: integer - peerService: + type: object + type: object + replicas: + format: int32 + minimum: 0 + type: integer + resources: + properties: + claims: + items: properties: - annotations: - additionalProperties: - type: string - type: object - clusterIP: + name: type: string + request: + type: string + required: + - name 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: 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 - 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.16.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 - locations: - items: + secureTransport: + properties: + required: + type: boolean + tls: properties: - annotations: - additionalProperties: - type: string - type: object - azblob: + certSecret: properties: - account: - minLength: 1 + key: type: string - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - container: - minLength: 1 + name: type: string - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ + volumeName: 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 + - key type: object - gcs: + clientCACertSecret: properties: - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - bucket: - minLength: 1 + key: + type: string + name: type: string - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ + volumeName: type: string required: - - bucket + - key type: object - name: - maxLength: 63 - pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-z0-9])?$ - type: string - s3: + keySecret: properties: - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key - type: object - bucket: - minLength: 1 - type: string - endpoint: + key: type: string - forcePathStyle: - type: boolean - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ + name: type: string - region: - minLength: 1 + volumeName: type: string required: - - bucket - - region + - key type: object - volume: - x-kubernetes-preserve-unknown-fields: true - volumeSubPath: - type: string type: object - minItems: 1 - type: array - schedules: - items: + type: object + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + 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: - affinity: - x-kubernetes-preserve-unknown-fields: true - allowedMissedRun: - minimum: 0 - type: integer annotations: additionalProperties: type: string type: object - concurrencyPolicy: - enum: - - Allow - - Forbid - example: Forbid + clusterIP: type: string - failedJobsHistoryLimit: - format: int32 - minimum: 0 - type: integer - 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: + 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: - 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: + 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 + - 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 + 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 - startingDeadlineSeconds: - format: int64 - minimum: 0 - type: integer - strategies: - items: + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + extraEnv: + items: + properties: + name: + type: string + value: + type: string + valueFrom: properties: - extraFlags: - additionalProperties: - type: string + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key type: object - keyspace: - example: commerce - type: string - name: - enum: - - BackupShard - type: string - shard: - example: '-' - type: string - required: - - keyspace - - name - - shard + 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 - minItems: 1 - type: array - successfulJobsHistoryLimit: - format: int32 - minimum: 0 - type: integer - suspend: - type: boolean - required: + required: - name - - resources - - schedule - - strategies + type: object + type: array + extraFlags: + additionalProperties: + type: string type: object - type: array - subcontroller: - properties: - serviceAccountName: + extraLabels: + additionalProperties: type: string - type: object - required: - - locations - type: object - cells: - items: - properties: - gateway: + 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: - 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 + 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 - 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 - 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 - 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 - 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 + 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 - 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 + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + x-kubernetes-preserve-unknown-fields: true 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: + external: properties: - annotations: - additionalProperties: - type: string - type: object - databaseName: + address: type: string - durabilityPolicy: + implementation: 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])?$ + rootPath: 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 - 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: - 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 - 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 - 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: + - 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.16.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 + 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: - - shards + - key + type: object + bucket: + minLength: 1 + type: string + endpoint: + type: string + forcePathStyle: + type: boolean + keyPrefix: + maxLength: 256 + pattern: ^[^\r\n]*$ + type: string + 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: + enum: + - Allow + - Forbid + example: Forbid + type: string + failedJobsHistoryLimit: + format: int32 + minimum: 0 + type: integer + 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 - equal: + 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: + enum: + - BackupShard + type: string + shard: + example: '-' + type: string + required: + - keyspace + - name + - shard + type: object + minItems: 1 + type: array + successfulJobsHistoryLimit: + format: int32 + minimum: 0 + type: integer + suspend: + type: boolean + required: + - name + - resources + - schedule + - 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: - parts: - format: int32 - maximum: 65536 - minimum: 1 - type: integer - shardTemplate: + secret: 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: + 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: - affinity: - x-kubernetes-preserve-unknown-fields: true - annotations: - additionalProperties: - type: string - type: object - backupLocationName: + 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 - cell: - maxLength: 63 - minLength: 1 - pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ + 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 - dataVolumeClaimTemplate: + selector: properties: - accessModes: + matchExpressions: items: - type: string + 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 - 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 + matchLabels: + additionalProperties: + type: string type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string type: object - externalDatastore: + 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: - 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 - 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 + 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 - 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: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: 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: + 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: - 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 + 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 - required: - - resources 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: - 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 + value: 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 - required: - - resources - type: object required: - - cell - - replicas - - type - - vttablet + - name + - value type: object type: array - x-kubernetes-list-map-keys: - - type - - cell + 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 - x-kubernetes-list-type: map + - 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: - - databaseInitScriptSecret + - key type: object - required: - - parts type: object type: object - maxItems: 2 - minItems: 1 - type: array - 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 - 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 + service: + properties: + annotations: + additionalProperties: + type: string type: object - type: array - extraFlags: - additionalProperties: - type: string - type: object - extraLabels: - additionalProperties: + clusterIP: type: string - type: object - extraVolumeMounts: - items: + type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + 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: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: + annotations: + additionalProperties: + type: string + type: object + clusterIP: 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: + createClientService: + type: boolean + createPDB: + type: boolean + createPeerService: + type: boolean + dataVolumeClaimTemplate: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: properties: - name: + apiGroup: + type: string + kind: type: string - request: + name: type: string required: - - name + - kind + - name type: object - type: array - x-kubernetes-list-map-keys: + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind - 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: 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 - 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: + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + extraEnv: + items: properties: - apiVersion: + name: type: string - fieldPath: + 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: - - fieldPath + - name type: object - x-kubernetes-map-type: atomic - resourceFieldRef: + type: array + extraFlags: + additionalProperties: + type: string + type: object + extraLabels: + additionalProperties: + type: string + type: object + extraVolumeMounts: + items: properties: - containerName: + mountPath: 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: + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: type: string required: - - resource + - mountPath + - name type: object - x-kubernetes-map-type: atomic - secretKeyRef: + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: 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: 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 + topologySpreadConstraints: + 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 - extraVolumeMounts: - items: + 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: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: + annotations: + additionalProperties: + type: string + type: object + clusterIP: 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: + createClientService: + type: boolean + createPDB: + type: boolean + createPeerService: + type: boolean + dataVolumeClaimTemplate: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: properties: - name: + apiGroup: + type: string + kind: type: string - request: + name: type: string required: - - name - type: object - type: array - x-kubernetes-list-map-keys: + - kind - 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: + type: object + x-kubernetes-map-type: atomic + dataSourceRef: properties: + apiGroup: + type: string + kind: + type: string name: type: string - request: + namespace: type: string required: - - name - type: object - type: array - x-kubernetes-list-map-keys: + - kind - 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: + type: object + resources: 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 + 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 - 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 + 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 - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: + 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 - 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: + x-kubernetes-map-type: atomic + storageClassName: type: string - readOnly: - type: boolean - recursiveReadOnly: + volumeAttributesClassName: type: string - subPath: + volumeMode: type: string - subPathExpr: + volumeName: type: string - required: - - mountPath - - name type: object - type: array - extraVolumes: - x-kubernetes-preserve-unknown-fields: true - 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 - 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 + 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: 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: array + extraFlags: + additionalProperties: type: string - clientServiceName: + type: object + extraLabels: + additionalProperties: type: string - observedGeneration: - format: int64 - type: integer - type: object - type: object - keyspaces: - additionalProperties: - properties: - cells: + type: object + extraVolumeMounts: items: - type: string + 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 - desiredShards: - format: int32 - type: integer - desiredTablets: - format: int32 - type: integer - pendingChanges: + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + image: 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: + 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 - 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.16.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: + peerService: properties: - account: - minLength: 1 - type: string - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - required: - - key + annotations: + additionalProperties: + type: string type: object - container: - minLength: 1 + clusterIP: 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: + resources: properties: - authSecret: - properties: - key: - type: string - name: - type: string - volumeName: - type: string - 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 - 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 + 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 - bucket: - minLength: 1 - type: string - endpoint: - type: string - forcePathStyle: - type: boolean - keyPrefix: - maxLength: 256 - pattern: ^[^\r\n]*$ - type: string - region: - minLength: 1 - type: string - required: - - bucket - - region type: object - volume: + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: x-kubernetes-preserve-unknown-fields: true - volumeSubPath: + topologySpreadConstraints: + 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: array - databaseName: - type: string - durabilityPolicy: - type: string - extraVitessFlags: - additionalProperties: + type: object + imagePullPolicies: + properties: + mysqld: type: string - type: object - globalLockserver: + 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: - address: - type: string - implementation: - type: string - rootPath: + name: + default: "" type: string - required: - - address - - implementation - - rootPath type: object - imagePullPolicies: + 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: - mysqld: - type: string - mysqldExporter: - type: string - vtadmin: - type: string - vtbackup: - type: string - vtctld: - type: string - vtgate: - type: string - vtorc: + annotations: + additionalProperties: + type: string + type: object + databaseName: type: string - vttablet: + durabilityPolicy: type: string - type: object - imagePullSecrets: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - images: - properties: - mysqld: + images: properties: - mariadb103Compatible: + mysqld: + properties: + mysql56Compatible: + type: string + mysql80Compatible: + type: string + type: object + mysqldExporter: type: string - mariadbCompatible: + vtbackup: type: string - mysql56Compatible: + vtorc: type: string - mysql80Compatible: + vttablet: type: string type: object - mysqldExporter: - type: string - vtbackup: - type: string - vtorc: - type: string - vttablet: + name: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([A-Za-z0-9-_.]*[A-Za-z0-9])?$ 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: + partitionings: + items: 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: + custom: + properties: + shards: + items: 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])?$ + annotations: + additionalProperties: type: string - dataVolumeClaimTemplate: + 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: - accessModes: + 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 + 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 - x-kubernetes-list-type: atomic - dataSource: + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + mysqld: properties: - apiGroup: - type: string - kind: - type: string - name: + 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: - - kind - - name + - resources type: object - x-kubernetes-map-type: atomic - dataSourceRef: + mysqldExporter: properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - 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 + 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 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: + 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 - 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 + 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: + 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: + 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: - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: + type: object + mysqldExporter: + properties: + 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 - 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: + 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: + 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: + 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 + 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 + 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 + 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 + topologySpreadConstraints: + 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: - - 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 + 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 + topologySpreadConstraints: + 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: + - 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 + 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: - 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 + topologySpreadConstraints: + 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.16.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 + 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: @@ -5809,7 +5373,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: @@ -5852,8 +5425,8 @@ spec: name: type: string required: - - kind - - name + - kind + - name type: object x-kubernetes-map-type: atomic dataSourceRef: @@ -5867,24 +5440,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 + 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 @@ -5904,8 +5477,8 @@ spec: type: array x-kubernetes-list-type: atomic required: - - key - - operator + - key + - operator type: object type: array x-kubernetes-list-type: atomic @@ -5935,7 +5508,7 @@ spec: volumeName: type: string required: - - key + - key type: object database: type: string @@ -5955,16 +5528,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: @@ -5985,7 +5558,7 @@ spec: optional: type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic fieldRef: @@ -5995,7 +5568,7 @@ spec: fieldPath: type: string required: - - fieldPath + - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: @@ -6004,14 +5577,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: @@ -6024,12 +5597,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: @@ -6054,8 +5627,8 @@ spec: subPathExpr: type: string required: - - mountPath - - name + - mountPath + - name type: object type: array extraVolumes: @@ -6076,31 +5649,31 @@ 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: @@ -6114,450 +5687,893 @@ spec: request: type: string required: - - name + - 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 + 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 + - 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 - requests: - additionalProperties: - anyOf: + 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 + required: + - databaseInitScriptSecret + - keyRange + type: object + type: array + required: + - shards + type: object + equal: + properties: + 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: + 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 + 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: - - resources + - 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 - 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: - - parts - type: object - type: object - maxItems: 2 - minItems: 1 - type: array - topologyReconciliation: - properties: - pruneCells: - type: boolean - pruneKeyspaces: - type: boolean - pruneShardCells: - type: boolean - pruneShards: - type: boolean - pruneSrvKeyspaces: - type: boolean - pruneTablets: - type: boolean - registerCells: - type: boolean - registerCellsAliases: - type: boolean - type: object - turndownPolicy: - enum: - - RequireIdle - - Immediate - type: string - updateStrategy: - properties: - external: - properties: - allowResourceChanges: - items: - type: string - type: array - type: object - type: - enum: - - External - - Immediate - type: string - type: object - 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 - 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 + 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: + 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 name: default: "" type: string - optional: - type: boolean + 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 + 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 + 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 + 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: + 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 - 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: + type: array + extraVolumes: + x-kubernetes-preserve-unknown-fields: true + initContainers: + x-kubernetes-preserve-unknown-fields: true + resources: 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 + 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 - idle: - type: string - observedGeneration: - format: int64 - type: integer - orphanedShards: - additionalProperties: + service: properties: - message: - type: string - reason: + annotations: + additionalProperties: + type: string + type: object + clusterIP: type: string - required: - - message - - reason type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + 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: 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: - type: string - type: array - tablets: - format: int32 - type: integer - updatedTablets: - format: int32 - type: integer - type: object - type: array - resharding: + type: array + idle: + type: string + observedGeneration: + format: int64 + type: integer + orphanedShards: + additionalProperties: properties: - copyProgress: + message: + type: string + reason: + type: string + required: + - message + - reason + type: object + type: object + partitionings: + items: + properties: + desiredShards: + format: int32 + type: integer + desiredTablets: + format: int32 type: integer - sourceShards: + readyShards: + format: int32 + type: integer + readyTablets: + format: int32 + type: integer + servingWrites: + type: string + shardNames: items: type: string type: array - state: + 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 - targetShards: + type: array + workflow: + type: string + required: + - state + - workflow + type: object + shards: + additionalProperties: + properties: + cells: items: type: string type: array - workflow: + desiredTablets: + format: int32 + type: integer + hasMaster: type: string - required: - - state - - workflow - type: object - shards: - additionalProperties: - properties: - cells: - items: - type: string - type: array - desiredTablets: - format: int32 - type: integer - hasMaster: - type: string - pendingChanges: - type: string - readyTablets: - format: int32 - type: integer - servingWrites: - type: string - tablets: - format: int32 - type: integer - updatedTablets: - format: int32 - type: integer - type: object + pendingChanges: + type: string + readyTablets: + format: int32 + type: integer + servingWrites: + type: string + tablets: + format: int32 + type: integer + updatedTablets: + format: int32 + type: integer type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition @@ -6572,684 +6588,388 @@ spec: listKind: VitessShardList plural: vitessshards shortNames: - - vts + - 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: + - name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + annotations: + additionalProperties: 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 - 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: + type: object + backupEngine: + type: string + backupLocations: + items: properties: - key: - type: string + 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 - volumeName: + 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 + region: + minLength: 1 + type: string + required: + - bucket + - region + type: object + volume: + x-kubernetes-preserve-unknown-fields: true + volumeSubPath: type: string - required: - - key type: object - databaseName: + type: array + databaseInitScriptSecret: + properties: + key: + type: string + name: + type: string + volumeName: + type: string + required: + - key + type: object + databaseName: + type: string + extraVitessFlags: + additionalProperties: type: string - extraVitessFlags: - additionalProperties: + type: object + globalLockserver: + properties: + address: 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: + 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 - imagePullSecrets: - items: + x-kubernetes-map-type: atomic + type: array + images: + properties: + mysqld: properties: - name: - default: "" + mariadb103Compatible: + type: string + mariadbCompatible: + type: string + mysql56Compatible: + type: string + mysql80Compatible: type: string type: object - x-kubernetes-map-type: atomic - type: array - images: + 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: - mysqld: - properties: - mariadb103Compatible: - type: string - mariadbCompatible: - type: string - mysql56Compatible: - type: string - mysql80Compatible: - type: string + affinity: + x-kubernetes-preserve-unknown-fields: true + annotations: + additionalProperties: + 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])*$ + backupLocationName: type: string - start: - pattern: ^([0-9a-f][0-9a-f])*$ + cell: + maxLength: 63 + minLength: 1 + pattern: ^[A-Za-z0-9]([_.A-Za-z0-9]*[A-Za-z0-9])?$ 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: - 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: + dataVolumeClaimTemplate: + properties: + accessModes: + items: type: string - required: - - credentialsSecret - - database - - host - - port - - user - type: object - extraEnv: - items: + type: array + x-kubernetes-list-type: atomic + dataSource: properties: + apiGroup: + type: string + kind: + type: string name: type: string - value: + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: 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: "" + 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 - 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 + storageClassName: type: string - type: object - extraVolumeMounts: - items: + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + externalDatastore: + properties: + credentialsSecret: properties: - mountPath: - type: string - mountPropagation: + key: type: string name: type: string - readOnly: - type: boolean - recursiveReadOnly: + volumeName: type: string - subPath: + required: + - key + type: object + database: + type: string + host: + type: string + port: + format: int32 + maximum: 65535 + minimum: 1 + type: integer + serverCACertSecret: + properties: + key: type: string - subPathExpr: + name: + type: string + volumeName: type: string required: - - mountPath - - name + - key 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: - 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 - 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 - 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 + user: + type: string + required: + - credentialsSecret + - database + - host + - port + - user type: object extraEnv: items: @@ -7270,7 +6990,7 @@ spec: optional: type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic fieldRef: @@ -7280,7 +7000,7 @@ spec: fieldPath: type: string required: - - fieldPath + - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: @@ -7289,14 +7009,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: @@ -7309,18 +7029,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 @@ -7343,181 +7059,483 @@ 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: - 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 + 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 - service: + mysqldExporter: properties: - annotations: - additionalProperties: - 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 - clusterIP: - type: string + required: + - resources 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 + required: + - resources + type: object + required: + - cell + - replicas + - type + - vttablet type: object - zoneMap: - additionalProperties: - type: string - type: object - required: - - databaseInitScriptSecret - - globalLockserver - - images - - keyRange + type: array + x-kubernetes-list-map-keys: + - type + - cell - name - - zoneMap - type: object - status: - properties: - backupLocations: - items: + 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: - completeBackups: - format: int32 - type: integer - incompleteBackups: - format: int32 - type: integer - latestCompleteBackupTime: - format: date-time - type: string - name: - type: string - required: - - completeBackups - - incompleteBackups + allowResourceChanges: + items: + type: string + type: array type: object - type: array - cells: - items: + type: + enum: + - External + - Immediate type: string - type: array - conditions: - additionalProperties: + 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 + 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: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - enum: - - "True" - - "False" - - Unknown - type: string - required: - - status + 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 - hasInitialBackup: - type: string - hasMaster: - type: string - idle: - type: string - lowestPodGeneration: - format: int64 - type: integer - masterAlias: - type: string - observedGeneration: - format: int64 - type: integer - orphanedTablets: - additionalProperties: + service: properties: - message: - type: string - reason: + annotations: + additionalProperties: + type: string + type: object + clusterIP: type: string - required: - - message - - reason type: object + sidecarContainers: + x-kubernetes-preserve-unknown-fields: true + tolerations: + x-kubernetes-preserve-unknown-fields: true + topologySpreadConstraints: + 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: + 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 - vitessOrchestrator: + type: object + hasInitialBackup: + type: string + hasMaster: + type: string + idle: + type: string + lowestPodGeneration: + format: int64 + type: integer + masterAlias: + type: string + observedGeneration: + format: int64 + type: integer + orphanedTablets: + additionalProperties: + properties: + message: + type: string + reason: + type: string + required: + - message + - reason + type: object + type: object + servingWrites: + type: string + tablets: + additionalProperties: properties: available: type: string - 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 @@ -7529,88 +7547,88 @@ kind: Role metadata: name: vitess-operator rules: - - apiGroups: - - "" - resources: - - pods - - services - - endpoints - - persistentvolumeclaims - - events - - configmaps - - secrets - verbs: - - '*' - - apiGroups: - - "" - resources: - - namespaces - verbs: - - get - - apiGroups: - - apps - resources: - - deployments - - daemonsets - - replicasets - - statefulsets - verbs: - - '*' - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - '*' - - apiGroups: - - apps - resourceNames: - - vitess-operator - resources: - - deployments/finalizers - verbs: - - update - - apiGroups: - - planetscale.com - resources: - - vitessclusters - - vitessclusters/status - - vitessclusters/finalizers - - vitesscells - - vitesscells/status - - vitesscells/finalizers - - vitesskeyspaces - - vitesskeyspaces/status - - vitesskeyspaces/finalizers - - vitessshards - - vitessshards/status - - vitessshards/finalizers - - etcdlockservers - - etcdlockservers/status - - etcdlockservers/finalizers - - vitessbackups - - vitessbackups/status - - vitessbackups/finalizers - - vitessbackupstorages - - vitessbackupstorages/status - - vitessbackupstorages/finalizers - - 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 @@ -7621,8 +7639,8 @@ roleRef: kind: Role name: vitess-operator subjects: - - kind: ServiceAccount - name: vitess-operator +- kind: ServiceAccount + name: vitess-operator --- apiVersion: scheduling.k8s.io/v1 description: Vitess components (vttablet, vtgate, vtctld, etcd) @@ -7655,38 +7673,37 @@ spec: app: vitess-operator spec: containers: - - args: - - --logtostderr - - -v=4 - command: - - vitess-operator - env: - - name: WATCH_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: PS_OPERATOR_POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: PS_OPERATOR_POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: OPERATOR_NAME - value: vitess-operator - image: 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 + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: PS_OPERATOR_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: PS_OPERATOR_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: vitess-operator + image: planetscale/vitess-operator:latest + name: vitess-operator + resources: + limits: + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi priorityClassName: vitess-operator-control-plane serviceAccountName: vitess-operator