Scylla Operator 1.4

The Scylla team is pleased to announce the release of Scylla Operator 1.4.

Scylla Operator is an open-source project that helps Scylla Open Source and Scylla Enterprise users run Scylla on Kubernetes. The Scylla operator manages Scylla clusters deployed to Kubernetes and automates tasks related to operating a Scylla cluster, like installation, scale out and downscale, as well as rolling upgrades.

Scylla Operator 1.4 improves its performance, stability and brings new features. As with all of our releases, any API changes are backwards compatible.

API changes

  • ScyllaCluster now supports forcing a rollout with spec.forceRedeploymentReason API field. Forcing a rollout is useful for operating ScyllaClusters, e.g. to reload a new config. (#674)
  • ScyllaCluster CRD now supports the observedGeneration API concept. (#668)
  • ScyllaCluster’s status got 2 new fields that help to reliably determine a current state which was previously slightly racy. (#684)

Notable changes

  • The operator now uses Kubernetes informers and caches the same way as the native Kubernetes controllers do. This significantly reduces the number of API calls made against the Kubernetes apiserver and makes the operator react faster. Over the run of our e2e suite (about 48 minutes) we have observed 94% reduction of API calls made by the scylla cluster sidecars and 82% reduction of API calls from the controller. In normal circumstances, where most of the system is in a reconciled  state, the reduction could be even higher. (#534)
  • Scylla is now set up and operated in seedless mode, introduced in Scylla 4.3, Scylla Enterprise 2021.1 This means that no scylla node is special anymore and each of them can be replaced automatically. Previously, replacing seed nodes, always the first 2 nodes in the cluster, required manually promoting a node to become a seed node, degrading the current one and a manual replacement.  (#534, #597). More on the removal of the seed node from Scylla here: Seedless NoSQL: Getting Rid of Seed Nodes in Scylla
  • The operator now reconciles the full ScyllaCluster CR, not just a few individual fields. This allows changing all the properties and sets us up to loosen restrictions on some of the fields that are currently forbidden to be changed. (#534)
  • The operator now abides by The Three Laws of Controllers as all the native Kubernetes controllers do. (#534)
  • The operator prunes the old resources that are not required anymore. Like in the case of a scaledown where there are no excessive services left behind anymore. (#534)
  • The webhook server is now split into its own deployment for better availability, security and separation of concerns. (#534)
  • Helper containers are now scheduled in the guaranteed QoS class to allow scylla to get exclusive CPUs. (#662)

For more details checkout the GitHub release notes.

Supported Versions

  • Scylla >=4.3, Scylla Enterprise >=2021.1
  • Kubernetes >=1.19.10
  • Scylla manager >=2.2
  • Scylla monitoring >=1.0

Upgrade Instructions

Upgrading from v1.3.x doesn’t require any extra action. Depending on your deployment method, use `helm upgrade` or `kubectl apply` to update the manifests from v1.4.0 tag while substituting the released image.

Getting started with Scylla Operator

  • Scylla Operator Documentation
  • Learn how to deploy Scylla on Google Kubernetes Engine (GKE) here
  • Learn how to deploy Scylla on Amazon Elastic Kubernetes Engine (EKS) here
  • Learn how to deploy Scylla on a Kubernetes Cluster here (including MiniKube example)

Related Links

We’ll welcome your feedback! Feel free to open an issue or reach out on the #kubernetes channel in Scylla User Slack.

17 Aug 2021