Was this page helpful?
Caution
You're viewing documentation for an unstable version of ScyllaDB Operator. Switch to the latest stable version.
Install on OpenShift¶
This page walks you through installing ScyllaDB Operator and all its dependencies on Red Hat OpenShift using the Operator Lifecycle Manager (OLM) software catalog. If you are running on a generic Kubernetes distribution, see Install with GitOps or Install with Helm instead.
ScyllaDB Operator is a Red Hat OpenShift Certified Operator. It is available in the embedded software catalog and can be installed through the OpenShift web console or CLI.
Note
ScyllaDB Operator must run in the scylla-operator namespace and ScyllaDB Manager must run in the scylla-manager namespace. Using different namespaces for these components is not currently supported.
Prerequisites¶
An OpenShift Container Platform cluster meeting the infrastructure requirements.
An account with
cluster-adminpermissions.kubectlor OpenShift CLI (oc) configured to communicate with the cluster.
Tip
All kubectl commands in this guide can be executed using the OpenShift CLI (oc) instead.
Install ScyllaDB Operator¶
ScyllaDB Operator can be installed from the OpenShift software catalog using either the web console or the CLI.
This procedure follows the generic Operator installation steps outlined in the upstream documentation: Installing from the software catalog by using the web console.
Procedure
Navigate to Ecosystem → Software Catalog.
Search for ScyllaDB Operator and select the Certified version by setting the Source filter to Certified, or by verifying that the ScyllaDB Operator tile has the Certified tag.
Read the description and click Install.
In the Install Operator dialog, configure the installation:
For clusters on AWS with Security Token Service (STS): enter the Amazon Resource Name (ARN) of the AWS IAM role for your service account in the role ARN field.
Select the stable Update Channel.
Select the All namespaces on the cluster installation mode.
Select the Operator recommended installed namespace: scylla-operator.
Select the Manual update approval strategy to manually approve ScyllaDB Operator upgrades when new versions are available.
Caution
Always review the Upgrade ScyllaDB Operator guide before approving a new version.
Click Install.
In the Install Plan dialog, review the manual install plan and click Approve.
Log in to the OpenShift cluster in the terminal. Ensure that
kubectlis configured to communicate with your cluster.
This procedure follows the generic Operator installation steps outlined in the upstream documentation: Installing from the software catalog by using the CLI.
Procedure
Log in to the OpenShift cluster in the terminal. Ensure that
kubectlis configured to communicate with your cluster.Verify that the ScyllaDB Operator package is available:
kubectl get -n=openshift-marketplace packagemanifest scylladb-operator
Expected output:
NAME CATALOG AGE scylladb-operator Certified Operators 2d22h
Create the
scylla-operatornamespace:kubectl create namespace scylla-operator
Create an
OperatorGroupin thescylla-operatornamespace:kubectl apply --server-side -n=scylla-operator -f=- <<EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: scylladb-operator namespace: scylla-operator EOF
Create a
Subscriptionto install ScyllaDB Operator.Clusters on cloud providers with token-based authentication require additional fields in the
Subscriptionconfig section. Apply the appropriate manifest based on your environment:If the cluster uses AWS Security Token Service (STS), include the role ARN in the
Subscriptionmanifest:kubectl apply --server-side -n=scylla-operator -f=- <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: scylladb-operator namespace: scylla-operator spec: channel: stable installPlanApproval: Manual name: scylladb-operator source: certified-operators sourceNamespace: openshift-marketplace startingCSV: scylladb-operator.v1.21.0 config: env: - name: ROLEARN value: "<role_arn>" EOF
Replace
<role_arn>with the ARN of the AWS IAM role for your service account.kubectl apply --server-side -n=scylla-operator -f=- <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: scylladb-operator namespace: scylla-operator spec: channel: stable installPlanApproval: Manual name: scylladb-operator source: certified-operators sourceNamespace: openshift-marketplace startingCSV: scylladb-operator.v1.21.0 EOF
Locate, review, and approve the generated
InstallPlan:kubectl -n=scylla-operator get installplan -l=operators.coreos.com/scylladb-operator.scylla-operator=""
Example expected output:
NAME CSV APPROVAL APPROVED install-tw6bv scylladb-operator.v1.21.0 Manual false
Review the
InstallPlan:kubectl -n=scylla-operator describe installplan <install-plan-name>
Approve it to start the installation:
kubectl -n=scylla-operator patch installplan --type=merge -p='{"spec":{"approved":true}}' <install-plan-name>
Example expected output:
installplan.operators.coreos.com/install-tw6bv patchedWait for the
ClusterServiceVersionto reachSucceededphase:kubectl -n=scylla-operator wait --for=create --timeout=10m csv/scylladb-operator.v1.21.0 kubectl -n=scylla-operator wait --timeout=5m --for=jsonpath='{.status.phase}'=Succeeded clusterserviceversions.operators.coreos.com/scylladb-operator.v1.21.0
Expected output:
clusterserviceversion.operators.coreos.com/scylladb-operator.v1.21.0 condition met clusterserviceversion.operators.coreos.com/scylladb-operator.v1.21.0 condition met
Verify the installation¶
Wait for CRDs to propagate to all API servers:
kubectl wait --for='condition=established' --timeout=60s \
crd/scyllaclusters.scylla.scylladb.com \
crd/nodeconfigs.scylla.scylladb.com \
crd/scyllaoperatorconfigs.scylla.scylladb.com \
crd/scylladbmonitorings.scylla.scylladb.com
Expected output:
customresourcedefinition.apiextensions.k8s.io/scyllaclusters.scylla.scylladb.com condition met
customresourcedefinition.apiextensions.k8s.io/nodeconfigs.scylla.scylladb.com condition met
customresourcedefinition.apiextensions.k8s.io/scyllaoperatorconfigs.scylla.scylladb.com condition met
customresourcedefinition.apiextensions.k8s.io/scylladbmonitorings.scylla.scylladb.com condition met
Wait for ScyllaDB Operator and webhook server Deployments:
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:
deployment "scylla-operator" successfully rolled out
deployment "webhook-server" successfully rolled out
Next steps¶
Deploy ScyllaDB — choose a platform-specific reference deployment or deploy your first cluster.