diff --git a/Makefile b/Makefile index 36c6be63..4c990981 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,9 @@ integration-test: generate: go run sigs.k8s.io/controller-tools/cmd/controller-gen object crd:maxDescLen=0 paths="./pkg/apis/planetscale/v2" output:crd:artifacts:config=./deploy/crds go run github.com/ahmetb/gen-crd-api-reference-docs -api-dir planetscale.dev/vitess-operator/pkg/apis/planetscale/v2 -config ./docs/api/config.json -template-dir ./docs/api/template -out-file ./docs/api/index.html + @echo 'Copying ./docs/api/index.html to ./docs/api.md' + @cp ./docs/api/index.html ./docs/api.md && ex -sc '1,2d|x' ./docs/api.md + @echo 'Written to ./docs/api.md' generate-and-diff: generate git add --all diff --git a/docs/api.md b/docs/api.md index 8ce4875e..4c7486c3 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,6 +1,22 @@ -
-This page describes all the available fields of CRD APIs implemented by the operator. +
Package v2 contains API Schema definitions for the planetscale.com/v2 API group.
apiVersion
apiVersion
@@ -41,14 +57,14 @@ planetscale.com/v2
kind
kind
EtcdLockserver
metadata
metadata
spec
spec
etcd
etcd
+(Appears on: +VitessShardTabletPool) +
++
MysqldExporterSpec configures the local MySQL exporter within a tablet.
+ +Field | +Description | +
---|---|
+resources + + +Kubernetes core/v1.ResourceRequirements + + + |
+
+ Resources specify the compute resources to allocate for just the MySQL Exporter. + |
+
@@ -1336,9 +1483,7 @@ EtcdLockserverStatus VitessKeyspaceImages)
-
MysqldImage specifies the container image to use for mysqld, -as well as declaring which MySQL flavor setting in Vitess the -image is compatible with.
+TODO: Remove this once everything is migrated to MysqldImageNew.
-mysql56Compatible + mysql56Compatible string @@ -1362,7 +1507,7 @@ that’s compatible with the Vitess “MySQL56” flavor setting. |
-mysql80Compatible + mysql80Compatible string @@ -1374,7 +1519,7 @@ that’s compatible with the Vitess “MySQL80” flavor setting. |
-mariadbCompatible + mariadbCompatible string @@ -1386,7 +1531,7 @@ that’s compatible with the Vitess “MariaDB” flavor setting. |
-mariadb103Compatible + mariadb103Compatible string @@ -1398,6 +1543,52 @@ that’s compatible with the Vitess “MariaDB103” flavor setting. |
+(Appears on: +VitessKeyspaceTemplateImages) +
++
MysqldImageNew specifies the container image to use for mysqld, +as well as declaring which MySQL flavor setting in Vitess the +image is compatible with.
+TODO: rename this to MysqldImage once MysqldImage is removed.
+ +Field | +Description | +
---|---|
+mysql56Compatible + +string + + |
+
+ Mysql56Compatible is a container image (including version tag) for mysqld +that’s compatible with the Vitess “MySQL56” flavor setting. + |
+
+mysql80Compatible + +string + + |
+
+ Mysql80Compatible is a container image (including version tag) for mysqld +that’s compatible with the Vitess “MySQL80” flavor setting. + |
+
@@ -1417,7 +1608,7 @@ that’s compatible with the Vitess “MariaDB103” flavor setting.
resources
resources
configOverrides
configOverrides
reason
reason
message
message
workflow
workflow
state
state
sourceShards
sourceShards
targetShards
targetShards
copyProgress
copyProgress
region
region
bucket
bucket
endpoint
endpoint
region
by the driver.
keyPrefix
forcePathStyle
ForcePathStyle is an optional param to force connection using
keyPrefix
authSecret
authSecret
(Appears on: AzblobBackupLocation, +CephBackupLocation, ExternalDatastore, GCSBackupLocation, S3BackupLocation, VitessGatewayStaticAuthentication, VitessGatewayTLSSecureTransport, -VitessShardTemplate) +VitessShardTemplate, +VtAdminSpec)
SecretSource specifies where to find the data for a particular secret value.
@@ -1676,7 +1881,7 @@ Default: Use the default credentials of the Node.name
name
volumeName
volumeName
key
key
ServiceOverrides allows customization of an arbitrary Service object.
@@ -1744,7 +1951,7 @@ within that Volume.annotations
annotations
clusterIP
clusterIP
name
name
completeBackups
completeBackups
incompleteBackups
incompleteBackups
latestCompleteBackupTime
latestCompleteBackupTime
registerCellsAliases
registerCellsAliases
registerCells
registerCells
pruneCells
pruneCells
pruneKeyspaces
pruneKeyspaces
pruneSrvKeyspaces
pruneSrvKeyspaces
pruneShards
pruneShards
pruneShardCells
pruneShardCells
pruneTablets
pruneTablets
string
alias)string
alias)
(Appears on: ClusterBackupSpec, @@ -1985,7 +2192,7 @@ Default: true
name
name
gcs
gcs
s3
s3
azblob
azblob
volume
ceph
Ceph specifies a backup location in Ceph S3.
+volume
annotations
volumeSubPath
VolumeSubPath gives the subpath in the volume to mount to the backups target. +Only used for Volume-backed backup storage, ignored otherwise.
+annotations
-(Appears on: -VitessBackup) -
--
VitessBackupSpec defines the desired state of the backup.
- --(Appears on: -VitessBackup) -
--
VitessBackupStatus describes the observed state of the backup.
+VitessBackupSchedule is the Schema for the VitessBackupSchedule API.
-startTime + metadata - -Kubernetes meta/v1.Time + +Kubernetes meta/v1.ObjectMeta |
- StartTime is the time when the backup started. +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
-finishedTime + spec - -Kubernetes meta/v1.Time + +VitessBackupScheduleSpec |
- FinishedTime is the time when the backup finished. - |
-
-complete + VitessBackupScheduleTemplate -bool + +VitessBackupScheduleTemplate + |
- Complete indicates whether the backup ever completed. +
+(Members of VitessBackupScheduleTemplate contains the user-specific parts of VitessBackupScheduleSpec. +These are the parts that are configurable through the VitessCluster CRD. |
-position + cluster string |
- Position is the replication position of the snapshot that was backed up. -The position is expressed in the native, GTID-based format of the MySQL -flavor that took the backup. -This is only available after the backup is complete. +Cluster on which this schedule runs. |
-engine + image string |
- Engine is the Vitess backup engine implementation that was used. +Image should be any image that already contains vtctldclient installed. +The controller will re-use the vtctld image by default. |
-storageDirectory + imagePullPolicy -string + +Kubernetes core/v1.PullPolicy + |
- StorageDirectory is the name of the parent directory in storage that -contains this backup. +ImagePullPolicy defines the policy to pull the Docker image in the job’s pod. +The PullPolicy used will be the same as the one used to pull the vtctld image. + |
+
storageName
status
StorageName is the name of the backup in storage. This is different from -the name of the VitessBackup object created to represent metadata about -the actual backup in storage.
-
VitessBackupStorage represents a storage location for Vitess backups. -It provides access to metadata about Vitess backups inside Kubernetes by -maintaining a set of VitessBackup objects that represent backups in the given -storage location. One VitessBackupStorage represents a storage location -defined at the VitessCluster level, so it provides access to metadata -about backups stored in that location for any keyspace and any shard in that -cluster.
+(Appears on: +VitessBackupSchedule) + ++
VitessBackupScheduleSpec defines the desired state of VitessBackupSchedule.
-metadata + VitessBackupScheduleTemplate - -Kubernetes meta/v1.ObjectMeta + +VitessBackupScheduleTemplate |
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+
+(Members of VitessBackupScheduleTemplate contains the user-specific parts of VitessBackupScheduleSpec. +These are the parts that are configurable through the VitessCluster CRD. |
||||
-spec + cluster - -VitessBackupStorageSpec - +string |
- - -
|
-||||
-status - - -VitessBackupStorageStatus + +Kubernetes core/v1.PullPolicy |
+ ImagePullPolicy defines the policy to pull the Docker image in the job’s pod. +The PullPolicy used will be the same as the one used to pull the vtctld image. |
(Appears on: -VitessBackupStorage) +VitessBackupSchedule)
-
VitessBackupStorageSpec defines the desired state of VitessBackupStorage.
+VitessBackupScheduleStatus defines the observed state of VitessBackupSchedule
-location + active - -VitessBackupLocation + +[]Kubernetes core/v1.ObjectReference |
- Location specifies the Vitess parameters for connecting to the backup -storage location. +(Optional) +A list of pointers to currently running jobs. |
-subcontroller + lastScheduledTime - -VitessBackupSubcontrollerSpec + +Kubernetes meta/v1.Time |
- Subcontroller specifies any parameters needed for launching the VitessBackupStorage subcontroller pod. +(Optional) +Information when was the last time the job was successfully scheduled. |
(Appears on: -VitessBackupStorage) +VitessBackupScheduleTemplate)
-
VitessBackupStorageStatus defines the observed state of VitessBackupStorage.
+VitessBackupScheduleStrategy defines how we are going to take a backup. +The VitessBackupSchedule controller uses this data to build the vtctldclient +command line that will be executed in the Job’s pod.
-observedGeneration + name -int64 + +BackupStrategyName + |
- The generation observed by the controller. +Name of the backup strategy. |
-totalBackupCount + keyspace -int32 +string |
- TotalBackupCount is the total number of backups found in this storage -location, across all keyspaces and shards. +Keyspace defines the keyspace on which we want to take the backup. + |
+
+shard + +string + + |
+
+ Shard defines the shard on which we want to take a backup. + |
+
+extraFlags + +map[string]string + + |
+
+(Optional)
+ ExtraFlags is a map of flags that will be sent down to vtctldclient when taking the backup. |
(Appears on: ClusterBackupSpec, -VitessBackupStorageSpec) +VitessBackupScheduleSpec)
+
VitessBackupScheduleTemplate contains all the user-specific fields that the user will be +able to define when writing their YAML file.
-serviceAccountName + name string |
- ServiceAccountName specifies the ServiceAccount used to launch the VitessBackupStorage subcontroller pod in the -namespace of the VitessCluster. If empty (the default), the same account as the operator will be reused. If your -VitessCluster is in a different namespace than the operator, this account is unlikely to work. +Name is the schedule name, this name must be unique across all the different VitessBackupSchedule +objects in the cluster. |
-
VitessCell represents a group of Nodes in a given failure domain (Zone), -plus Vitess components like the lockserver and gateway that are local -to each cell. Together, these cell-local components make it possible for -Vitess instances (tablets) to run on those Nodes, and for clients to reach -Vitess instances in the cell.
-Note that VitessCell does not “own” the VitessKeyspaces deployed in it, -just like a Node does not own the Pods deployed on it. In addition, each -VitessKeyspace can deploy Vitess instances in multiple VitessCells, -just like a Deployment can manage Pods that run on multiple Nodes.
- -Field | -Description | -||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-metadata + schedule - -Kubernetes meta/v1.ObjectMeta - +string |
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. |
||||||||||||||||
-spec + strategies - -VitessCellSpec + +[]VitessBackupScheduleStrategy |
- - -
| ||||||||||||||||
+annotations + +map[string]string + + |
+
+(Optional)
+ Annotations are the set of annotations that will be attached to the pods created by VitessBackupSchedule. |
||||||||||||||||
-status + affinity - -VitessCellStatus + +Kubernetes core/v1.Affinity |
+(Optional)
+ Affinity allows you to set rules that constrain the scheduling of the pods that take backups. +WARNING: These affinity rules will override all default affinities that we set; in turn, we can’t +guarantee optimal scheduling of your pods if you choose to set this field. |
(Appears on: -VitessCellTemplate) +VitessBackup)
-
VitessCellGatewaySpec specifies the per-cell deployment parameters for vtgate.
+VitessBackupSpec defines the desired state of the backup.
+ ++(Appears on: +VitessBackup) +
++
VitessBackupStatus describes the observed state of the backup.
-replicas + startTime -int32 + +Kubernetes meta/v1.Time + |
- Replicas is the number of vtgate instances to deploy in this cell. +StartTime is the time when the backup started. |
-resources + finishedTime - -Kubernetes core/v1.ResourceRequirements + +Kubernetes meta/v1.Time |
- Resources determines the compute resources reserved for each vtgate replica. +FinishedTime is the time when the backup finished. |
-authentication + complete - -VitessGatewayAuthentication - +bool |
- Authentication configures how Vitess Gateway authenticates MySQL client connections. +Complete indicates whether the backup ever completed. |
-secureTransport + position - -VitessGatewaySecureTransport - +string |
- SecureTransport configures secure transport connections for vtgate. +Position is the replication position of the snapshot that was backed up. +The position is expressed in the native, GTID-based format of the MySQL +flavor that took the backup. +This is only available after the backup is complete. |
-extraFlags + engine -map[string]string +string |
- ExtraFlags can optionally be used to override default flags set by the -operator, or pass additional flags to vtgate. All entries must be -key-value string pairs of the form “flag”: “value”. The flag name should -not have any prefix (just “flag”, not “-flag”). To set a boolean flag, -set the string value to either “true” or “false”. +Engine is the Vitess backup engine implementation that was used. |
-extraEnv + storageDirectory - -[]Kubernetes core/v1.EnvVar - +string |
- ExtraEnv can optionally be used to override default environment variables -set by the operator, or pass additional environment variables. +StorageDirectory is the name of the parent directory in storage that +contains this backup. |
-extraVolumes + storageName - -[]Kubernetes core/v1.Volume - +string |
- ExtraVolumes can optionally be used to override default Pod volumes -defined by the operator, or provide additional volumes to the Pod. -Note that when adding a new volume, you should usually also add a -volumeMount to specify where in each container’s filesystem the volume -should be mounted. +StorageName is the name of the backup in storage. This is different from +the name of the VitessBackup object created to represent metadata about +the actual backup in storage. |
+
VitessBackupStorage represents a storage location for Vitess backups. +It provides access to metadata about Vitess backups inside Kubernetes by +maintaining a set of VitessBackup objects that represent backups in the given +storage location. One VitessBackupStorage represents a storage location +defined at the VitessCluster level, so it provides access to metadata +about backups stored in that location for any keyspace and any shard in that +cluster.
+ +Field | +Description | +
---|---|
-extraVolumeMounts + metadata - -[]Kubernetes core/v1.VolumeMount + +Kubernetes meta/v1.ObjectMeta |
- ExtraVolumeMounts can optionally be used to override default Pod -volumeMounts defined by the operator, or specify additional mounts. -Typically, these are used to mount volumes defined through extraVolumes. +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
-initContainers + spec - -[]Kubernetes core/v1.Container + +VitessBackupStorageSpec |
- InitContainers can optionally be used to supply extra init containers -that will be run to completion one after another before any app containers are started. - |
-
-sidecarContainers + location - -[]Kubernetes core/v1.Container + +VitessBackupLocation |
- SidecarContainers can optionally be used to supply extra containers -that run alongside the main containers. +Location specifies the Vitess parameters for connecting to the backup +storage location. |
-affinity + subcontroller - -Kubernetes core/v1.Affinity + +VitessBackupSubcontrollerSpec |
- Affinity allows you to set rules that constrain the scheduling of -your vtgate pods. WARNING: These affinity rules will override all default affinities -that we set; in turn, we can’t guarantee optimal scheduling of your pods if you -choose to set this field. +Subcontroller specifies any parameters needed for launching the VitessBackupStorage subcontroller pod. |
-annotations - -map[string]string - - |
-
- Annotations can optionally be used to attach custom annotations to Pods -created for this component. These will be attached to the underlying -Pods that the vtgate Deployment creates. + |
extraLabels
status
ExtraLabels can optionally be used to attach custom labels to Pods -created for this component. These will be attached to the underlying -Pods that the vtgate Deployment creates.
+(Appears on: +VitessBackupStorage) +
++
VitessBackupStorageSpec defines the desired state of VitessBackupStorage.
+ +Field | +Description | +
---|---|
-service + location - -ServiceOverrides + +VitessBackupLocation |
- Service can optionally be used to customize the per-cell vtgate Service. +Location specifies the Vitess parameters for connecting to the backup +storage location. |
-tolerations + subcontroller - -[]Kubernetes core/v1.Toleration + +VitessBackupSubcontrollerSpec |
- Tolerations allow you to schedule pods onto nodes with matching taints. +Subcontroller specifies any parameters needed for launching the VitessBackupStorage subcontroller pod. |
(Appears on: -VitessCellStatus) +VitessBackupStorage)
-
VitessCellGatewayStatus is a summary of the status of vtgate in this cell.
+VitessBackupStorageStatus defines the observed state of VitessBackupStorage.
-available + observedGeneration - -Kubernetes core/v1.ConditionStatus - +int64 |
- Available indicates whether the vtgate service is fully available. +The generation observed by the controller. |
-serviceName + totalBackupCount -string +int32 |
- ServiceName is the name of the Service for this cell’s vtgate. +TotalBackupCount is the total number of backups found in this storage +location, across all keyspaces and shards. |
(Appears on: -VitessCellSpec) +ClusterBackupSpec, +VitessBackupStorageSpec)
-
VitessCellImages specifies container images to use for this cell.
-vtgate + serviceAccountName string |
- Vtgate is the container image (including version tag) to use for Vitess Gateway instances. +ServiceAccountName specifies the ServiceAccount used to launch the VitessBackupStorage subcontroller pod in the +namespace of the VitessCluster. If empty (the default), the same account as the operator will be reused. If your +VitessCluster is in a different namespace than the operator, this account is unlikely to work. |
-(Appears on: -VitessCellStatus) -
--
VitessCellKeyspaceStatus summarizes the status of a keyspace deployed in this cell.
- --(Appears on: -VitessCell) -
--
VitessCellSpec defines the desired state of a VitessCell.
+VitessCell represents a group of Nodes in a given failure domain (Zone), +plus Vitess components like the lockserver and gateway that are local +to each cell. Together, these cell-local components make it possible for +Vitess instances (tablets) to run on those Nodes, and for clients to reach +Vitess instances in the cell.
+Note that VitessCell does not “own” the VitessKeyspaces deployed in it, +just like a Node does not own the Pods deployed on it. In addition, each +VitessKeyspace can deploy Vitess instances in multiple VitessCells, +just like a Deployment can manage Pods that run on multiple Nodes.
-VitessCellTemplate + metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||
+spec + + +VitessCellSpec + + + |
+
+ + +
|
+||||||||
+status + + +VitessCellStatus + + + |
++ | +
(Appears on: -VitessCell) +VitessCellTemplate)
-
VitessCellStatus defines the observed state of VitessCell
+VitessCellGatewaySpec specifies the per-cell deployment parameters for vtgate.
-observedGeneration + replicas -int64 +int32 |
- The generation observed by the controller. +Replicas is the number of vtgate instances to deploy in this cell. |
-lockserver + resources - -LockserverStatus + +Kubernetes core/v1.ResourceRequirements |
- Lockserver is a summary of the status of the cell-local lockserver. +Resources determines the compute resources reserved for each vtgate replica. |
-gateway + authentication - -VitessCellGatewayStatus + +VitessGatewayAuthentication |
- Gateway is a summary of the status of vtgate in this cell. +Authentication configures how Vitess Gateway authenticates MySQL client connections. |
-keyspaces + secureTransport - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessCellKeyspaceStatus + +VitessGatewaySecureTransport |
- Keyspaces is a summary of keyspaces deployed in this cell. -This summary could be empty either if there are no keyspaces, -or if the controller failed to read the current state. -Use the Idle condition to distinguish these scenarios -when the difference matters. +SecureTransport configures secure transport connections for vtgate. |
-idle + extraFlags - -Kubernetes core/v1.ConditionStatus - +map[string]string |
- Idle is a condition indicating whether the cell can be turned down. -If Idle is True, there are no keyspaces deployed in the cell, so it -should be safe to turn down the cell. +ExtraFlags can optionally be used to override default flags set by the +operator, or pass additional flags to vtgate. All entries must be +key-value string pairs of the form “flag”: “value”. The flag name should +not have any prefix (just “flag”, not “-flag”). To set a boolean flag, +set the string value to either “true” or “false”. |
-(Appears on: -VitessCellSpec, -VitessClusterSpec) -
--
VitessCellTemplate contains only the user-specified parts of a VitessCell object.
- -Field | -Description | -
---|---|
-name + extraEnv -string + +[]Kubernetes core/v1.EnvVar + |
- Name is the cell name as it should be provided to Vitess. -Note that this is different from the VitessCell object’s -metadata.name, which is generated by the operator. +ExtraEnv can optionally be used to override default environment variables +set by the operator, or pass additional environment variables. |
-zone + extraVolumes -string + +[]Kubernetes core/v1.Volume + |
- Zone is the name of the Availability Zone that this Vitess Cell should run in. -This value should match the value of the “failure-domain.beta.kubernetes.io/zone” -label on the Kubernetes Nodes in that AZ. -If the Kubernetes Nodes don’t have such a label, leave this empty. +ExtraVolumes can optionally be used to override default Pod volumes +defined by the operator, or provide additional volumes to the Pod. +Note that when adding a new volume, you should usually also add a +volumeMount to specify where in each container’s filesystem the volume +should be mounted. |
-lockserver + extraVolumeMounts - -LockserverSpec + +[]Kubernetes core/v1.VolumeMount |
- Lockserver specifies either a deployed or external lockserver -to be used as the Vitess cell-local topology store. -Default: Put this cell’s topology data in the global lockserver instead of its own lockserver. +ExtraVolumeMounts can optionally be used to override default Pod +volumeMounts defined by the operator, or specify additional mounts. +Typically, these are used to mount volumes defined through extraVolumes. |
-gateway + initContainers - -VitessCellGatewaySpec + +[]Kubernetes core/v1.Container |
- Gateway configures the Vitess Gateway deployment in this cell. +InitContainers can optionally be used to supply extra init containers +that will be run to completion one after another before any app containers are started. |
-(Appears on: -VitessClusterStatus) -
--
VitessClusterCellStatus is the status of a cell within a VitessCluster.
- -Field | -Description | -
---|---|
-pendingChanges + sidecarContainers -string + +[]Kubernetes core/v1.Container + |
- PendingChanges describes changes to the cell that will be -applied the next time a rolling update allows. +SidecarContainers can optionally be used to supply extra containers +that run alongside the main containers. |
-gatewayAvailable + affinity - -Kubernetes core/v1.ConditionStatus + +Kubernetes core/v1.Affinity |
- GatewayAvailable indicates whether the vtgate service is fully available. +Affinity allows you to set rules that constrain the scheduling of +your vtgate pods. WARNING: These affinity rules will override all default affinities +that we set; in turn, we can’t guarantee optimal scheduling of your pods if you +choose to set this field. |
-(Appears on: -VitessClusterStatus) -
--
VitessClusterKeyspaceStatus is the status of a keyspace within a VitessCluster.
- -Field | -Description | -
---|---|
-pendingChanges + annotations -string +map[string]string |
- PendingChanges describes changes to the keyspace that will be -applied the next time a rolling update allows. +Annotations can optionally be used to attach custom annotations to Pods +created for this component. These will be attached to the underlying +Pods that the vtgate Deployment creates. |
-desiredShards + extraLabels -int32 +map[string]string |
- DesiredShards is the number of desired shards. This is computed from -information that’s already available in the spec, but clients should -use this value instead of trying to compute shard partitionings on their -own. +ExtraLabels can optionally be used to attach custom labels to Pods +created for this component. These will be attached to the underlying +Pods that the vtgate Deployment creates. |
-shards + service -int32 + +ServiceOverrides + |
- Shards is the number of observed shards. This could be higher or lower -than desiredShards if the state has not yet converged. +Service can optionally be used to customize the per-cell vtgate Service. |
-readyShards + tolerations -int32 + +[]Kubernetes core/v1.Toleration + |
- ReadyShards is the number of desired shards that are Ready. +Tolerations allow you to schedule pods onto nodes with matching taints. |
-updatedShards + topologySpreadConstraints -int32 + +[]Kubernetes core/v1.TopologySpreadConstraint + |
- UpdatedShards is the number of desired shards that are up-to-date -(have no pending changes). +TopologySpreadConstraint can optionally be used to +specify how to spread vtgate pods among the given topology |
-desiredTablets + lifecycle -int32 + +Kubernetes core/v1.Lifecycle + |
- DesiredTablets is the total number of desired tablets across all shards. -This is computed from information that’s already available in the spec, -but clients should use this value instead of trying to compute shard -partitionings on their own. +Lifecycle can optionally be used to add container lifecycle hooks +to the vtgate container. |
-tablets + terminationGracePeriodSeconds -int32 +int64 |
- Tablets is the total number of observed tablets across all shards. -This could be higher or lower than desiredTablets if the state has not -yet converged. +TerminationGracePeriodSeconds can optionally be used to customize +terminationGracePeriodSeconds of the vtgate pod. |
+(Appears on: +VitessCellStatus) +
++
VitessCellGatewayStatus is a summary of the status of vtgate in this cell.
+ +Field | +Description | +
---|---|
-readyTablets + available -int32 + +Kubernetes core/v1.ConditionStatus + |
- ReadyTablets is the number of desired tablets that are Ready. +Available indicates whether the vtgate service is fully available. |
-updatedTablets + serviceName -int32 +string |
- UpdatedTablets is the number of desired tablets that are up-to-date -(have no pending changes). +ServiceName is the name of the Service for this cell’s vtgate. |
+(Appears on: +VitessCellSpec) +
++
VitessCellImages specifies container images to use for this cell.
+ +Field | +Description | +
---|---|
-cells + vtgate -[]string +string |
- Cells is a list of cells in which any observed tablets for this keyspace -are deployed. +Vtgate is the container image (including version tag) to use for Vitess Gateway instances. |
(Appears on: -VitessCluster) +VitessCellStatus)
-
VitessClusterSpec defines the desired state of VitessCluster.
+VitessCellKeyspaceStatus summarizes the status of a keyspace deployed in this cell.
+ ++(Appears on: +VitessCell) +
++
VitessCellSpec defines the desired state of a VitessCell.
-images + VitessCellTemplate - -VitessImages + +VitessCellTemplate |
- Images specifies the container images (including version tag) to use -in the cluster. -Default: Let the operator choose. +
+(Members of VitessCellTemplate contains the user-specified parts of VitessCellSpec. +These are the parts that are configurable inside VitessCluster. +The rest of the fields below are filled in by the parent controller. |
-imagePullPolicies + globalLockserver - -VitessImagePullPolicies + +VitessLockserverParams |
- ImagePullPolicies specifies the container image pull policies to use for -images defined in the ‘images’ field. +GlobalLockserver are the params to connect to the global lockserver. |
-imagePullSecrets + allCells - -[]Kubernetes core/v1.LocalObjectReference - +[]string |
- ImagePullSecrets specifies the image pull secrets to add to all Pods that -use the images defined in the ‘images’ field. +AllCells is a list of all cells in the Vitess cluster. |
-backup + images - -ClusterBackupSpec + +VitessCellImages |
- Backup specifies how to take and store Vitess backups. -This is optional but strongly recommended. In addition to disaster -recovery, Vitess currently depends on backups to support provisioning -of a new tablet in a shard with existing data, as an implementation detail. +Images are not customizable by users at the cell level because version +skew across the cluster is discouraged except during rolling updates, +in which case this field is automatically managed by the VitessCluster +controller that owns this VitessCell. |
-globalLockserver + imagePullPolicies - -LockserverSpec + +VitessImagePullPolicies |
- GlobalLockserver specifies either a deployed or external lockserver -to be used as the Vitess global topology store. -Default: Deploy an etcd cluster as the global lockserver. +ImagePullPolicies are inherited from the VitessCluster spec. |
-vitessDashboard + imagePullSecrets - -VitessDashboardSpec + +[]Kubernetes core/v1.LocalObjectReference |
- Dashboard deploys a set of Vitess Dashboard servers (vtctld) for the Vitess cluster. +ImagePullSecrets are inherited from the VitessCluster spec. |
-cells + extraVitessFlags - -[]VitessCellTemplate - +map[string]string |
- Cells is a list of templates for VitessCells to create for this cluster. -Each VitessCell represents a set of Nodes in a given failure domain, -to which VitessKeyspaces can be deployed. The VitessCell also deploys -cell-local services that any keyspaces deployed there will need. -This field is required, but it may be set to an empty list: []. -Before removing any cell from this list, you should first ensure -that no keyspaces are set to deploy to this cell. +ExtraVitessFlags is inherited from the parent’s VitessClusterSpec. |
-keyspaces + topologyReconciliation - -[]VitessKeyspaceTemplate + +TopoReconcileConfig |
- Keyspaces defines the logical databases to deploy. -A VitessKeyspace can deploy to multiple VitessCells. -This field is required, but it may be set to an empty list: []. -Before removing any keyspace from this list, you should first ensure -that it is undeployed from all cells by clearing the keyspace’s list -of target cells. +TopologyReconciliation is inherited from the parent’s VitessClusterSpec. |
-extraVitessFlags + |
+(Appears on: +VitessCell) +
++
VitessCellStatus defines the observed state of VitessCell
+ +Field | +Description | +
---|---|
+observedGeneration -map[string]string +int64 |
- ExtraVitessFlags can optionally be used to pass flags to all Vitess components. -WARNING: Any flags passed here must be flags that can be accepted by vtgate, vtctld and vttablet. -An example use-case would be topo flags. -All entries must be key-value string pairs of the form “flag”: “value”. The flag name should -not have any prefix (just “flag”, not “-flag”). To set a boolean flag, -set the string value to either “true” or “false”. +The generation observed by the controller. |
-topologyReconciliation + lockserver - -TopoReconcileConfig + +LockserverStatus |
- TopologyReconciliation can be used to enable or disable registration or pruning of various vitess components to and from topo records. +Lockserver is a summary of the status of the cell-local lockserver. |
-updateStrategy + gateway - -VitessClusterUpdateStrategy + +VitessCellGatewayStatus |
- UpdateStrategy specifies how components in the Vitess cluster will be updated -when a revision is made to the VitessCluster spec. +Gateway is a summary of the status of vtgate in this cell. |
-gatewayService + keyspaces - -ServiceOverrides + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessCellKeyspaceStatus |
- GatewayService can optionally be used to customize the global vtgate Service. -Note that per-cell vtgate Services can be customized within each cell -definition. +Keyspaces is a summary of keyspaces deployed in this cell. +This summary could be empty either if there are no keyspaces, +or if the controller failed to read the current state. +Use the Idle condition to distinguish these scenarios +when the difference matters. |
-tabletService + idle - -ServiceOverrides + +Kubernetes core/v1.ConditionStatus |
- TabletService can optionally be used to customize the global, headless vttablet Service. +Idle is a condition indicating whether the cell can be turned down. +If Idle is True, there are no keyspaces deployed in the cell, so it +should be safe to turn down the cell. |
(Appears on: -VitessCluster) +VitessCellSpec, +VitessClusterSpec)
-
VitessClusterStatus defines the observed state of VitessCluster
+VitessCellTemplate contains only the user-specified parts of a VitessCell object.
-observedGeneration - -int64 - - |
-
- The generation observed by the controller. - |
-
-globalLockserver - - -LockserverStatus - - - |
-
- GlobalLockserver is the status of the global lockserver. - |
-
-gatewayServiceName + name string |
- GatewayServiceName is the name of the cluster-wide vtgate Service. - |
-
-vitessDashboard - - -VitessDashboardStatus - - - |
-
- VitessDashboard is a summary of the status of the vtctld deployment. - |
-
-cells - - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessClusterCellStatus - - - |
-
- Cells is a summary of the status of desired cells. +Name is the cell name as it should be provided to Vitess. +Note that this is different from the VitessCell object’s +metadata.name, which is generated by the operator. |
-keyspaces + zone - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessClusterKeyspaceStatus - +string |
- Keyspaces is a summary of the status of desired keyspaces. +Zone is the name of the Availability Zone that this Vitess Cell should run in. +This value should match the value of the “failure-domain.beta.kubernetes.io/zone” +label on the Kubernetes Nodes in that AZ. +If the Kubernetes Nodes don’t have such a label, leave this empty. |
-orphanedCells + lockserver - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.OrphanStatus + +LockserverSpec |
- OrphanedCells is a list of unwanted cells that could not be turned down. +Lockserver specifies either a deployed or external lockserver +to be used as the Vitess cell-local topology store. +Default: Put this cell’s topology data in the global lockserver instead of its own lockserver. |
-orphanedKeyspaces + gateway - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.OrphanStatus + +VitessCellGatewaySpec |
- OrphanedKeyspaces is a list of unwanted keyspaces that could not be turned down. +Gateway configures the Vitess Gateway deployment in this cell. |
(Appears on: -VitessClusterSpec, -VitessKeyspaceSpec, -VitessShardSpec) +VitessClusterStatus)
-
VitessClusterUpdateStrategy indicates the strategy that the operator -will use to perform updates. It includes any additional parameters -necessary to perform the update for the indicated strategy.
+VitessClusterCellStatus is the status of a cell within a VitessCluster.
-type + pendingChanges - -VitessClusterUpdateStrategyType - +string |
- Type selects the overall update strategy. -Supported options are: -
Default: External +PendingChanges describes changes to the cell that will be +applied the next time a rolling update allows. |
-external + gatewayAvailable - -ExternalVitessClusterUpdateStrategyOptions + +Kubernetes core/v1.ConditionStatus |
- External can optionally be used to enable the user to customize their external update strategy -to allow certain updates to pass through immediately without using an external tool. +GatewayAvailable indicates whether the vtgate service is fully available. |
string
alias)-(Appears on: -VitessClusterUpdateStrategy) -
--
VitessClusterUpdateStrategyType is a string enumeration type that enumerates -all possible update strategies for the VitessCluster.
- -(Appears on: -VitessClusterSpec) +VitessClusterStatus)
-
VitessDashboardSpec specifies deployment parameters for vtctld.
+VitessClusterKeyspaceStatus is the status of a keyspace within a VitessCluster.
-cells + pendingChanges -[]string +string |
- Cells is a list of cell names (as defined in the Cells list) -in which to deploy vtctld. -Default: Deploy to all defined cells. +PendingChanges describes changes to the keyspace that will be +applied the next time a rolling update allows. |
-replicas + desiredShards int32 |
- Replicas is the number of vtctld instances to deploy in each cell. +DesiredShards is the number of desired shards. This is computed from +information that’s already available in the spec, but clients should +use this value instead of trying to compute shard partitionings on their +own. |
-resources + shards - -Kubernetes core/v1.ResourceRequirements - +int32 |
- Resources determines the compute resources reserved for each vtctld replica. +Shards is the number of observed shards. This could be higher or lower +than desiredShards if the state has not yet converged. |
-extraFlags + readyShards -map[string]string +int32 |
- ExtraFlags can optionally be used to override default flags set by the -operator, or pass additional flags to vtctld. All entries must be -key-value string pairs of the form “flag”: “value”. The flag name should -not have any prefix (just “flag”, not “-flag”). To set a boolean flag, -set the string value to either “true” or “false”. +ReadyShards is the number of desired shards that are Ready. |
-extraEnv + updatedShards - -[]Kubernetes core/v1.EnvVar - +int32 |
- ExtraEnv can optionally be used to override default environment variables -set by the operator, or pass additional environment variables. +UpdatedShards is the number of desired shards that are up-to-date +(have no pending changes). |
-extraVolumes + desiredTablets - -[]Kubernetes core/v1.Volume - +int32 |
- ExtraVolumes can optionally be used to override default Pod volumes -defined by the operator, or provide additional volumes to the Pod. -Note that when adding a new volume, you should usually also add a -volumeMount to specify where in each container’s filesystem the volume -should be mounted. +DesiredTablets is the total number of desired tablets across all shards. +This is computed from information that’s already available in the spec, +but clients should use this value instead of trying to compute shard +partitionings on their own. |
-extraVolumeMounts + tablets - -[]Kubernetes core/v1.VolumeMount - +int32 |
- ExtraVolumeMounts can optionally be used to override default Pod -volumeMounts defined by the operator, or specify additional mounts. -Typically, these are used to mount volumes defined through extraVolumes. +Tablets is the total number of observed tablets across all shards. +This could be higher or lower than desiredTablets if the state has not +yet converged. |
-initContainers + readyTablets - -[]Kubernetes core/v1.Container - +int32 |
- InitContainers can optionally be used to supply extra init containers -that will be run to completion one after another before any app containers are started. +ReadyTablets is the number of desired tablets that are Ready. + |
+
+updatedTablets + +int32 + + |
+
+ UpdatedTablets is the number of desired tablets that are up-to-date +(have no pending changes). + |
+
+cells + +[]string + + |
+
+ Cells is a list of cells in which any observed tablets for this keyspace +are deployed. + |
+
+(Appears on: +VitessCluster) +
++
VitessClusterSpec defines the desired state of VitessCluster.
+ +Field | +Description | +
---|---|
+images + + +VitessImages + + + |
+
+ Images specifies the container images (including version tag) to use +in the cluster. +Default: Let the operator choose. + |
+
+imagePullPolicies + + +VitessImagePullPolicies + + + |
+
+ ImagePullPolicies specifies the container image pull policies to use for +images defined in the ‘images’ field. + |
+
+imagePullSecrets + + +[]Kubernetes core/v1.LocalObjectReference + + + |
+
+ ImagePullSecrets specifies the image pull secrets to add to all Pods that +use the images defined in the ‘images’ field. + |
+
+backup + + +ClusterBackupSpec + + + |
+
+ Backup specifies how to take and store Vitess backups. +This is optional but strongly recommended. In addition to disaster +recovery, Vitess currently depends on backups to support provisioning +of a new tablet in a shard with existing data, as an implementation detail. + |
+
+globalLockserver + + +LockserverSpec + + + |
+
+ GlobalLockserver specifies either a deployed or external lockserver +to be used as the Vitess global topology store. +Default: Deploy an etcd cluster as the global lockserver. + |
+
+vitessDashboard + + +VitessDashboardSpec + + + |
+
+ Dashboard deploys a set of Vitess Dashboard servers (vtctld) for the Vitess cluster. + |
+
+vtadmin + + +VtAdminSpec + + + |
+
+ VtAdmin deploys a set of Vitess Admin servers for the Vitess cluster. + |
+
+cells + + +[]VitessCellTemplate + + + |
+
+ Cells is a list of templates for VitessCells to create for this cluster. +Each VitessCell represents a set of Nodes in a given failure domain, +to which VitessKeyspaces can be deployed. The VitessCell also deploys +cell-local services that any keyspaces deployed there will need. +This field is required, but it may be set to an empty list: []. +Before removing any cell from this list, you should first ensure +that no keyspaces are set to deploy to this cell. + |
+
+keyspaces + + +[]VitessKeyspaceTemplate + + + |
+
+ Keyspaces defines the logical databases to deploy. +A VitessKeyspace can deploy to multiple VitessCells. +This field is required, but it may be set to an empty list: []. +Before removing any keyspace from this list, you should first ensure +that it is undeployed from all cells by clearing the keyspace’s list +of target cells. + |
+
+extraVitessFlags + +map[string]string + + |
+
+ ExtraVitessFlags can optionally be used to pass flags to all Vitess components. +WARNING: Any flags passed here must be flags that can be accepted by vtgate, vtctld, vtorc, and vttablet. +An example use-case would be topo flags. +All entries must be key-value string pairs of the form “flag”: “value”. The flag name should +not have any prefix (just “flag”, not “-flag”). To set a boolean flag, +set the string value to either “true” or “false”. + |
+
+topologyReconciliation + + +TopoReconcileConfig + + + |
+
+ TopologyReconciliation can be used to enable or disable registration or pruning of various vitess components to and from topo records. + |
+
+updateStrategy + + +VitessClusterUpdateStrategy + + + |
+
+ UpdateStrategy specifies how components in the Vitess cluster will be updated +when a revision is made to the VitessCluster spec. + |
+
+gatewayService + + +ServiceOverrides + + + |
+
+ GatewayService can optionally be used to customize the global vtgate Service. +Note that per-cell vtgate Services can be customized within each cell +definition. + |
+
+tabletService + + +ServiceOverrides + + + |
+
+ TabletService can optionally be used to customize the global, headless vttablet Service. + |
+
+(Appears on: +VitessCluster) +
++
VitessClusterStatus defines the observed state of VitessCluster
+ +Field | +Description | +
---|---|
+observedGeneration + +int64 + + |
+
+ The generation observed by the controller. + |
+
+globalLockserver + + +LockserverStatus + + + |
+
+ GlobalLockserver is the status of the global lockserver. + |
+
+gatewayServiceName + +string + + |
+
+ GatewayServiceName is the name of the cluster-wide vtgate Service. + |
+
+vitessDashboard + + +VitessDashboardStatus + + + |
+
+ VitessDashboard is a summary of the status of the vtctld deployment. + |
+
+vtadmin + + +VtadminStatus + + + |
+
+ Vtadmin is a summary of the status of the vtadmin deployment. + |
+
+cells + + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessClusterCellStatus + + + |
+
+ Cells is a summary of the status of desired cells. + |
+
+keyspaces + + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessClusterKeyspaceStatus + + + |
+
+ Keyspaces is a summary of the status of desired keyspaces. + |
+
+orphanedCells + + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.OrphanStatus + + + |
+
+ OrphanedCells is a list of unwanted cells that could not be turned down. + |
+
+orphanedKeyspaces + + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.OrphanStatus + + + |
+
+ OrphanedKeyspaces is a list of unwanted keyspaces that could not be turned down. + |
+
+(Appears on: +VitessClusterSpec, +VitessKeyspaceSpec, +VitessShardSpec) +
++
VitessClusterUpdateStrategy indicates the strategy that the operator +will use to perform updates. It includes any additional parameters +necessary to perform the update for the indicated strategy.
+ +Field | +Description | +
---|---|
+type + + +VitessClusterUpdateStrategyType + + + |
+
+ Type selects the overall update strategy. +Supported options are: +
Default: External + |
+
+external + + +ExternalVitessClusterUpdateStrategyOptions + + + |
+
+ External can optionally be used to enable the user to customize their external update strategy +to allow certain updates to pass through immediately without using an external tool. + |
+
string
alias)+(Appears on: +VitessClusterUpdateStrategy) +
++
VitessClusterUpdateStrategyType is a string enumeration type that enumerates +all possible update strategies for the VitessCluster.
+ ++(Appears on: +VitessClusterSpec) +
++
VitessDashboardSpec specifies deployment parameters for vtctld.
+ +Field | +Description | +
---|---|
+cells + +[]string + + |
+
+ Cells is a list of cell names (as defined in the Cells list) +in which to deploy vtctld. +Default: Deploy to all defined cells. + |
+
+replicas + +int32 + + |
+
+ Replicas is the number of vtctld instances to deploy in each cell. + |
+
+resources + + +Kubernetes core/v1.ResourceRequirements + + + |
+
+ Resources determines the compute resources reserved for each vtctld replica. + |
+
+extraFlags + +map[string]string + + |
+
+ ExtraFlags can optionally be used to override default flags set by the +operator, or pass additional flags to vtctld. All entries must be +key-value string pairs of the form “flag”: “value”. The flag name should +not have any prefix (just “flag”, not “-flag”). To set a boolean flag, +set the string value to either “true” or “false”. + |
+
+extraEnv + + +[]Kubernetes core/v1.EnvVar + + + |
+
+ ExtraEnv can optionally be used to override default environment variables +set by the operator, or pass additional environment variables. + |
+
+extraVolumes + + +[]Kubernetes core/v1.Volume + + + |
+
+ ExtraVolumes can optionally be used to override default Pod volumes +defined by the operator, or provide additional volumes to the Pod. +Note that when adding a new volume, you should usually also add a +volumeMount to specify where in each container’s filesystem the volume +should be mounted. + |
+
+extraVolumeMounts + + +[]Kubernetes core/v1.VolumeMount + + + |
+
+ ExtraVolumeMounts can optionally be used to override default Pod +volumeMounts defined by the operator, or specify additional mounts. +Typically, these are used to mount volumes defined through extraVolumes. + |
+
+initContainers + + +[]Kubernetes core/v1.Container + + + |
+
+ InitContainers can optionally be used to supply extra init containers +that will be run to completion one after another before any app containers are started. + |
+
+sidecarContainers + + +[]Kubernetes core/v1.Container + + + |
+
+ SidecarContainers can optionally be used to supply extra containers +that run alongside the main containers. + |
+
+affinity + + +Kubernetes core/v1.Affinity + + + |
+
+ Affinity allows you to set rules that constrain the scheduling of +your vtctld pods. WARNING: These affinity rules will override all default affinities +that we set; in turn, we can’t guarantee optimal scheduling of your pods if you +choose to set this field. + |
+
+annotations + +map[string]string + + |
+
+ Annotations can optionally be used to attach custom annotations to Pods +created for this component. These will be attached to the underlying +Pods that the vtctld Deployment creates. + |
+
+extraLabels + +map[string]string + + |
+
+ ExtraLabels can optionally be used to attach custom labels to Pods +created for this component. These will be attached to the underlying +Pods that the vtctld Deployment creates. + |
+
+service + + +ServiceOverrides + + + |
+
+ Service can optionally be used to customize the vtctld Service. + |
+
+tolerations + + +[]Kubernetes core/v1.Toleration + + + |
+
+ Tolerations allow you to schedule pods onto nodes with matching taints. + |
+
+(Appears on: +VitessClusterStatus) +
++
VitessDashboardStatus is a summary of the status of the vtctld deployment.
+ +Field | +Description | +
---|---|
+available + + +Kubernetes core/v1.ConditionStatus + + + |
+
+ Available indicates whether the vtctld service has available endpoints. + |
+
+serviceName + +string + + |
+
+ ServiceName is the name of the Service for this cluster’s vtctld. + |
+
+(Appears on: +VitessCellGatewaySpec) +
++
VitessGatewayAuthentication configures authentication for vtgate in this cell.
+ +Field | +Description | +
---|---|
+static + + +VitessGatewayStaticAuthentication + + + |
+
+ Static configures vtgate to use a static file containing usernames and passwords. + |
+
+(Appears on: +VitessCellGatewaySpec) +
++
VitessGatewaySecureTransport configures secure transport connections for vtgate.
+ +Field | +Description | +
---|---|
+required + +bool + + |
+
+ Required configures vtgate to reject non-secure transport connections. +Applies only to MySQL protocol connections. +All GRPC transport is required to be encrypted when certs are set. + |
+
+tls + + +VitessGatewayTLSSecureTransport + + + |
+
+ TLS configures vtgate to use TLS encrypted transport. + |
+
+(Appears on: +VitessGatewayAuthentication) +
++
VitessGatewayStaticAuthentication configures static file authentication for vtgate.
+ +Field | +Description | +
---|---|
+secret + + +SecretSource + + + |
+
+ Secret configures vtgate to load the static auth file from a given key in a given Secret. + |
+
+(Appears on: +VitessGatewaySecureTransport) +
++
VitessGatewayAuthentication configures authentication for vtgate in this cell.
+ +Field | +Description | +
---|---|
+clientCACertSecret + + +SecretSource + + + |
+
+ ClientCACertSecret configures vtgate to load the TLS certificate authority PEM file from a given key in a given Secret. +If specified, checks client certificates are signed by this CA certificate. +Optional. + |
+
+certSecret + + +SecretSource + + + |
+
+ CertSecret configures vtgate to load the TLS cert PEM file from a given key in a given Secret. + |
+
+keySecret + + +SecretSource + + + |
+
+ KeySecret configures vtgate to load the TLS key PEM file from a given key in a given Secret. + |
+
+(Appears on: +VitessCellSpec, +VitessClusterSpec, +VitessKeyspaceSpec, +VitessShardSpec) +
++
VitessImagePullPolicies specifies container image pull policies to use for Vitess components.
+ +Field | +Description | +
---|---|
+vtctld + + +Kubernetes core/v1.PullPolicy + + + |
+
+ Vtctld is the container image pull policy to use for Vitess Dashboard instances. + |
+
+vtadmin + + +Kubernetes core/v1.PullPolicy + + + |
+
+ Vtadmin is the container image pull policy to use for Vtadmin instances. + |
+
+vtorc + + +Kubernetes core/v1.PullPolicy + + + |
+
+ Vtorc is the container image pull policy to use for Vitess Orchestrator instances. + |
+
+vtgate + + +Kubernetes core/v1.PullPolicy + + + |
+
+ Vtgate is the container image pull policy to use for Vitess Gateway instances. + |
+
+vttablet + + +Kubernetes core/v1.PullPolicy + + + |
+
+ Vttablet is the container image pull policy to use for Vitess Tablet instances. + |
+
+vtbackup + + +Kubernetes core/v1.PullPolicy + + + |
+
+ Vtbackup is the container image pull policy to use for Vitess Backup jobs. + |
+
+mysqld + + +Kubernetes core/v1.PullPolicy + + + |
+
+ Mysqld is the container image pull policy to use for mysqld. + |
+
+mysqldExporter + + +Kubernetes core/v1.PullPolicy + + + |
+
+ MysqldExporter is the container image pull policy to use for mysqld-exporter. + |
+
+(Appears on: +VitessClusterSpec) +
++
VitessImages specifies container images to use for Vitess components.
+ +Field | +Description | +
---|---|
+vtctld + +string + + |
+
+ Vtctld is the container image (including version tag) to use for Vitess Dashboard instances. + |
+
+vtadmin + +string + + |
+
+ Vtadmin is the container image (including version tag) to use for Vitess Admin instances. + |
+
+vtorc + +string + + |
+
+ Vtorc is the container image (including version tag) to use for Vitess Orchestrator instances. + |
+
+vtgate + +string + + |
+
+ Vtgate is the container image (including version tag) to use for Vitess Gateway instances. + |
+
+vttablet + +string + + |
+
+ Vttablet is the container image (including version tag) to use for Vitess Tablet instances. + |
+
+vtbackup + +string + + |
+
+ Vtbackup is the container image (including version tag) to use for Vitess Backup jobs. + |
+
+mysqld + + +MysqldImage + + + |
+
+ Mysqld specifies the container image to use for mysqld, as well as +declaring which MySQL flavor setting in Vitess the image is +compatible with. Only one flavor image may be provided at a time. +mysqld running alongside each tablet. + |
+
+mysqldExporter + +string + + |
+
+ MysqldExporter specifies the container image to use for mysqld-exporter. + |
+
+(Appears on: +VitessKeyspaceKeyRangeShard, +VitessShardSpec) +
++
VitessKeyRange specifies a range of keyspace IDs.
+ +Field | +Description | +
---|---|
+start + +string + + |
+
+ Start is a lowercase hexadecimal string representation of an arbitrary-length sequence of bytes. +If Start is the empty string, the key range is unbounded at the bottom. +If Start is not empty, the bytes of a keyspace ID must compare greater +than or equal to Start in lexicographical order to be in the range. + |
+
+end + +string + + |
+
+ End is a lowercase hexadecimal string representation of an arbitrary-length sequence of bytes. +If End is the empty string, the key range is unbounded at the top. +If End is not empty, the bytes of a keyspace ID must compare strictly less than End in +lexicographical order to be in the range. + |
+
+
VitessKeyspace represents the deployment of a logical database in Vitess. +Each keyspace consists of a number of shards, which then consist of tablets. +The tablets belonging to one VitessKeyspace can ultimately be deployed across +various VitessCells.
+ +Field | +Description | +||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||||||||||||
+spec + + +VitessKeyspaceSpec + + + |
+
+ + +
|
+||||||||||||||||||||||
+status + + +VitessKeyspaceStatus |
- Tolerations allow you to schedule pods onto nodes with matching taints. |
(Appears on: -VitessClusterStatus) +VitessKeyspaceStatus)
-
VitessDashboardStatus is a summary of the status of the vtctld deployment.
+VitessKeyspaceCondition contains details for the current condition of this VitessKeyspace.
-available + type + + +VitessKeyspaceConditionType + + + |
+
+ Type is the type of the condition. + |
+
+status Kubernetes core/v1.ConditionStatus @@ -3994,30 +5520,154 @@ Kubernetes core/v1.ConditionStatus |
- Available indicates whether the vtctld service has available endpoints. +Status is the status of the condition. +Can be True, False, Unknown. + |
+
+lastTransitionTime + + +Kubernetes meta/v1.Time + + + |
+
+ Last time the condition transitioned from one status to another. +Optional. |
-serviceName + reason string |
- ServiceName is the name of the Service for this cluster’s vtctld. +Unique, one-word, PascalCase reason for the condition’s last transition. +Optional. + |
+
+message + +string + + |
+
+ Human-readable message indicating details about last transition. +Optional. |
string
alias)+(Appears on: +VitessKeyspaceCondition) +
++
VitessKeyspaceConditionType is a valid value for the key of a VitessKeyspaceCondition map where the key is a +VitessKeyspaceConditionType and the value is a VitessKeyspaceCondition.
+ +(Appears on: -VitessCellGatewaySpec) +VitessKeyspacePartitioning)
-
VitessGatewayAuthentication configures authentication for vtgate in this cell.
+VitessKeyspaceCustomPartitioning lets you explicitly specify the key range of every shard.
+ +Field | +Description | +
---|---|
+shards + + +[]VitessKeyspaceKeyRangeShard + + + |
+
+ Shards is a list of explicit shard specifications. + |
+
+(Appears on: +VitessKeyspacePartitioning) +
++
VitessKeyspaceEqualPartitioning splits the keyspace into some number of equal parts.
+ +Field | +Description | +
---|---|
+parts + +int32 + + |
+
+ Parts is the number of equal parts to split the keyspace into. +If you need shards that are not equal-sized, use custom partitioning instead. +Note that if the number of parts is not a power of 2, the key ranges will +only be roughly equal in size. +WARNING: DO NOT change the number of parts in a partitioning after deploying. +That’s effectively deleting the old partitioning and adding a new one, +which can lead to downtime or data loss. Instead, add an additional +partitioning with the desired number of parts, perform a resharding +migration, and then remove the old partitioning. + |
+
+shardTemplate + + +VitessShardTemplate + + + |
+
+ ShardTemplate is the configuration used for each equal-sized shard. +If you need shards that don’t all share the same configuration, +use custom partitioning instead. + |
+
+(Appears on: +VitessKeyspaceSpec, +VitessShardSpec) +
++
VitessKeyspaceImages specifies container images to use for this keyspace.
Field | Description | - - + + +
---|---|
+vttablet + +string + + |
+
+ Vttablet is the container image (including version tag) to use for Vitess Tablet instances. + |
+
+vtorc + +string + + |
+
+ Vtorc is the container image (including version tag) to use for Vitess Orchestrator instances. + |
+
+vtbackup + +string + + |
+
+ Vtbackup is the container image (including version tag) to use for Vitess Backup jobs. + |
+
-static + mysqld - -VitessGatewayStaticAuthentication + +MysqldImage |
- Static configures vtgate to use a static file containing usernames and passwords. +Mysqld specifies the container image to use for mysqld, as well as +declaring which MySQL flavor setting in Vitess the image is +compatible with. Only one flavor image may be provided at a time. +mysqld running alongside each tablet. + |
+
+mysqldExporter + +string + + |
+
+ MysqldExporter specifies the container image for mysqld-exporter. |
(Appears on: -VitessCellGatewaySpec) +VitessKeyspaceCustomPartitioning)
-
VitessGatewaySecureTransport configures secure transport connections for vtgate.
+VitessKeyspaceKeyRangeShard defines a shard based on a key range.
-required + keyRange -bool + +VitessKeyRange + |
- Required configures vtgate to reject non-secure transport connections. -Applies only to MySQL protocol connections. -All GRPC transport is required to be encrypted when certs are set. +KeyRange is the range of keys that this shard serves. +WARNING: DO NOT change the key range of a shard after deploying. +That’s effectively deleting the old shard and adding a new one, +which can lead to downtime or data loss. Instead, add an additional +partitioning with the desired set of shards, perform a resharding +migration, and then remove the old partitioning. |
-tls + VitessShardTemplate - -VitessGatewayTLSSecureTransport + +VitessShardTemplate |
- TLS configures vtgate to use TLS encrypted transport. +
+(Members of VitessShardTemplate is the configuration for the shard. |
(Appears on: -VitessGatewayAuthentication) +VitessKeyspaceTemplate)
-
VitessGatewayStaticAuthentication configures static file authentication for vtgate.
+VitessKeyspacePartitioning defines a set of shards by dividing the keyspace into key ranges. +Each field is a different method of dividing the keyspace. Only one field should be set on +a given partitioning.
-secret + equal - -SecretSource + +VitessKeyspaceEqualPartitioning |
- Secret configures vtgate to load the static auth file from a given key in a given Secret. +Equal partitioning splits the keyspace into some number of equal parts, +assuming that the keyspace IDs are uniformly distributed, for example +because they’re generated by a hash vindex. + |
+
+custom + + +VitessKeyspaceCustomPartitioning + + + |
+
+ Custom partitioning lets you explicitly specify the key range of every shard, +in case you don’t want them to be divided equally. |
(Appears on: -VitessGatewaySecureTransport) +VitessKeyspaceStatus)
-
VitessGatewayAuthentication configures authentication for vtgate in this cell.
+VitessKeyspacePartitioningStatus aggregates status for all shards in a given partitioning.
-clientCACertSecret - - -SecretSource - - - |
-
- ClientCACertSecret configures vtgate to load the TLS certificate authority PEM file from a given key in a given Secret. -If specified, checks client certificates are signed by this CA certificate. -Optional. - |
-
-certSecret + shardNames - -SecretSource - +[]string |
- CertSecret configures vtgate to load the TLS cert PEM file from a given key in a given Secret. +ShardNames is a sorted list of shards in this partitioning, +in the format Vitess uses for shard names. |
-keySecret + servingWrites - -SecretSource + +Kubernetes core/v1.ConditionStatus |
- KeySecret configures vtgate to load the TLS key PEM file from a given key in a given Secret. +ServingWrites is a condition indicating whether all shards in this +partitioning are serving writes for their key ranges. +Note that False only means not all shards are serving writes; it’s still +possible that some shards in this partitioning are serving writes. +Check the per-shard status for full details. |
-(Appears on: -VitessCellSpec, -VitessClusterSpec, -VitessKeyspaceSpec, -VitessShardSpec) -
--
VitessImagePullPolicies specifies container image pull policies to use for Vitess components.
- -Field | -Description | -
---|---|
-vtctld + desiredTablets - -Kubernetes core/v1.PullPolicy - +int32 |
- Vtctld is the container image pull policy to use for Vitess Dashboard instances. +DesiredTablets is the number of desired tablets. This is computed from +information that’s already available in the spec, but clients should +use this value instead of trying to compute shard partitionings on their +own. |
-vtgate + tablets - -Kubernetes core/v1.PullPolicy - +int32 |
- Vtgate is the container image pull policy to use for Vitess Gateway instances. +Tablets is the number of observed tablets. This could be higher or +lower than desiredTablets if the state has not yet converged. |
-vttablet + readyTablets - -Kubernetes core/v1.PullPolicy - +int32 |
- Vttablet is the container image pull policy to use for Vitess Tablet instances. +ReadyTablets is the number of desired tablets that are Ready. |
-vtbackup + updatedTablets - -Kubernetes core/v1.PullPolicy - +int32 |
- Vtbackup is the container image pull policy to use for Vitess Backup jobs. +UpdatedTablets is the number of desired tablets that are up-to-date +(have no pending changes). |
-mysqld + desiredShards - -Kubernetes core/v1.PullPolicy - +int32 |
- Mysqld is the container image pull policy to use for mysqld. +DesiredShards is the number of desired shards. This is computed from +information that’s already available in the spec, but clients should +use this value instead of trying to compute shard partitionings on their +own. |
-mysqldExporter + readyShards - -Kubernetes core/v1.PullPolicy - +int32 |
- MysqldExporter is the container image pull policy to use for mysqld-exporter. +ReadyShards is the number of desired shards that are Ready. |
(Appears on: -VitessClusterSpec) +VitessKeyspaceStatus)
-
VitessImages specifies container images to use for Vitess components.
+VitessKeyspaceShardStatus is the status of a shard within a keyspace.
-vtctld - -string - - |
-
- Vtctld is the container image (including version tag) to use for Vitess Dashboard instances. - |
-
-vtgate + hasMaster -string + +Kubernetes core/v1.ConditionStatus + |
- Vtgate is the container image (including version tag) to use for Vitess Gateway instances. +HasMaster is a condition indicating whether the Vitess topology +reflects a master for this shard. |
-vttablet + servingWrites -string + +Kubernetes core/v1.ConditionStatus + |
- Vttablet is the container image (including version tag) to use for Vitess Tablet instances. +ServingWrites is a condition indicating whether this shard is the one +that serves writes for its key range, according to Vitess topology. +A shard might be deployed without serving writes if, for example, it is +the target of a resharding operation that is still in progress. |
-vtbackup + desiredTablets -string +int32 |
- Vtbackup is the container image (including version tag) to use for Vitess Backup jobs. +DesiredTablets is the number of desired tablets. This is computed from +information that’s already available in the spec, but clients should +use this value instead of trying to compute shard partitionings on their +own. |
-mysqld + tablets - -MysqldImage - +int32 |
- Mysqld specifies the container image to use for mysqld, as well as -declaring which MySQL flavor setting in Vitess the image is -compatible with. Only one flavor image may be provided at a time. -mysqld running alongside each tablet. +Tablets is the number of observed tablets. This could be higher or +lower than desiredTablets if the state has not yet converged. |
-mysqldExporter - -string - - |
-
- MysqldExporter specifies the container image to use for mysqld-exporter. - |
-
-(Appears on: -VitessKeyspaceKeyRangeShard, -VitessShardSpec) -
--
VitessKeyRange specifies a range of keyspace IDs.
- -
+ ReadyTablets is the number of desired tablets that are Ready. + |
+
|||
Field | -Description | +
+updatedTablets + +int32 + + |
+
+ UpdatedTablets is the number of desired tablets that are up-to-date +(have no pending changes). + |
---|---|---|---|
-start + pendingChanges string |
- Start is a lowercase hexadecimal string representation of an arbitrary-length sequence of bytes. -If Start is the empty string, the key range is unbounded at the bottom. -If Start is not empty, the bytes of a keyspace ID must compare greater -than or equal to Start in lexicographical order to be in the range. +PendingChanges describes changes to the shard that will be applied +the next time a rolling update allows. |
||
-end + cells -string +[]string |
- End is a lowercase hexadecimal string representation of an arbitrary-length sequence of bytes. -If End is the empty string, the key range is unbounded at the top. -If End is not empty, the bytes of a keyspace ID must compare strictly less than End in -lexicographical order to be in the range. +Cells is a list of cells in which any tablets for this shard are deployed. |
-
VitessKeyspace represents the deployment of a logical database in Vitess. -Each keyspace consists of a number of shards, which then consist of tablets. -The tablets belonging to one VitessKeyspace can ultimately be deployed across -various VitessCells.
+(Appears on: +VitessKeyspace) + ++
VitessKeyspaceSpec defines the desired state of a VitessKeyspace.
-metadata - - -Kubernetes meta/v1.ObjectMeta - - - |
-
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
- |
-||||||||||||
-spec - - -VitessKeyspaceSpec - - - |
-
- - -
|
-||||||||||||
-status - - -VitessKeyspaceStatus - - - |
-- | -
(Appears on: -VitessKeyspaceStatus) +VitessKeyspace)
-
VitessKeyspaceCondition contains details for the current condition of this VitessKeyspace.
+VitessKeyspaceStatus defines the observed state of a VitessKeyspace.
-type + observedGeneration - -VitessKeyspaceConditionType +int64 + + |
+
+ The generation observed by the controller. + |
+
+shards + + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessKeyspaceShardStatus |
- Type is the type of the condition. +Shards is a summary of the status of all desired shards. |
-status + partitionings - -Kubernetes core/v1.ConditionStatus + +[]VitessKeyspacePartitioningStatus |
- Status is the status of the condition. -Can be True, False, Unknown. +Partitionings is an aggregation of status for all shards in each partitioning. |
-lastTransitionTime + orphanedShards - -Kubernetes meta/v1.Time + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.OrphanStatus |
- Last time the condition transitioned from one status to another. -Optional. +OrphanedShards is a list of unwanted shards that could not be turned down. |
-reason + idle -string + +Kubernetes core/v1.ConditionStatus + |
- Unique, one-word, PascalCase reason for the condition’s last transition. -Optional. +Idle is a condition indicating whether the keyspace can be turned down. +If Idle is True, the keyspace is not deployed in any cells, so it should +be safe to turn down the keyspace. |
-message + resharding -string + +ReshardingStatus + |
- Human-readable message indicating details about last transition. -Optional. +ReshardingStatus provides information about an active resharding operation, if any. +This field is only present if the ReshardingActive condition is True. If that condition is Unknown, +it means the operator was unable to query resharding status from Vitess. + |
+
+conditions + + +[]VitessKeyspaceCondition + + + |
+
+ Conditions is a list of all VitessKeyspace specific conditions we want to set and monitor. +It’s ok for multiple controllers to add conditions here, and those conditions will be preserved. |
string
alias)-(Appears on: -VitessKeyspaceCondition) -
--
VitessKeyspaceConditionType is a valid value for the key of a VitessKeyspaceCondition map where the key is a -VitessKeyspaceConditionType and the value is a VitessKeyspaceCondition.
- -(Appears on: -VitessKeyspacePartitioning) +VitessClusterSpec, +VitessKeyspaceSpec)
-
VitessKeyspaceCustomPartitioning lets you explicitly specify the key range of every shard.
+VitessKeyspaceTemplate contains only the user-specified parts of a VitessKeyspace object.
-shards + name + +string + + |
+
+ Name is the keyspace name as it should be provided to Vitess. +Note that this is different from the VitessKeyspace object’s +metadata.name, which is generated by the operator. +WARNING: DO NOT change the name of a keyspace that was already deployed. +Keyspaces cannot be renamed, so this will be interpreted as an +instruction to delete the old keyspace and create a new one. + |
+
+databaseName + +string + + |
+
+ DatabaseName is the name to use for the underlying, physical MySQL +database created to hold data for the keyspace. +This name is mostly hidden from Vitess clients, which should see and use +only the keyspace name as a logical database. However, you may want to +set this to control the name used by clients that bypass Vitess and +connect directly to the underlying MySQL, such as certain DBA tools. +The default, when the field is either left unset or set to empty string, +is to add a “vt_” prefix to the keyspace name since that has historically +been the default in Vitess itself. However, it’s often preferable to set +this to be the same as the keyspace name to reduce confusion. +Default: Add a “vt_” prefix to the keyspace name. + |
+
+durabilityPolicy + +string + + |
+
+ DurabilityPolicy is the name of the durability policy to use for the keyspace. +If unspecified, vtop will not set the durability policy. + |
+
+vitessOrchestrator + + +VitessOrchestratorSpec + + + |
+
+ VitessOrchestrator deploys a set of Vitess Orchestrator (vtorc) servers for the Keyspace. +It is highly recommended that you set disable_active_reparents=true +for the vttablets if enabling vtorc. + |
+
+partitionings + + +[]VitessKeyspacePartitioning + + + |
+
+ Partitionings specify how to divide the keyspace up into shards by +defining the range of keyspace IDs that each shard contains. +For example, you might divide the keyspace into N equal-sized key ranges. +Note that this is distinct from defining how each row maps to a keyspace ID, +which is done in the VSchema. Partitioning is purely an operational concern +(scaling the infrastructure), while VSchema is an application-level concern +(modeling relationships between data). This separation of concerns allows +resharding to occur generically at the infrastructure level without any +knowledge of the data model. +Each partitioning must define a set of shards that fully covers the +space of all possible keyspace IDs; there can be no gaps between ranges. +There’s usually only one partitioning present at a time, but during +resharding, it’s necessary to launch the destination shards alongside +the source shards. When the resharding is complete, the old partitioning +can be removed, which will turn down (undeploy) any unneeded shards. +If only some shards are being split or joined during resharding, +the shards that aren’t changing must be specified in both partitionings, +although the common shards will be shared (only deployed once). +If the per-shard configuration differs, the configuration in the latter +partitioning (in the order listed in this field) will be used. +For this reason, it’s recommended to add new partitionings at the end, +and only remove partitionings from the beginning. +This field is required. An unsharded keyspace may be specified as a +partitioning into 1 part. + |
+
+turndownPolicy - -[]VitessKeyspaceKeyRangeShard + +VitessKeyspaceTurndownPolicy |
- Shards is a list of explicit shard specifications. +TurndownPolicy specifies what should happen if this keyspace is ever +removed from the VitessCluster spec. By default, removing a keyspace +entry from the VitessCluster spec will NOT actually turn down the +deployed resources, unless it can be verified that the keyspace was +previously set to have 0 total desired tablets across all shards. +With this default policy (RequireIdle), before removing the keyspace +entry from the spec, you must first edit the keyspace entry to remove +all tablet pools from all shards, and wait for that change to roll out. +If a keyspace entry is removed too soon, the keyspace resources will +remain deployed indefinitely, and the keyspace will be listed in the +orphanedKeyspaces field of VitessCluster status. +This is a safety mechanism to prevent accidental edits to the cluster +object from having immediate, destructive consequences. If the cluster +spec is only ever edited by automation whose edits you trust to be safe, +you can set the policy to Immediate to skip these checks. +Default: RequireIdle |
-(Appears on: -VitessKeyspacePartitioning) -
--
VitessKeyspaceEqualPartitioning splits the keyspace into some number of equal parts.
- -Field | -Description | -
---|---|
-parts + annotations -int32 +map[string]string |
- Parts is the number of equal parts to split the keyspace into. -If you need shards that are not equal-sized, use custom partitioning instead. -Note that if the number of parts is not a power of 2, the key ranges will -only be roughly equal in size. -WARNING: DO NOT change the number of parts in a partitioning after deploying. -That’s effectively deleting the old partitioning and adding a new one, -which can lead to downtime or data loss. Instead, add an additional -partitioning with the desired number of parts, perform a resharding -migration, and then remove the old partitioning. +Annotations can optionally be used to attach custom annotations to the VitessKeyspace object. |
-shardTemplate + images - -VitessShardTemplate + +VitessKeyspaceTemplateImages |
- ShardTemplate is the configuration used for each equal-sized shard. -If you need shards that don’t all share the same configuration, -use custom partitioning instead. +For special cases, users may specify per-VitessKeyspace images. An
+example: migrating from MySQL 5.7 to MySQL 8.0 via a |
(Appears on: -VitessKeyspaceSpec, -VitessShardSpec) +VitessKeyspaceTemplate)
-
VitessKeyspaceImages specifies container images to use for this keyspace.
+VitessKeyspaceTemplateImages specifies user-definable container images to +use for this keyspace. The images defined here by the user will override +those defined at the top-level in VitessCluster.spec.images.
+While this field allows you to set a different Vitess version for some +components than the version defined at the top level, it is important to +note that Vitess only ensures compatibility between one version and the +next and previous one. For instance: N is only guaranteed to be compatible +with N+1 and N-1. Do be careful when specifying multiple versions across +your cluster so that they respect this compatibility rule.
+Note: this structure is a copy of VitessKeyspaceImages, once we have gotten +rid of MysqldImage and replaced it by MysqldImageNew (planned for v2.15), we +should be able to remove VitessKeyspaceTemplateImages entirely and just use +VitessKeyspaceImages instead as it contains exactly the same fields.
-vttablet + vttablet string @@ -4835,7 +6583,18 @@ string | |
-vtbackup + vtorc + +string + + |
+
+ Vtorc is the container image (including version tag) to use for Vitess Orchestrator instances. + |
+
+vtbackup string @@ -4846,10 +6605,10 @@ string | |
-mysqld + mysqld - -MysqldImage + +MysqldImageNew |
@@ -4862,7 +6621,7 @@ mysqld running alongside each tablet.
|
-mysqldExporter + mysqldExporter string @@ -4873,14 +6632,27 @@ string |
string
alias)+(Appears on: +VitessKeyspaceTemplate) +
++
VitessKeyspaceTurndownPolicy is the policy for turning down a keyspace.
+ +(Appears on: -VitessKeyspaceCustomPartitioning) +LockserverSpec, +VitessCellSpec, +VitessKeyspaceSpec, +VitessShardSpec)
-
VitessKeyspaceKeyRangeShard defines a shard based on a key range.
+VitessLockserverParams contains only the values that Vitess needs +to connect to a given lockserver.
-keyRange - - -VitessKeyRange - - - |
-
- KeyRange is the range of keys that this shard serves. -WARNING: DO NOT change the key range of a shard after deploying. -That’s effectively deleting the old shard and adding a new one, -which can lead to downtime or data loss. Instead, add an additional -partitioning with the desired set of shards, perform a resharding -migration, and then remove the old partitioning. - |
-
-VitessShardTemplate + implementation - -VitessShardTemplate - +string |
-
-(Members of VitessShardTemplate is the configuration for the shard. +Implementation specifies which Vitess “topo” plugin to use. |
-(Appears on: -VitessKeyspaceTemplate) -
--
VitessKeyspacePartitioning defines a set of shards by dividing the keyspace into key ranges. -Each field is a different method of dividing the keyspace. Only one field should be set on -a given partitioning.
- -Field | -Description | -
---|---|
-equal + address - -VitessKeyspaceEqualPartitioning - +string |
- Equal partitioning splits the keyspace into some number of equal parts, -assuming that the keyspace IDs are uniformly distributed, for example -because they’re generated by a hash vindex. +Address is the host:port of the lockserver client endpoint. |
-custom + rootPath - -VitessKeyspaceCustomPartitioning - +string |
- Custom partitioning lets you explicitly specify the key range of every shard, -in case you don’t want them to be divided equally. +RootPath is a path prefix for all lockserver data belonging to a given Vitess cluster. +Multiple Vitess clusters can share a lockserver as long as they have unique root paths. |
(Appears on: -VitessKeyspaceStatus) +VitessKeyspaceTemplate, +VitessShardSpec)
-
VitessKeyspacePartitioningStatus aggregates status for all shards in a given partitioning.
+VitessOrchestratorSpec specifies deployment parameters for vtorc.
-shardNames - -[]string - - |
-
- ShardNames is a sorted list of shards in this partitioning, -in the format Vitess uses for shard names. - |
-
-servingWrites + resources - -Kubernetes core/v1.ConditionStatus + +Kubernetes core/v1.ResourceRequirements |
- ServingWrites is a condition indicating whether all shards in this -partitioning are serving writes for their key ranges. -Note that False only means not all shards are serving writes; it’s still -possible that some shards in this partitioning are serving writes. -Check the per-shard status for full details. - |
-
-desiredTablets - -int32 - - |
-
- DesiredTablets is the number of desired tablets. This is computed from -information that’s already available in the spec, but clients should -use this value instead of trying to compute shard partitionings on their -own. - |
-
-tablets - -int32 - - |
-
- Tablets is the number of observed tablets. This could be higher or -lower than desiredTablets if the state has not yet converged. - |
-
-readyTablets - -int32 - - |
-
- ReadyTablets is the number of desired tablets that are Ready. - |
-
-updatedTablets - -int32 - - |
-
- UpdatedTablets is the number of desired tablets that are up-to-date -(have no pending changes). +Resources determines the compute resources reserved for each vtorc replica. |
-desiredShards + extraFlags -int32 +map[string]string |
- DesiredShards is the number of desired shards. This is computed from -information that’s already available in the spec, but clients should -use this value instead of trying to compute shard partitionings on their -own. +ExtraFlags can optionally be used to override default flags set by the +operator, or pass additional flags to vtorc. All entries must be +key-value string pairs of the form “flag”: “value”. The flag name should +not have any prefix (just “flag”, not “-flag”). To set a boolean flag, +set the string value to either “true” or “false”. |
-readyShards + extraEnv -int32 + +[]Kubernetes core/v1.EnvVar + |
- ReadyShards is the number of desired shards that are Ready. +ExtraEnv can optionally be used to override default environment variables +set by the operator, or pass additional environment variables. |
-(Appears on: -VitessKeyspaceStatus) -
--
VitessKeyspaceShardStatus is the status of a shard within a keyspace.
- -Field | -Description | +
+extraVolumes + + +[]Kubernetes core/v1.Volume + + + |
+
+ ExtraVolumes can optionally be used to override default Pod volumes +defined by the operator, or provide additional volumes to the Pod. +Note that when adding a new volume, you should usually also add a +volumeMount to specify where in each container’s filesystem the volume +should be mounted. + |
---|---|---|---|
-hasMaster + extraVolumeMounts - -Kubernetes core/v1.ConditionStatus + +[]Kubernetes core/v1.VolumeMount |
- HasMaster is a condition indicating whether the Vitess topology -reflects a master for this shard. +ExtraVolumeMounts can optionally be used to override default Pod +volumeMounts defined by the operator, or specify additional mounts. +Typically, these are used to mount volumes defined through extraVolumes. |
||
-servingWrites + initContainers - -Kubernetes core/v1.ConditionStatus + +[]Kubernetes core/v1.Container |
- ServingWrites is a condition indicating whether this shard is the one -that serves writes for its key range, according to Vitess topology. -A shard might be deployed without serving writes if, for example, it is -the target of a resharding operation that is still in progress. +InitContainers can optionally be used to supply extra init containers +that will be run to completion one after another before any app containers are started. |
||
-desiredTablets + sidecarContainers -int32 + +[]Kubernetes core/v1.Container + |
- DesiredTablets is the number of desired tablets. This is computed from -information that’s already available in the spec, but clients should -use this value instead of trying to compute shard partitionings on their -own. +SidecarContainers can optionally be used to supply extra containers +that run alongside the main containers. |
||
-tablets + affinity -int32 + +Kubernetes core/v1.Affinity + |
- Tablets is the number of observed tablets. This could be higher or -lower than desiredTablets if the state has not yet converged. +Affinity allows you to set rules that constrain the scheduling of +your vtorc pods. WARNING: These affinity rules will override all default affinities +that we set; in turn, we can’t guarantee optimal scheduling of your pods if you +choose to set this field. |
||
-readyTablets + annotations -int32 +map[string]string |
- ReadyTablets is the number of desired tablets that are Ready. +Annotations can optionally be used to attach custom annotations to Pods +created for this component. These will be attached to the underlying +Pods that the vtorc Deployment creates. |
||
-updatedTablets + extraLabels -int32 +map[string]string |
- UpdatedTablets is the number of desired tablets that are up-to-date -(have no pending changes). +ExtraLabels can optionally be used to attach custom labels to Pods +created for this component. These will be attached to the underlying +Pods that the vtorc Deployment creates. |
||
-pendingChanges + service -string + +ServiceOverrides + |
- PendingChanges describes changes to the shard that will be applied -the next time a rolling update allows. +Service can optionally be used to customize the vtorc Service. |
||
-cells + tolerations -[]string + +[]Kubernetes core/v1.Toleration + |
- Cells is a list of cells in which any tablets for this shard are deployed. +Tolerations allow you to schedule pods onto nodes with matching taints. |
(Appears on: -VitessKeyspace) +VitessShardStatus)
-
VitessKeyspaceSpec defines the desired state of a VitessKeyspace.
+VitessOrchestratorStatus is a summary of the status of the vtorc deployment.
-VitessKeyspaceTemplate + available - -VitessKeyspaceTemplate + +Kubernetes core/v1.ConditionStatus |
-
-(Members of VitessKeyspaceTemplate contains the user-specified parts of VitessKeyspaceSpec. -These are the parts that are configurable inside VitessCluster. -The rest of the fields below are filled in by the parent controller. +Available indicates whether the vtctld service has available endpoints. |
-globalLockserver + serviceName - -VitessLockserverParams - +string |
- GlobalLockserver are the params to connect to the global lockserver. +ServiceName is the name of the Service for this cluster’s vtorc. |
+(Appears on: +VitessShardTemplate) +
++
VitessReplicationSpec specifies how Vitess will set up MySQL replication.
+ +
-images - - -VitessKeyspaceImages - - - |
-
- Images are not customizable by users at the keyspace level because version -skew across the cluster is discouraged except during rolling updates, -in which case this field is automatically managed by the VitessCluster -controller that owns this VitessKeyspace. - |
+Field | +Description |
---|---|---|---|
-imagePullPolicies + initializeMaster - -VitessImagePullPolicies - +bool |
- ImagePullPolicies are inherited from the VitessCluster spec. +InitializeMaster specifies whether to choose an initial master for a +new or restored shard that has no master yet. +Default: true. |
||
-imagePullSecrets + initializeBackup - -[]Kubernetes core/v1.LocalObjectReference - +bool |
- ImagePullSecrets are inherited from the VitessCluster spec. +InitializeBackup specifies whether to take an initial placeholder backup +as part of preparing tablets to begin replication. This only takes effect +if a backup location is defined in the VitessCluster. +Default: true. |
||
-zoneMap + recoverRestartedMaster -map[string]string +bool |
- ZoneMap is a map from Vitess cell name to zone (failure domain) name -for all cells defined in the VitessCluster. +RecoverRestartedMaster specifies whether the operator attempts to repair +replication when the master MySQL restarts in-place (due to a crash) or +its Pod gets deleted and recreated, causing the Pod IP to change. +Default: true. |
+
VitessShard represents a group of Vitess instances (tablets) that store a subset +of the data in a logical database (keyspace).
+The tablets belonging to one VitessShard can ultimately be deployed across +various VitessCells. All the tablets in a given shard, across all cells, +use MySQL replication to stay eventually consistent with the MySQL master +for that shard.
+ +
-backupLocations - - -[]VitessBackupLocation - - - |
-
- BackupLocations are the backup locations defined in the VitessCluster. - |
+Field | +Description |
---|---|---|---|
-backupEngine + metadata - -VitessBackupEngine + +Kubernetes meta/v1.ObjectMeta |
- BackupEngine specifies the Vitess backup engine to use, either “builtin” or “xtrabackup”. - |
-||
-extraVitessFlags - -map[string]string - - |
-
- ExtraVitessFlags is inherited from the parent’s VitessClusterSpec. +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
||
-topologyReconciliation + spec - -TopoReconcileConfig + +VitessShardSpec |
- TopologyReconciliation is inherited from the parent’s VitessClusterSpec. - |
-
-updateStrategy + VitessShardTemplate - -VitessClusterUpdateStrategy + +VitessShardTemplate |
- UpdateStrategy is inherited from the parent’s VitessClusterSpec. - |
-
-(Appears on: -VitessKeyspace) -
--
VitessKeyspaceStatus defines the observed state of a VitessKeyspace.
+(Members ofVitessShardTemplate
are embedded into this type.)
-Field | -Description | +
---|---|
-observedGeneration + name -int64 +string |
- The generation observed by the controller. +Name is the shard name as it’s known to Vitess. |
-shards + databaseName - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessKeyspaceShardStatus - +string |
- Shards is a summary of the status of all desired shards. +DatabaseName is the name to use for the underlying MySQL database. +It is inherited from the parent keyspace, so it can only be configured at +the keyspace level. |
-partitionings + zoneMap - -[]VitessKeyspacePartitioningStatus - +map[string]string |
- Partitionings is an aggregation of status for all shards in each partitioning. +ZoneMap is a map from Vitess cell name to zone (failure domain) name +for all cells defined in the VitessCluster. |
-orphanedShards + images - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.OrphanStatus + +VitessKeyspaceImages |
- OrphanedShards is a list of unwanted shards that could not be turned down. +Images are not customizable by users at the shard level because version +skew across the shard is discouraged except during rolling updates, +in which case this field is automatically managed by the VitessKeyspace +controller that owns this VitessShard. |
-idle + imagePullPolicies - -Kubernetes core/v1.ConditionStatus + +VitessImagePullPolicies |
- Idle is a condition indicating whether the keyspace can be turned down. -If Idle is True, the keyspace is not deployed in any cells, so it should -be safe to turn down the keyspace. +ImagePullPolicies are inherited from the VitessCluster spec. |
-resharding + imagePullSecrets - -ReshardingStatus + +[]Kubernetes core/v1.LocalObjectReference |
- ReshardingStatus provides information about an active resharding operation, if any. -This field is only present if the ReshardingActive condition is True. If that condition is Unknown, -it means the operator was unable to query resharding status from Vitess. +ImagePullSecrets are inherited from the VitessCluster spec. |
-conditions + keyRange - -[]VitessKeyspaceCondition + +VitessKeyRange |
- Conditions is a list of all VitessKeyspace specific conditions we want to set and monitor. -It’s ok for multiple controllers to add conditions here, and those conditions will be preserved. +KeyRange is the range of keyspace IDs served by this shard. |
-(Appears on: -VitessClusterSpec, -VitessKeyspaceSpec) -
--
VitessKeyspaceTemplate contains only the user-specified parts of a VitessKeyspace object.
- -Field | -Description | -
---|---|
-name + globalLockserver -string + +VitessLockserverParams + |
- Name is the keyspace name as it should be provided to Vitess. -Note that this is different from the VitessKeyspace object’s -metadata.name, which is generated by the operator. -WARNING: DO NOT change the name of a keyspace that was already deployed. -Keyspaces cannot be renamed, so this will be interpreted as an -instruction to delete the old keyspace and create a new one. +GlobalLockserver are the params to connect to the global lockserver. |
-databaseName + vitessOrchestrator -string + +VitessOrchestratorSpec + |
- DatabaseName is the name to use for the underlying, physical MySQL -database created to hold data for the keyspace. -This name is mostly hidden from Vitess clients, which should see and use -only the keyspace name as a logical database. However, you may want to -set this to control the name used by clients that bypass Vitess and -connect directly to the underlying MySQL, such as certain DBA tools. -The default, when the field is either left unset or set to empty string, -is to add a “vt_” prefix to the keyspace name since that has historically -been the default in Vitess itself. However, it’s often preferable to set -this to be the same as the keyspace name to reduce confusion. -Default: Add a “vt_” prefix to the keyspace name. +VitessOrchestrator is inherited from the parent’s VitessKeyspace. |
-partitionings + backupLocations - -[]VitessKeyspacePartitioning + +[]VitessBackupLocation |
- Partitionings specify how to divide the keyspace up into shards by -defining the range of keyspace IDs that each shard contains. -For example, you might divide the keyspace into N equal-sized key ranges. -Note that this is distinct from defining how each row maps to a keyspace ID, -which is done in the VSchema. Partitioning is purely an operational concern -(scaling the infrastructure), while VSchema is an application-level concern -(modeling relationships between data). This separation of concerns allows -resharding to occur generically at the infrastructure level without any -knowledge of the data model. -Each partitioning must define a set of shards that fully covers the -space of all possible keyspace IDs; there can be no gaps between ranges. -There’s usually only one partitioning present at a time, but during -resharding, it’s necessary to launch the destination shards alongside -the source shards. When the resharding is complete, the old partitioning -can be removed, which will turn down (undeploy) any unneeded shards. -If only some shards are being split or joined during resharding, -the shards that aren’t changing must be specified in both partitionings, -although the common shards will be shared (only deployed once). -If the per-shard configuration differs, the configuration in the latter -partitioning (in the order listed in this field) will be used. -For this reason, it’s recommended to add new partitionings at the end, -and only remove partitionings from the beginning. -This field is required. An unsharded keyspace may be specified as a -partitioning into 1 part. +BackupLocations are the backup locations defined in the VitessCluster. |
-turndownPolicy + backupEngine - -VitessKeyspaceTurndownPolicy + +VitessBackupEngine |
- TurndownPolicy specifies what should happen if this keyspace is ever -removed from the VitessCluster spec. By default, removing a keyspace -entry from the VitessCluster spec will NOT actually turn down the -deployed resources, unless it can be verified that the keyspace was -previously set to have 0 total desired tablets across all shards. -With this default policy (RequireIdle), before removing the keyspace -entry from the spec, you must first edit the keyspace entry to remove -all tablet pools from all shards, and wait for that change to roll out. -If a keyspace entry is removed too soon, the keyspace resources will -remain deployed indefinitely, and the keyspace will be listed in the -orphanedKeyspaces field of VitessCluster status. -This is a safety mechanism to prevent accidental edits to the cluster -object from having immediate, destructive consequences. If the cluster -spec is only ever edited by automation whose edits you trust to be safe, -you can set the policy to Immediate to skip these checks. -Default: RequireIdle +BackupEngine specifies the Vitess backup engine to use, either “builtin” or “xtrabackup”. |
-annotations + extraVitessFlags map[string]string |
- Annotations can optionally be used to attach custom annotations to the VitessKeyspace object. +ExtraVitessFlags is inherited from the parent’s VitessClusterSpec. |
string
alias)-(Appears on: -VitessKeyspaceTemplate) -
--
VitessKeyspaceTurndownPolicy is the policy for turning down a keyspace.
- --(Appears on: -LockserverSpec, -VitessCellSpec, -VitessKeyspaceSpec, -VitessShardSpec) -
--
VitessLockserverParams contains only the values that Vitess needs -to connect to a given lockserver.
- -Field | -Description | -
---|---|
-implementation + topologyReconciliation -string + +TopoReconcileConfig + |
- Implementation specifies which Vitess “topo” plugin to use. +TopologyReconciliation is inherited from the parent’s VitessClusterSpec. |
-address + updateStrategy -string + +VitessClusterUpdateStrategy + |
- Address is the host:port of the lockserver client endpoint. +UpdateStrategy is inherited from the parent’s VitessClusterSpec. + |
+
rootPath
status
RootPath is a path prefix for all lockserver data belonging to a given Vitess cluster. -Multiple Vitess clusters can share a lockserver as long as they have unique root paths.
(Appears on: -VitessShardTemplate) +VitessShardStatus)
-
VitessReplicationSpec specifies how Vitess will set up MySQL replication.
+VitessShardCondition contains details for the current condition of this VitessShard.
-enforceSemiSync + status -bool + +Kubernetes core/v1.ConditionStatus + |
- EnforceSemiSync means Vitess will configure MySQL to require semi-sync -acknowledgement of all transactions while forbidding fallback to -asynchronous replication under any circumstance. -Note that this is different from merely enabling semi-sync, which in -its default configuration allows fallback to asynchronous replication -if no replicas are connected or if they don’t respond after a few seconds. -Enforced semi-sync is a mode that prefers master unavailability when -durability cannot be ensured, rather than risking the loss of data that -was already reported to clients as committed. -WARNING: Do not enable this if the shard has fewer than 3 master-eligible -replicas, as that may lead to master unavailability during routine -maintenance. -Default: Semi-sync is not enforced. +Status is the status of the condition. +Can be True, False, Unknown. |
-initializeMaster + lastTransitionTime -bool + +Kubernetes meta/v1.Time + |
- InitializeMaster specifies whether to choose an initial master for a -new or restored shard that has no master yet. -Default: true. +Last time the condition transitioned from one status to another. +Optional. |
-initializeBackup + reason -bool +string |
- InitializeBackup specifies whether to take an initial placeholder backup -as part of preparing tablets to begin replication. This only takes effect -if a backup location is defined in the VitessCluster. -Default: true. +Unique, one-word, PascalCase reason for the condition’s last transition. +Optional. |
-recoverRestartedMaster + message -bool +string |
- RecoverRestartedMaster specifies whether the operator attempts to repair -replication when the master MySQL restarts in-place (due to a crash) or -its Pod gets deleted and recreated, causing the Pod IP to change. -Default: true. +Human-readable message indicating details about last transition. +Optional. |
string
alias)+
VitessShardConditionType is a valid value for the key of a VitessShardCondition map where the key is a +VitessShardConditionType and the value is a VitessShardCondition.
+ +-
VitessShard represents a group of Vitess instances (tablets) that store a subset -of the data in a logical database (keyspace).
-The tablets belonging to one VitessShard can ultimately be deployed across -various VitessCells. All the tablets in a given shard, across all cells, -use MySQL replication to stay eventually consistent with the MySQL master -for that shard.
+(Appears on: +VitessShard) + ++
VitessShardSpec defines the desired state of a VitessShard.
-metadata - - -Kubernetes meta/v1.ObjectMeta - - - |
-
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
- |
-||||||||||||||||
-spec - - -VitessShardSpec - - - |
-
- - -
|
-||||||||||||||||
-status - - -VitessShardStatus - - - |
-- | -
(Appears on: -VitessShardStatus) +VitessShard)
-
VitessShardCondition contains details for the current condition of this VitessShard.
+VitessShardStatus defines the observed state of a VitessShard.
-status + observedGeneration + +int64 + + |
+
+ The generation observed by the controller. + |
+
+tablets + + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessTabletStatus + + + |
+
+ Tablets is a summary of the status of all desired tablets in the shard. + |
+
+orphanedTablets + + +map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.OrphanStatus + + + |
+
+ OrphanedTablets is a list of unwanted tablets that could not be turned down. + |
+
+cells + +[]string + + |
+
+ Cells is a list of cells in which any tablets for this shard are deployed. + |
+
+vitessOrchestrator + + +VitessOrchestratorStatus + + + |
+
+ VitessOrchestrator is a summary of the status of the vtorc deployment. + |
+
+hasMaster Kubernetes core/v1.ConditionStatus @@ -6054,64 +7633,122 @@ Kubernetes core/v1.ConditionStatus |
- Status is the status of the condition. -Can be True, False, Unknown. +HasMaster is a condition indicating whether the Vitess topology +reflects a master for this shard. |
-lastTransitionTime + hasInitialBackup - -Kubernetes meta/v1.Time + +Kubernetes core/v1.ConditionStatus |
- Last time the condition transitioned from one status to another. -Optional. +HasInitialBackup is a condition indicating whether the initial backup +has been seeded for the shard. |
-reason + servingWrites -string + +Kubernetes core/v1.ConditionStatus + |
- Unique, one-word, PascalCase reason for the condition’s last transition. -Optional. +ServingWrites is a condition indicating whether this shard is the one +that serves writes for its key range, according to Vitess topology. +A shard might be deployed without serving writes if, for example, it is +the target of a resharding operation that is still in progress. + |
+
+idle + + +Kubernetes core/v1.ConditionStatus + + + |
+
+ Idle is a condition indicating whether the shard can be turned down. +If Idle is True, the shard is not part of the active shard set +(partitioning) for any tablet type in any cell, so it should be safe +to turn down the shard. + |
+
+conditions + + +map[planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessShardConditionType]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessShardCondition + + + |
+
+ Conditions is a map of all VitessShard specific conditions we want to set and monitor. +It’s ok for multiple controllers to add conditions here, and those conditions will be preserved. |
-message + masterAlias string |
- Human-readable message indicating details about last transition. -Optional. +MasterAlias is the tablet alias of the master according to the global +shard record. This could be empty either because there is no master, +or because the shard record could not be read. Check the HasMaster +condition whenever the distinction is important. + |
+
+backupLocations + + +[]ShardBackupLocationStatus + + + |
+
+ BackupLocations reports information about the backups for this shard in +each backup location. + |
+
+lowestPodGeneration + +int64 + + |
+
+ LowestPodGeneration is the oldest VitessShard object generation seen across +all child Pods. The tablet information in VitessShard status is guaranteed to be +at least as up-to-date as this VitessShard generation. Changes made in +subsequent generations that affect tablets may not be reflected in status yet. |
string
alias)-
VitessShardConditionType is a valid value for the key of a VitessShardCondition map where the key is a -VitessShardConditionType and the value is a VitessShardCondition.
- -(Appears on: -VitessShard) +VitessShardTemplate)
-
VitessShardSpec defines the desired state of a VitessShard.
+VitessShardTabletPool defines a pool of tablets with a similar purpose.
-VitessShardTemplate + cell - -VitessShardTemplate +string + + |
+
+ Cell is the name of the Vitess cell in which to deploy this pool. + |
+
+type + + +VitessTabletPoolType |
-
-(Members of VitessShardTemplate contains the user-specified parts of VitessShardSpec. -These are the parts that are configurable inside VitessCluster. -The rest of the fields below are filled in by the parent controller. +Type is the type of tablet contained in this tablet pool. +The allowed types are: +
|
+
+name + +string + + |
+
+ Name is the pool’s unique name within the (cell,type) pair. +This field is optional, and defaults to an empty. +Assigning different names to this field enables the existence of multiple pools with a specific tablet type in a given cell, +which can be beneficial for unmanaged tablets. +Hence, you must specify ExternalDatastore when assigning a name to this field. + |
+
+replicas + +int32 + + |
+
+ Replicas is the number of tablets to deploy in this pool. +This field is required, although it may be set to 0, +which will scale the pool down to 0 tablets. + |
+
+dataVolumeClaimTemplate + + +Kubernetes core/v1.PersistentVolumeClaimSpec + + + |
+
+ DataVolumeClaimTemplate configures the PersistentVolumeClaims that will be created +for each tablet to store its database files. +This field is required for local MySQL, but should be omitted in the case of externally +managed MySQL. +IMPORTANT: For a tablet pool in a Kubernetes cluster that spans multiple
+zones, you should ensure that |
+
+backupLocationName + +string + + |
+
+ BackupLocationName is the name of the backup location to use for this +tablet pool. It must match the name of one of the backup locations +defined in the VitessCluster. +Default: Use the backup location whose name is empty. + |
+
+vttablet + + +VttabletSpec + + + |
+
+ Vttablet configures the vttablet server within each tablet. |
-name + mysqld -string + +MysqldSpec + |
- Name is the shard name as it’s known to Vitess. +Mysqld configures a local MySQL running inside each tablet Pod. +You must specify either Mysqld or ExternalDatastore, but not both. |
-databaseName + mysqldExporter -string + +MysqldExporterSpec + |
- DatabaseName is the name to use for the underlying MySQL database. -It is inherited from the parent keyspace, so it can only be configured at -the keyspace level. +MysqldExporter configures a MySQL exporter running inside each tablet Pod. |
-zoneMap + externalDatastore -map[string]string + +ExternalDatastore + |
- ZoneMap is a map from Vitess cell name to zone (failure domain) name -for all cells defined in the VitessCluster. +ExternalDatastore provides information for an externally managed MySQL. +You must specify either Mysqld or ExternalDatastore, but not both. |
-images + affinity - -VitessKeyspaceImages + +Kubernetes core/v1.Affinity |
- Images are not customizable by users at the shard level because version -skew across the shard is discouraged except during rolling updates, -in which case this field is automatically managed by the VitessKeyspace -controller that owns this VitessShard. +Affinity allows you to set rules that constrain the scheduling of +your vttablet pods. Affinity rules will affect all underlying +tablets in the specified tablet pool the same way. WARNING: These affinity rules +will override all default affinities that we set; in turn, we can’t guarantee +optimal scheduling of your pods if you choose to set this field. |
-imagePullPolicies + annotations - -VitessImagePullPolicies - +map[string]string |
- ImagePullPolicies are inherited from the VitessCluster spec. +Annotations can optionally be used to attach custom annotations to Pods +created for this component. |
-imagePullSecrets + extraLabels - -[]Kubernetes core/v1.LocalObjectReference - +map[string]string |
- ImagePullSecrets are inherited from the VitessCluster spec. +ExtraLabels can optionally be used to attach custom labels to Pods +created for this component. |
-keyRange + extraEnv - -VitessKeyRange + +[]Kubernetes core/v1.EnvVar |
- KeyRange is the range of keyspace IDs served by this shard. +ExtraEnv can optionally be used to override default environment variables +set by the operator, or pass additional environment variables. +These values are applied to both the vttablet and mysqld containers. |
-globalLockserver + extraVolumes - -VitessLockserverParams + +[]Kubernetes core/v1.Volume |
- GlobalLockserver are the params to connect to the global lockserver. +ExtraVolumes can optionally be used to override default Pod volumes +defined by the operator, or provide additional volumes to the Pod. +Note that when adding a new volume, you should usually also add a +volumeMount to specify where in each container’s filesystem the volume +should be mounted. +These volumes are available to be mounted by both vttablet and mysqld. |
-backupLocations + extraVolumeMounts - -[]VitessBackupLocation + +[]Kubernetes core/v1.VolumeMount |
- BackupLocations are the backup locations defined in the VitessCluster. +ExtraVolumeMounts can optionally be used to override default Pod +volumeMounts defined by the operator, or specify additional mounts. +Typically, these are used to mount volumes defined through extraVolumes. +These values are applied to both the vttablet and mysqld containers. |
-backupEngine + initContainers - -VitessBackupEngine + +[]Kubernetes core/v1.Container |
- BackupEngine specifies the Vitess backup engine to use, either “builtin” or “xtrabackup”. +InitContainers can optionally be used to supply extra init containers +that will be run to completion one after another before any app containers are started. |
-extraVitessFlags + sidecarContainers -map[string]string + +[]Kubernetes core/v1.Container + |
- ExtraVitessFlags is inherited from the parent’s VitessClusterSpec. +SidecarContainers can optionally be used to supply extra containers +that run alongside the main containers. |
-topologyReconciliation + tolerations - -TopoReconcileConfig + +[]Kubernetes core/v1.Toleration |
- TopologyReconciliation is inherited from the parent’s VitessClusterSpec. +Tolerations allow you to schedule pods onto nodes with matching taints. |
-updateStrategy + topologySpreadConstraints - -VitessClusterUpdateStrategy + +[]Kubernetes core/v1.TopologySpreadConstraint |
- UpdateStrategy is inherited from the parent’s VitessClusterSpec. +TopologySpreadConstraint can optionally be used to +specify how to spread vttablet pods among the given topology |
(Appears on: -VitessShard) +VitessKeyspaceEqualPartitioning, +VitessKeyspaceKeyRangeShard, +VitessShardSpec)
-
VitessShardStatus defines the observed state of a VitessShard.
+VitessShardTemplate contains only the user-specified parts of a VitessShard object.
-observedGeneration + tabletPools -int64 + +[]VitessShardTabletPool + |
- The generation observed by the controller. +TabletPools specify groups of tablets in a given cell with a certain +tablet type and a shared configuration template. +There must be at most one pool in this list for each (cell,type,name) set. +Each shard must have at least one “replica” pool (in at least one cell) +in order to be able to serve. |
-tablets + databaseInitScriptSecret - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessTabletStatus + +SecretSource |
- Tablets is a summary of the status of all desired tablets in the shard. +DatabaseInitScriptSecret specifies the init_db.sql script file to use for this shard. +This SQL script file is executed immediately after bootstrapping an empty database +to set up initial tables and other MySQL-level entities needed by Vitess. |
-orphanedTablets + replication - -map[string]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.OrphanStatus + +VitessReplicationSpec |
- OrphanedTablets is a list of unwanted tablets that could not be turned down. +Replication configures Vitess replication settings for the shard. |
-cells + annotations -[]string +map[string]string |
- Cells is a list of cells in which any tablets for this shard are deployed. +Annotations can optionally be used to attach custom annotations to the VitessShard object. |
string
alias)+(Appears on: +VitessShardTabletPool) +
++
VitessTabletPoolType represents the tablet types for which it makes sense +to deploy a dedicated pool. Tablet types that indicate temporary or +transient states are not valid pool types.
+ ++(Appears on: +VitessShardStatus) +
++
VitessTabletStatus is the status of one tablet in a shard.
+ +
-hasMaster - - -Kubernetes core/v1.ConditionStatus - - - |
-
- HasMaster is a condition indicating whether the Vitess topology -reflects a master for this shard. - |
+Field | +Description |
---|---|---|---|
-hasInitialBackup + poolType - -Kubernetes core/v1.ConditionStatus - +string |
- HasInitialBackup is a condition indicating whether the initial backup -has been seeded for the shard. +PoolType is the target tablet type for the tablet pool. |
||
-servingWrites + index - -Kubernetes core/v1.ConditionStatus - +int32 |
- ServingWrites is a condition indicating whether this shard is the one -that serves writes for its key range, according to Vitess topology. -A shard might be deployed without serving writes if, for example, it is -the target of a resharding operation that is still in progress. +Index is the tablet’s index within its tablet pool. |
||
-idle + running Kubernetes core/v1.ConditionStatus @@ -6427,245 +8189,203 @@ Kubernetes core/v1.ConditionStatus |
- Idle is a condition indicating whether the shard can be turned down. -If Idle is True, the shard is not part of the active shard set -(partitioning) for any tablet type in any cell, so it should be safe -to turn down the shard. +Running indicates whether the vttablet Pod is running. |
||
-conditions + ready - -map[planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessShardConditionType]planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.VitessShardCondition + +Kubernetes core/v1.ConditionStatus |
- Conditions is a map of all VitessShard specific conditions we want to set and monitor. -It’s ok for multiple controllers to add conditions here, and those conditions will be preserved. - |
-||
-masterAlias - -string - - |
-
- MasterAlias is the tablet alias of the master according to the global -shard record. This could be empty either because there is no master, -or because the shard record could not be read. Check the HasMaster -condition whenever the distinction is important. +Ready indicates whether the vttablet Pod is passing health checks, +meaning it’s ready to serve queries. |
||
-backupLocations + available - -[]*planetscale.dev/vitess-operator/pkg/apis/planetscale/v2.ShardBackupLocationStatus + +Kubernetes core/v1.ConditionStatus |
- BackupLocations reports information about the backups for this shard in -each backup location. - |
-||
-lowestPodGeneration - -int64 - - |
-
- LowestPodGeneration is the oldest VitessShard object generation seen across -all child Pods. The tablet information in VitessShard status is guaranteed to be -at least as up-to-date as this VitessShard generation. Changes made in -subsequent generations that affect tablets may not be reflected in status yet. +Available indicates whether the vttablet Pod has been consistently Ready +for long enough to be considered stable. |
-(Appears on: -VitessShardTemplate) -
--
VitessShardTabletPool defines a pool of tablets with a similar purpose.
- -Field | -Description | -
---|---|
-cell + dataVolumeBound -string + +Kubernetes core/v1.ConditionStatus + |
- Cell is the name of the Vitess cell in which to deploy this pool. +DataVolumeBound indicates whether the main PersistentVolumeClaim has been +matched up with a PersistentVolume and bound to it. |
-type + type - -VitessTabletPoolType - +string |
- Type is the type of tablet contained in this tablet pool. -The allowed types are “replica” for master-eligible replicas that serve -transactional (OLTP) workloads; and “rdonly” for master-ineligible replicas -(can never be promoted to master) that serve batch/analytical (OLAP) workloads. +Type is the observed tablet type as reflected in topology. |
-replicas + pendingChanges -int32 +string |
- Replicas is the number of tablets to deploy in this pool. -This field is required, although it may be set to 0, -which will scale the pool down to 0 tablets. +PendingChanges describes changes to the tablet Pod that will be applied +the next time a rolling update allows. |
+(Appears on: +VitessClusterSpec) +
++
VtAdminSpec specifies deployment parameters for vtadmin.
+ +Field | +Description | +
---|---|
-dataVolumeClaimTemplate + rbac - -Kubernetes core/v1.PersistentVolumeClaimSpec + +SecretSource |
- DataVolumeClaimTemplate configures the PersistentVolumeClaims that will be created -for each tablet to store its database files. -This field is required for local MySQL, but should be omitted in the case of externally -managed MySQL. -IMPORTANT: If your Kubernetes cluster is multi-zone, you must set a -storageClassName here for a StorageClass that’s configured to only -provision volumes in the same zone as this tablet pool. +Rbac contains the rbac config file for vtadmin. +If it is omitted, then it is considered to disable rbac. |
-backupLocationName + cells -string +[]string |
- BackupLocationName is the name of the backup location to use for this -tablet pool. It must match the name of one of the backup locations -defined in the VitessCluster. -Default: Use the backup location whose name is empty. +Cells is a list of cell names (as defined in the Cells list) +in which to deploy vtadmin. +Default: Deploy to all defined cells. |
-vttablet + apiAddresses - -VttabletSpec - +[]string |
- Vttablet configures the vttablet server within each tablet. +APIAddresses is a list of vtadmin api addresses +to be used by the vtadmin web for each cell +Either there should be only 1 element in the list +which is used by all the vtadmin-web deployments +or it should match the length of the Cells list |
-mysqld + replicas - -MysqldSpec - +int32 |
- Mysqld configures a local MySQL running inside each tablet Pod. -You must specify either Mysqld or ExternalDatastore, but not both. +Replicas is the number of vtadmin instances to deploy in each cell. |
-externalDatastore + webResources - -ExternalDatastore + +Kubernetes core/v1.ResourceRequirements |
- ExternalDatastore provides information for an externally managed MySQL. -You must specify either Mysqld or ExternalDatastore, but not both. +WebResources determines the compute resources reserved for each vtadmin-web replica. |
-affinity + apiResources - -Kubernetes core/v1.Affinity + +Kubernetes core/v1.ResourceRequirements |
- Affinity allows you to set rules that constrain the scheduling of -your vttablet pods. Affinity rules will affect all underlying -tablets in the specified tablet pool the same way. WARNING: These affinity rules -will override all default affinities that we set; in turn, we can’t guarantee -optimal scheduling of your pods if you choose to set this field. +APIResources determines the compute resources reserved for each vtadmin-api replica. |
-annotations + readOnly -map[string]string +bool |
- Annotations can optionally be used to attach custom annotations to Pods -created for this component. +ReadOnly specifies whether the web UI should be read-only +or should it allow users to take actions +Default: false. |
-extraLabels + extraFlags map[string]string |
- ExtraLabels can optionally be used to attach custom labels to Pods -created for this component. +ExtraFlags can optionally be used to override default flags set by the +operator, or pass additional flags to vtadmin-api. All entries must be +key-value string pairs of the form “flag”: “value”. The flag name should +not have any prefix (just “flag”, not “-flag”). To set a boolean flag, +set the string value to either “true” or “false”. |
-extraEnv + extraEnv []Kubernetes core/v1.EnvVar @@ -6674,13 +8394,12 @@ created for this component. |
ExtraEnv can optionally be used to override default environment variables -set by the operator, or pass additional environment variables. -These values are applied to the vttablet, mysqld, and mysqld-exporter containers. +set by the operator, or pass additional environment variables. |
-extraVolumes + extraVolumes []Kubernetes core/v1.Volume @@ -6692,13 +8411,12 @@ These values are applied to the vttablet, mysqld, and mysqld-exporter containers defined by the operator, or provide additional volumes to the Pod. Note that when adding a new volume, you should usually also add a volumeMount to specify where in each container’s filesystem the volume -should be mounted. -These volumes are available to be mounted by both vttablet and mysqld. +should be mounted. |
|
-extraVolumeMounts + extraVolumeMounts []Kubernetes core/v1.VolumeMount @@ -6708,13 +8426,12 @@ These volumes are available to be mounted by both vttablet and mysqld.
|
ExtraVolumeMounts can optionally be used to override default Pod volumeMounts defined by the operator, or specify additional mounts. -Typically, these are used to mount volumes defined through extraVolumes. -These values are applied to both the vttablet and mysqld containers. +Typically, these are used to mount volumes defined through extraVolumes. |
-initContainers + initContainers []Kubernetes core/v1.Container @@ -6728,7 +8445,7 @@ that will be run to completion one after another before any app containers are s | |
-sidecarContainers + sidecarContainers []Kubernetes core/v1.Container @@ -6742,115 +8459,82 @@ that run alongside the main containers. | |
-tolerations + affinity - -[]Kubernetes core/v1.Toleration + +Kubernetes core/v1.Affinity |
- Tolerations allow you to schedule pods onto nodes with matching taints. +Affinity allows you to set rules that constrain the scheduling of +your vtadmin pods. WARNING: These affinity rules will override all default affinities +that we set; in turn, we can’t guarantee optimal scheduling of your pods if you +choose to set this field. |
-(Appears on: -VitessKeyspaceEqualPartitioning, -VitessKeyspaceKeyRangeShard, -VitessShardSpec) -
--
VitessShardTemplate contains only the user-specified parts of a VitessShard object.
- -Field | -Description | -
---|---|
-tabletPools + annotations - -[]VitessShardTabletPool - +map[string]string |
- TabletPools specify groups of tablets in a given cell with a certain -tablet type and a shared configuration template. -There must be at most one pool in this list for each (cell,type) pair. -Each shard must have at least one “replica” pool (in at least one cell) -in order to be able to serve. +Annotations can optionally be used to attach custom annotations to Pods +created for this component. These will be attached to the underlying +Pods that the vtadmin Deployment creates. |
-databaseInitScriptSecret + extraLabels - -SecretSource - +map[string]string |
- DatabaseInitScriptSecret specifies the init_db.sql script file to use for this shard. -This SQL script file is executed immediately after bootstrapping an empty database -to set up initial tables and other MySQL-level entities needed by Vitess. +ExtraLabels can optionally be used to attach custom labels to Pods +created for this component. These will be attached to the underlying +Pods that the vtadmin Deployment creates. |
-replication + service - -VitessReplicationSpec + +ServiceOverrides |
- Replication configures Vitess replication settings for the shard. +Service can optionally be used to customize the vtadmin Service. |
-annotations + tolerations -map[string]string + +[]Kubernetes core/v1.Toleration + |
- Annotations can optionally be used to attach custom annotations to the VitessShard object. +Tolerations allow you to schedule pods onto nodes with matching taints. |
string
alias)-(Appears on: -VitessShardTabletPool) -
--
VitessTabletPoolType represents the tablet types for which it makes sense -to deploy a dedicated pool. Tablet types that indicate temporary or -transient states are not valid pool types.
- -(Appears on: -VitessShardStatus) +VitessClusterStatus)
-
VitessTabletStatus is the status of one tablet in a shard.
+VtadminStatus is a summary of the status of the vtadmin deployment.
-poolType - -string - - |
-
- PoolType is the target tablet type for the tablet pool. - |
-
-index - -int32 - - |
-
- Index is the tablet’s index within its tablet pool. - |
-
-running - - -Kubernetes core/v1.ConditionStatus - - - |
-
- Running indicates whether the vttablet Pod is running. - |
-
-ready - - -Kubernetes core/v1.ConditionStatus - - - |
-
- Ready indicates whether the vttablet Pod is passing health checks, -meaning it’s ready to serve queries. - |
-
-available - - -Kubernetes core/v1.ConditionStatus - - - |
-
- Available indicates whether the vttablet Pod has been consistently Ready -for long enough to be considered stable. - |
-
-dataVolumeBound + available Kubernetes core/v1.ConditionStatus @@ -6933,31 +8554,18 @@ Kubernetes core/v1.ConditionStatus |
- DataVolumeBound indicates whether the main PersistentVolumeClaim has been -matched up with a PersistentVolume and bound to it. - |
-
-type - -string - - |
-
- Type is the observed tablet type as reflected in topology. +Available indicates whether the vtadmin service has available endpoints. |
-pendingChanges + serviceName string |
- PendingChanges describes changes to the tablet Pod that will be applied -the next time a rolling update allows. +ServiceName is the name of the Service for this cluster’s vtadmin. |
-resources + resources Kubernetes core/v1.ResourceRequirements @@ -6996,7 +8604,7 @@ This field is required. | |
-extraFlags + extraFlags map[string]string @@ -7009,10 +8617,36 @@ not have any prefix (just “flag”, not “-flag”). To set a set the string value to either “true” or “false”. |
|
+lifecycle + + +Kubernetes core/v1.Lifecycle + + + |
+
+ Lifecycle can optionally be used to add container lifecycle hooks +to vttablet container + |
+
+terminationGracePeriodSeconds + +int64 + + |
+
+ TerminationGracePeriodSeconds can optionally be used to customize +terminationGracePeriodSeconds of the vttablet pod. + |
+
string
alias)string
alias)
(Appears on: ReshardingStatus) @@ -7024,3 +8658,9 @@ set the string value to either “true” or “false”.
Generated with gen-crd-api-reference-docs
.