vitess-operator

module
v0.0.0-...-5d90d19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 1, 2024 License: Apache-2.0

README

Vitess Operator

Docs

Compatibility

Vitess Operator depends on Vitess libraries and Kubernetes libraries that each support a limited range of Vitess and Kubernetes versions, respectively. These limitations mean each Vitess Operator version is only guaranteed to be compatible with certain Vitess and Kubernetes versions, as shown in this table:

Vitess Operator Version Recommended Vitess Versions Recommended Kubernetes Versions
v2.0.* v6.0.* v1.13.*, v1.14.*, or v1.15.*
v2.1.* v7.0.* v1.15.*, v1.16.*, or v1.17.*
v2.2.* v8.0.* v1.15.*, v1.16.*, or v1.17.*
v2.3.* v9.0.* v1.15.*, v1.16.*, or v1.17.*
v2.4.* v10.0.* v1.15.*, v1.16.*, or v1.17.*
v2.5.* v12.0.* v1.17.*, v1.18.*, or v1.19.*
v2.6.* v12.0.*, or v13.0.* v1.20.*, v1.21.*, or v1.22.*
v2.7.* v14.0.* v1.20.*, v1.21.*, or v1.22.*
v2.8.* v15.0.* v1.22.*, v1.23.*, or v1.24.*
v2.9.* v16.0.* v1.22.*, v1.23.*, or v1.24.*
v2.10.* v17.0.* v1.22.*, v1.23.*, v1.24.*, or v1.25.*
v2.11.* v18.0.* v1.22.*, v1.23.*, v1.24.*, or v1.25.*
v2.12.* v19.0.* v1.25.*, v1.26.*, v1.27.*, or v1.28.*
latest latest v1.25.*, v1.26.*, v1.27.*, or v1.28.*

If for some reason you must attempt to use versions outside the recommend window, we still welcome bug reports since a workaround might be possible. However, in some cases we may be unable to overcome the underlying limitations in our dependencies.

Update Schedule

Recommended versions for HEAD of Vitess Operator can change over time. However, patch releases (e.g. v2.0.*) will retain the same compatibility windows as the original release in that minor series (e.g. v2.0.0).

We plan to update HEAD of Vitess Operator to work with each new Vitess version soon after it's released. Once we're confident in the compatibility of the new pairing, we'll cut a new release of Vitess Operator while incrementing the minor version (the Y in vX.Y.Z).

Our goal for Kubernetes is for the latest Vitess Operator release to be compatible with the latest Kubernetes version that's Generally Available on all of GKE, EKS, and AKS. If we need to update our Kubernetes library dependencies to keep the target Kubernetes version in our compatibility window, we'll update HEAD of Vitess Operator and then cut a new minor release once we're confident in the new pairing.

Build

This secton describes how to build your own Vitess Operator binaries and images. See the Getting Started guides above if you just want to deploy Vitess Operator from pre-built images.

Build Docker image

From this directory, run:

make build IMAGE_NAME=your.registry/vitess/operator

Contributing

If you would like to contribute to this project, please refer to the contributing readme

Directories

Path Synopsis
cmd
pkg
apis/planetscale
Package planetscale contains planetscale API versions.
Package planetscale contains planetscale API versions.
apis/planetscale/v2
Package v2 contains API Schema definitions for the planetscale.com/v2 API group.
Package v2 contains API Schema definitions for the planetscale.com/v2 API group.
controller/vitessbackupstorage/subcontroller
Package subcontroller is a part of the VitessBackupStorage controller that runs as its own Pod, separate from the operator's main controller-manager.
Package subcontroller is a part of the VitessBackupStorage controller that runs as its own Pod, separate from the operator's main controller-manager.
operator/conditions
Package conditions has functions for working with status conditions in various Kubernetes APIs.
Package conditions has functions for working with status conditions in various Kubernetes APIs.
operator/contenthash
Package contenthash hashes the content of various objects.
Package contenthash hashes the content of various objects.
operator/desiredstatehash
Package desiredstatehash can be used to build up an annotation value that changes when certain parts of the desired state of an object change.
Package desiredstatehash can be used to build up an annotation value that changes when certain parts of the desired state of an object change.
operator/drain
Package drain defines a protocol for various agents (humans, controllers, scripts) to cooperate to avoid disruption due to planned maintenance.
Package drain defines a protocol for various agents (humans, controllers, scripts) to cooperate to avoid disruption due to planned maintenance.
operator/fork
Package fork implements a pattern for forking sub-processes as new Pods.
Package fork implements a pattern for forking sub-processes as new Pods.
operator/lazy
Package lazy can be used to define placeholders for values that will be computed later.
Package lazy can be used to define placeholders for values that will be computed later.
operator/names
Package names is used to generate and manipulate deterministic, unique names for Kubernetes objects.
Package names is used to generate and manipulate deterministic, unique names for Kubernetes objects.
operator/reconciler
Package reconciler abstracts reconciliation logic that's common for any kind of Kubernetes object.
Package reconciler abstracts reconciliation logic that's common for any kind of Kubernetes object.
operator/results
Package results has functions to work with controller-runtime reconcile.Result objects.
Package results has functions to work with controller-runtime reconcile.Result objects.
operator/resync
Package resync helps controllers specify custom resync behavior, which is important when they need to check state that lives outside the Kubernetes API server, such as in an app-specific system.
Package resync helps controllers specify custom resync behavior, which is important when they need to check state that lives outside the Kubernetes API server, such as in an app-specific system.
operator/rollout
Package rollout defines a protocol for automating the gradual rollout of changes throughout a VitessCluster by splitting rolling update logic into composable pieces: deciding what changes to make, deciding when and in what order to apply changes, and then actually applying the changes.
Package rollout defines a protocol for automating the gradual rollout of changes throughout a VitessCluster by splitting rolling update logic into composable pieces: deciding what changes to make, deciding when and in what order to apply changes, and then actually applying the changes.
operator/secrets
Secrets provides utility functions for handling secrets.
Secrets provides utility functions for handling secrets.
operator/toposerver
Package toposerver helps with connecting to Vitess topology for many clusters at the same time.
Package toposerver helps with connecting to Vitess topology for many clusters at the same time.
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL