ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Deployments
    • Cloud
    • Server
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
    • Supported Driver Versions
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Install
Search Ask AI
ScyllaDB Docs ScyllaDB Operator Install Operator Install on OpenShift

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-admin permissions.

  • kubectl or 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

  1. Navigate to Ecosystem → Software Catalog.

  2. 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.

  3. Read the description and click Install.

  4. 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.

  5. Click Install.

  6. In the Install Plan dialog, review the manual install plan and click Approve.

  7. Log in to the OpenShift cluster in the terminal. Ensure that kubectl is 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

  1. Log in to the OpenShift cluster in the terminal. Ensure that kubectl is configured to communicate with your cluster.

  2. 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
    
  3. Create the scylla-operator namespace:

    kubectl create namespace scylla-operator
    
  4. Create an OperatorGroup in the scylla-operator namespace:

    kubectl apply --server-side -n=scylla-operator -f=- <<EOF
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: scylladb-operator
      namespace: scylla-operator
    EOF
    
  5. Create a Subscription to install ScyllaDB Operator.

    Clusters on cloud providers with token-based authentication require additional fields in the Subscription config section. Apply the appropriate manifest based on your environment:

    If the cluster uses AWS Security Token Service (STS), include the role ARN in the Subscription manifest:

    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
    
  6. 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 patched
    
  7. Wait for the ClusterServiceVersion to reach Succeeded phase:

    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.

Related pages¶

  • Install with GitOps — alternative installation path using manifests (generic Kubernetes).

  • Install with Helm — alternative installation path using Helm charts.

  • Upgrade ScyllaDB Operator — version-specific upgrade steps.

Was this page helpful?

PREVIOUS
Install with Helm
NEXT
Deploy ScyllaDB
  • Create an issue
  • Edit this page

On this page

  • Install on OpenShift
    • Prerequisites
    • Install ScyllaDB Operator
      • Verify the installation
    • Next steps
    • Related pages
ScyllaDB Operator
Search Ask AI
  • master
    • master
    • v1.21
    • v1.20
    • v1.19
    • v1.18
  • Get Started
    • What Is ScyllaDB Operator?
    • ScyllaDB Concepts on Kubernetes
  • Install Operator
    • Provision infrastructure
      • Set up a GKE cluster for ScyllaDB
      • Set up an EKS cluster for ScyllaDB
      • Set up an OKE cluster for ScyllaDB
      • Set up an OpenShift cluster for ScyllaDB
    • Install with GitOps
    • Install with Helm
    • Install on OpenShift
  • Deploy ScyllaDB
    • Before you deploy
      • Set up dedicated node pools
      • Configure CPU pinning
      • Configure nodes
      • Configure ScyllaDB Operator
    • Deploy your first cluster
    • Reference deployments
      • Reference deployment: GKE
      • Reference deployment: EKS
      • Reference deployment: OKE
      • Reference deployment: OpenShift
    • Install ScyllaDB Manager
    • Set up networking
      • Configure external access
      • IPv6 networking
        • Getting started with IPv6 networking
        • Configure dual-stack networking
        • Configure IPv6-only networking
        • Migrate clusters to IPv6
        • Troubleshoot IPv6 networking issues
        • IPv6 networking concepts
    • Set up monitoring
      • Set up ScyllaDB Monitoring
      • Set up ScyllaDB Monitoring on OpenShift
      • Expose Grafana
    • Production checklist
  • Connect Your App
    • Connect via CQL
    • Alternator (DynamoDB API)
    • Discovery endpoint
  • Understand
    • Storage
    • Tuning
    • ScyllaDB Manager
    • Networking
    • ScyllaDB Monitoring overview
    • Bootstrap synchronisation
    • Automatic data cleanup
    • Sidecar and pod anatomy
    • Ignition
    • Pod disruption budgets
    • Security
    • StatefulSets and racks
  • Operate
    • Scale, add, remove racks
    • Replace nodes
    • Expand storage volumes
    • Use maintenance mode
    • Back up and restore
    • Restore from backup
    • Perform a rolling restart
    • Migrate a rack to a new node pool
    • Pass additional ScyllaDB arguments
    • Configure precomputed IO properties
  • Upgrade
    • Upgrading ScyllaDB Operator
    • Upgrading ScyllaDB clusters
  • Troubleshoot
    • Investigate pod restarts
    • Change log level on a live cluster
    • Recover from a failed node replace
    • Troubleshoot performance
    • Collect debugging information
      • Collect data with must-gather
      • must-gather contents
      • Query system tables for debugging
    • Collect core dumps
  • Reference
    • API Reference
      • scylla.scylladb.com
        • NodeConfig (scylla.scylladb.com/v1alpha1)
        • RemoteKubernetesCluster (scylla.scylladb.com/v1alpha1)
        • RemoteOwner (scylla.scylladb.com/v1alpha1)
        • ScyllaCluster (scylla.scylladb.com/v1)
        • ScyllaDBCluster (scylla.scylladb.com/v1alpha1)
        • ScyllaDBDatacenterNodesStatusReport (scylla.scylladb.com/v1alpha1)
        • ScyllaDBDatacenter (scylla.scylladb.com/v1alpha1)
        • ScyllaDBManagerClusterRegistration (scylla.scylladb.com/v1alpha1)
        • ScyllaDBManagerTask (scylla.scylladb.com/v1alpha1)
        • ScyllaDBMonitoring (scylla.scylladb.com/v1alpha1)
        • ScyllaOperatorConfig (scylla.scylladb.com/v1alpha1)
    • Feature gates
    • IPv6 configuration reference
    • Releases
    • Known issues
    • Conditions reference
    • nodetool alternatives
  • Contributing to ScyllaDB Operator
Docs Tutorials University Contact Us About Us
© 2026, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 22 May 2026.
Powered by Sphinx 9.1.0 & ScyllaDB Theme 1.9.2