Was this page helpful?
Caution
You're viewing documentation for an unstable version of ScyllaDB Operator. Switch to the latest stable version.
Install with Helm¶
This page walks you through installing ScyllaDB Operator and its dependencies using Helm charts. If you prefer applying raw manifests, see Install with GitOps. For Red Hat OpenShift, see Install on OpenShift.
Note
The Helm installation path supports single-datacenter deployments only. For multi-datacenter ScyllaDB clusters, use the GitOps installation path.
Warning
Helm does not support managing CustomResourceDefinition resources (helm#5871, helm#7735). Helm only creates CRDs on the first install and never updates them. You must update CRDs manually with every Operator upgrade. For this reason, the Install with GitOps path provides a more consistent experience.
Note
ScyllaDB Operator must run in the scylla-operator namespace.
Prerequisites¶
A Kubernetes cluster meeting the infrastructure requirements.
kubectlconfigured to communicate with the cluster.Helm 3+ installed.
Add the Helm chart repository¶
helm repo add scylla https://scylla-operator-charts.storage.googleapis.com/stable
helm repo update
Verify the charts are available:
helm search repo scylla
Expected output: At least three charts: scylla/scylla-operator, scylla/scylla-manager, scylla/scylla.
Install cert-manager¶
cert-manager provisions the TLS certificate for ScyllaDB Operator’s webhook server. If you already have cert-manager installed in your cluster, skip this step. If you want to provide your own webhook certificate, set webhook.createSelfSignedCertificate: false and provide webhook.certificateSecretName when installing the Operator chart.
You can install cert-manager using the bundled manifest:
kubectl apply --server-side -f=https://raw.githubusercontent.com/scylladb/scylla-operator/master/examples/third-party/cert-manager.yaml
Or follow the upstream cert-manager installation instructions.
Wait for cert-manager to become available:
kubectl wait -n=cert-manager --for='condition=ready' pod -l app=cert-manager --timeout=60s
kubectl wait -n=cert-manager --for='condition=ready' pod -l app=cainjector --timeout=60s
kubectl wait -n=cert-manager --for='condition=ready' pod -l app=webhook --timeout=60s
Install ScyllaDB Operator¶
helm install scylla-operator scylla/scylla-operator \
--create-namespace \
--namespace scylla-operator
To customize the deployment (image, resources, replicas, log level), create a values file and pass it with --values:
helm install scylla-operator scylla/scylla-operator \
--create-namespace \
--namespace scylla-operator \
--values my-operator-values.yaml
See the chart’s values.yaml for all available options.
Wait for ScyllaDB Operator to become available:
kubectl -n=scylla-operator rollout status --timeout=10m deployment.apps/scylla-operator
kubectl -n=scylla-operator rollout status --timeout=10m deployment.apps/webhook-server
Expected output: Both Deployments report successfully rolled out.
Install Prometheus Operator (optional)¶
Prometheus Operator is required only if you plan to use ScyllaDB monitoring (ScyllaDBMonitoring CRD).
If you do not need monitoring, skip this step.
kubectl apply -n=prometheus-operator --server-side -f=https://raw.githubusercontent.com/scylladb/scylla-operator/master/examples/third-party/prometheus-operator.yaml
kubectl -n=prometheus-operator rollout status --timeout=10m deployment.apps/prometheus-operator
Next steps¶
Deploy ScyllaDB — choose a platform-specific reference deployment or deploy your first cluster.
Clean up¶
To remove the Helm releases:
helm uninstall scylla -n scylla
helm uninstall scylla-manager -n scylla-manager
helm uninstall scylla-operator -n scylla-operator
Note
Helm uninstall does not remove CRDs. To fully clean up, delete the CRDs manually after uninstalling:
kubectl delete crd scyllaclusters.scylla.scylladb.com nodeconfigs.scylla.scylladb.com scyllaoperatorconfigs.scylla.scylladb.com scylladbmonitorings.scylla.scylladb.com