Scylla Documentation Logo Documentation
  • Server
    • Scylla Open Source
    • Scylla Enterprise
    • Scylla Alternator
  • Cloud
    • Scylla Cloud
    • Scylla Cloud Docs
  • Tools
    • Scylla Manager
    • Scylla Monitoring Stack
    • Scylla Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
Download
Menu

Caution

You are not reading the latest stable version of this documentation. If you want up-to-date information, please have a look at v1.7.

Scylla Operator Upgrade of Scylla Operator
  • Contribute
    • Report a doc issue
    • Edit this page
    • Learn how to contribute

Upgrade of Scylla Operator¶

This pages describes Scylla Operator upgrade procedures.

v1.2.0 -> v1.3.0¶

Sidecar image is going to be upgraded automatically, so a rolling restart of your Scylla clusters is expected during the upgrade procedure.

  1. Checkout source code of v1.3.0:

    git checkout v1.3.0
    
  2. Update Scylla Operator from deploy directory:

    kubectl -n scylla-operator apply -f deploy/operator
    
  3. Wait until Scylla Operator is up and running:

    kubectl wait --for condition=established crd/scyllaclusters.scylla.scylladb.com
    kubectl -n scylla-operator rollout status deployment.apps/scylla-operator
    

v1.1.0 -> v1.2.0¶

1.2.0 release brought a lot of changes to the Scylla Operator deployment process. To properly update Scylla Operator one must delete old objects and install updated ones.

Sidecar image is going to be upgraded automatically, so a rolling restart of your Scylla clusters is expected during the upgrade procedure.

  1. Checkout source code of v1.2.0:

    git checkout v1.2.0
    
  2. Remove old scylla operator namespace - in our case it’s called scylla-operator-system:

    kubectl delete namespace scylla-operator-system --wait=true
    
  3. Remove old webhooks:

    kubectl delete MutatingWebhookConfiguration scylla-operator-mutating-webhook-configuration
    kubectl delete ValidatingWebhookConfiguration scylla-operator-validating-webhook-configuration
    
  4. Install Scylla Operator from deploy directory:

    kubectl -n scylla-operator apply -f deploy/operator
    
  5. Wait until Scylla Operator is up and running:

    kubectl wait --for condition=established crd/scyllaclusters.scylla.scylladb.com
    kubectl -n scylla-operator rollout status deployment.apps/scylla-operator
    

v1.0.0 -> v1.1.0¶

During this update we will change probes and image for Scylla Operator. A new version brings an automation for upgrade of sidecar image, so a rolling restart of managed Scylla clusters is expected.

  1. Get name of StatefulSet managing Scylla Operator

    kubectl --namespace scylla-operator-system get sts --selector="control-plane=controller-manager"
    
    NAME                                 READY   AGE
    scylla-operator-controller-manager   1/1     95m
    
  2. Change probes and used container image by applying following patch:

    spec:
      template:
        spec:
          containers:
          - name: manager
            image: docker.io/scylladb/scylla-operator:1.1.0
            livenessProbe:
              httpGet:
                path: /healthz
                port: 8080
                scheme: HTTP
            readinessProbe:
              $retainKeys:
              - httpGet
              httpGet:
                path: /readyz
                port: 8080
                scheme: HTTP
    

    To apply above patch save it to file (operator-patch.yaml for example) and apply to Operator StatefulSet:

    kubectl -n scylla-operator-system patch sts scylla-operator-controller-manager --patch "$(cat operator-patch.yaml)"
    

v0.3.0 -> v1.0.0¶

Note: There’s an experimental migration procedure available here.

v0.3.0 used a very common name as a CRD kind (Cluster). In v1.0.0 this issue was solved by using less common kind which is easier to disambiguate. (ScyllaCluster). This change is backward incompatible, so Scylla cluster must be turned off and recreated from scratch. In case you need to preserve your data, refer to backup and restore guide.

  1. Get list of existing Scylla clusters

    kubectl -n scylla get cluster.scylla.scylladb.com
    
    NAME             AGE
    simple-cluster   30m
    
  2. Delete each one of them

    kubectl -n scylla delete cluster.scylla.scylladb.com simple-cluster
    
  3. Make sure you’re on v0.3.0 branch

    git checkout v0.3.0
    
  4. Delete existing CRD and Operator

    kubectl delete -f examples/generic/operator.yaml
    
  5. Checkout v1.0.0 version

    git checkout v1.0.0
    
  6. Install new CRD and Scylla Operator

    kubectl apply -f examples/common/operator.yaml
    
  7. Migrate your existing Scylla Cluster definition. Change apiVersion and kind from:

    apiVersion: scylla.scylladb.com/v1alpha1
    kind: Cluster
    

    to:

    apiVersion: scylla.scylladb.com/v1
    kind: ScyllaCluster
    
  8. Once your cluster definition is ready, use kubectl apply to install fresh Scylla cluster.

PREVIOUS
Node operations using Scylla Operator
NEXT
Releases
  • v1.3
    • v1.7
    • v1.6
    • v1.5
    • v1.4
    • v1.3
    • v1.2
    • v1.1
    • v1.0
    • v0.3
    • master
  • Deploying Scylla on a Kubernetes Cluster
  • Deploying Scylla on EKS
  • Deploying Scylla on GKE
  • Deploying Scylla stack using Helm Charts
  • Deploying Scylla Manager on a Kubernetes Cluster
  • Setting up Monitoring
  • Node operations using Scylla Operator
  • Upgrade of Scylla Operator
  • Releases
  • Known issues
  • Scylla Cluster CRD
  • Contributing to Scylla Operator

On this page

  • Upgrade of Scylla Operator
    • v1.2.0 -> v1.3.0
    • v1.1.0 -> v1.2.0
    • v1.0.0 -> v1.1.0
    • v0.3.0 -> v1.0.0
Logo
Docs Contact Us About Us
Mail List Icon Slack Icon
© 2022, ScyllaDB. All rights reserved.
Last updated on 19 May 2022.
Powered by Sphinx 4.4.0 & ScyllaDB Theme 1.1.1