k8ssandra-operator

command module
v1.0.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2021 License: Apache-2.0 Imports: 28 Imported by: 0

README

K8ssandra Operator

This is the Kubernetes operator for K8ssandra.

K8ssandra is a Kubernetes-based distribution of Apache Cassandra that includes several tools and components that automate and simplify configuring, managing, and operating a Cassandra cluster.

K8ssandra includes the following components:

K8ssandra 1.x is configured, packaged, and deployed via Helm charts. Those Helm charts can be found in the k8ssandra repo.

K8ssandra 2.x will be based on the this operator.

One of the primary features of this operator is multi-cluster support which will facilitate multi-region Cassandra clusters.

Architecture

The K8ssandra operator is being developed with multi-cluster support first and foremost in mind. It can be used seamlessly in a single-cluster deployments as well.

K8sandra Operator consists of a control plane and a data plane. The control plane creates and manages object that exist only in the api server. The control plane does not deploy or manage pods.

Note: The control plane can be installed in only one cluster, i.e., the control plane cluster.

The data plane can be installed on any number of clusters. The control plane cluster can also function as the data plane.

The data plane deploys and manages pods. Moreover, the data plane may interact directly with the managed applications. For example, the operator calls the management-api to create keyspaces in Cassandra.

Diagram

In this diagram you can see a small example of a multi-cluster deployment.

Requirements

It is required to have routable pod IPs between Kubernetes clusters; however this requirement may be relaxed in the future.

If you are running in a cloud provider, you can get routable IPs by installing the Kubernetes clusters in the same VPC.

If you run multiple kind clusters locally, you will have routable pod IPs assuming that they run on the same Docker network which is normally the case. We leverage this for our multi-cluster e2e tests.

Installing the operator

See the install guide.

Contributing

For more info on getting involved with K8ssandra, please check out the k8ssandra community page.

The remainder of this section focuses on development of the operator itself.

Community

Check out the full K8ssandra docs at k8ssandra.io.

Start or join a forum discussion at forum.k8ssandra.io.

Join us on Discord here.

For anything specific to K8ssandra 1.x, please create the issue in the k8ssandra repo.

Development

See the development guide.

Dependencies

For information on the packaged dependencies of K8ssandra Operator and their licenses, check out our open source report.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
apis
config/v1beta1
Package v1 contains API Schema definitions for the config v1 API group +kubebuilder:object:generate=true +groupName=config.k8ssandra.io
Package v1 contains API Schema definitions for the config v1 API group +kubebuilder:object:generate=true +groupName=config.k8ssandra.io
k8ssandra/v1alpha1
Package v1alpha1 contains API Schema definitions for the k8ssandra.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=k8ssandra.io
Package v1alpha1 contains API Schema definitions for the k8ssandra.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=k8ssandra.io
reaper/v1alpha1
Package v1alpha1 contains API Schema definitions for the reaper v1alpha1 API group +kubebuilder:object:generate=true +groupName=reaper.k8ssandra.io
Package v1alpha1 contains API Schema definitions for the reaper v1alpha1 API group +kubebuilder:object:generate=true +groupName=reaper.k8ssandra.io
replication/v1alpha1
Package v1alpha1 contains API Schema definitions for the k8ssandra.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=replication.k8ssandra.io
Package v1alpha1 contains API Schema definitions for the k8ssandra.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=replication.k8ssandra.io
stargate/v1alpha1
Package v1alpha1 contains API Schema definitions for the k8ssandra.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=stargate.k8ssandra.io
Package v1alpha1 contains API Schema definitions for the k8ssandra.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=stargate.k8ssandra.io
controllers
pkg
test

Jump to

Keyboard shortcuts

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