Install prerequisites
This topic identifies the K8ssandra Operator install prerequisites. It then directs you to related topics that describe single- or multi-cluster installs and configuration options for the K8ssandraCluster
custom resource and Cassandra deployments.
Prerequisites
Add the K8ssandra Helm chart repo
For installs with helm, add the main K8ssandra stable Helm chart repo:
helm repo add k8ssandra https://helm.k8ssandra.io/stable
helm repo update
Additional tools
Make sure you have the following installed before going through the related install topics.
- kind
- kubectx
- yq (YAML processor)
- gnu-getopt
- kubectl and helm v3+ on your preferred OS.
Also, note that the setup-kind-multicluster.sh and create-clientconfig.sh scripts mentioned below are available in the K8ssandra Operator GitHub repo.
kind
The local install examples use kind clusters. If you have not already, install kind.
By default, kind clusters run on the same Docker network, which means we will have routable pod IPs across clusters.
kubectx
kubectx is a really handy tool when you are dealing with multiple clusters.
yq
yq is lightweight and portable command-line YAML processor.
gnu-getopt
gnu-getopt is a command-line option parsing utility.
To make sure that the command line is using the intended version on your local machine, add in your shell profile:
export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"
In our testing on Linux, we used gnu-getopt
version 2.37.3. The default downloaded version of gnu-getopt
on macOS might cause issues.
setup-kind-multicluster
The make NUM_CLUSTERS=<number> create-kind-multicluster
command, which is shown in subsequent install topics, is a reference to a Makefile
target within the k8ssandra-operator repo. The Makefile
is here. The command invokes the setup-kind-multicluster.sh script. It’s used extensively during development and testing. Not only does it configure and create kind clusters, it also generates kubeconfig
files for each cluster.
Tip: kind generates a kubeconfig
with the IP address of the API server set to localhost
because the cluster is intended for local development. We need a kubeconfig
with the IP address set to the internal address of the API server. The setup-kind-mulitcluster.sh
script takes care of this requirement for you.
create-clientconfig
create-clientconfig.sh is in the k8ssandra-operator repo. This script is used to configure access to remote clusters, as described in subsequent topics.
Next steps
After confirming you have the prerequisite software, proceed to the detailed steps for single- or multi-clusters, using your preferred tools:
Installs with helm
-
Single-cluster install of K8ssandra Operator with
helm
. -
Multi-cluster install of K8ssandra Operator with
helm
.
Installs with Kustomize
-
Single-cluster install of K8ssandra Operator with
kustomize
. -
Multi-cluster install of K8ssandra Operator with
kustomize
.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.