Cass Operator release notes

The Cass Operator release notes provide information about the product's features, prerequisites, changes per release, upgrade considerations, and limitations.

The Cass Operator release notes provide information about the product's features, prerequisites, changes per release, upgrade considerations, and limitations.

Cass Operator features

Cass Operator simplifies the process of deploying and managing Apache Cassandra® or DataStax Enterprise (DSE) in a Kubernetes cluster.

Note: Cass Operator is available on its own, or packaged with K8ssandra.
  • If you want to install only the cass-operator, independent of K8ssandra, follow the kubectl commands in Getting Started with Cass Operator. This option gives you the choice of deploying supported Apache Cassandra or Datastax Enterprise (DSE) releases to your Kubernetes cluster.
  • If you want to install only the cass-operator with K8ssandra, run the following commands:
    helm repo add k8ssandra https://helm.k8ssandra.io/stable
    helm install k8ssandra k8ssandra/k8ssandra --set cassandra.enabled=false --set reaper.enabled=false --set reaper-operator.enabled=false --set stargate.enabled=false --set kube-prometheus-stack.enabled=false
  • If you want to install all the K8ssandra components, including cass-operator, Cassandra, Medusa, Reaper, and more, see the K8ssandra install topics.
Cass Operator features include:
  • Support for Apache Cassandra 3.11.7
  • Support for DSE 6.8.4
  • Support for the following Kubernetes platforms:
    • Open-source Kubernetes
    • Amazon Elastic Kubernetes Service (EKS)
    • DigitalOcean Kubernetes (DOKS)
    • Google Kubernetes Engine (GKE)
    • Microsoft Azure Kubernetes Service (AKS)
    • Pivotal Container Service (PKS)
    Tip: Kubernetes v1.18 or later is recommended, but v1.15 has been tested. For the supported manifests and examples, refer to the sample YAML file in this GitHub folder.
  • Hosted CassandraDatacenter examples. The YAML files help you get up and running quickly with Cassandra or DSE in Kubernetes. For the CassandraDatacenter details, see the examples:
  • Self orchestration for your Cassandra or DSE resources as a result of operating in Kubernetes.
  • Proper token ring initialization, with only one node bootstrapping at a time
  • Seed node management - one per rack, or three per datacenter, whichever is more
  • Server configuration integrated into the CassandraDatacenter CustomResourceDefinition (CRD)
  • Rolling reboot nodes by changing the CRD
  • Store data in a rack-safe way - one replica per cloud AZ
  • Scale racks up or down
  • Option via configuration to force rack upgrades if a pod hosted by a rack does not start
  • Replace dead/unrecoverable nodes
  • Multi DC clusters (limited to one Kubernetes namespace)

Cass Operator prerequisites

  • The kubectl CLI tool.
  • A Kubernetes cluster.
    Tip: If you're new to Kubernetes, see Create a Kubernetes cluster for a walkthrough of the steps.
    As noted above, Kubernetes v1.18 or later is recommended, but v1.15 has been tested. For sample manifest YAML, refer to this GitHub folder.
  • The ability to download Docker Hub images from within the Kubernetes cluster.
  • At least one Kubernetes worker node per Cassandra or DSE instance.

Cass Operator v1.7.1 changes

Release date: 26 May 2021

Important: Ongoing development of Cass Operator and subsequent releases have been migrated to the K8ssandra project. Head over to the GitHub k8ssandra/cass-operator repo) for more information on using Cass Operator.

For source updates in GitHub, see also the Cass Operator v1.7.1 changelog.

Changes:
  • Fix upgrade of StatefulSet, do not change service name (#103)
  • Code and documentation examples updated with /1.7.1/ paths (#106)

Cass Operator v1.7.0 changes

Release date: 07 May 2021

Important: Ongoing development of Cass Operator and subsequent releases have been migrated to the K8ssandra project. Head over to the GitHub k8ssandra/cass-operator repo) for more information on using Cass Operator.

For source updates in GitHub, see also the Cass Operator v1.7.0 changelog.

Changes:
  • GitHub repository move from https://github.com/datastax/cass-operator to https://github.com/k8ssandra/cass-operator (#1)
  • Reduce dependencies of apis/CassandraDatacenter (#8)
  • Remove Reaper sidecar integration (#12)
  • Remove internode_encryption_test (#19)
Features:
  • Provide server configuration with a secret (#13)
  • Override PodSecurityContext (#14)
  • Allow DNS lookup by pod name (#18)
  • Upgrade to Cassandra 4.0-RC1 (#27)
  • Make tolerations configurable (#28)
  • Use hostnames and DNS lookups for AdditionalSeeds (#232 in prior repo)
  • Add custom labels and annotations for services (#293 in prior repo)
Enhancements:
  • Replace system-logger with a custom built image, enabling faster shutdown (#1)
  • Add CreateKeyspace and AlterKeyspace functions to httphelper (#7)
  • Only build images once during integration tests (#16)
  • Include max_direct_memory in examples (#20)

Cass Operator v1.6.0 changes

Release date: 25 February 2021

For source updates in GitHub, see also the Cass Operator v1.6.0 changelog.

Features:
  • Upgrade to Go 1.14 #347
  • Add support for specifying additional PersistentVolumeClaims #327
  • Add support for specify rack labels #292
Bug fixes:
  • Retry decommission to prevent cluster from getting stuck in decommission state #356
  • Set explicit tag for busybox image #339
  • Incorrect volume mounts are created when adding an init container with volume mounts #309
Docs/tests:

Cass Operator v1.5.1 changes

Release date: 21 January 2021

For source updates in GitHub, see also the Cass Operator v1.5.1 changelog.

Features:
  • Fixed reconciling logic in VMware k8s environments #361 #342
  • Retry decommission if worker nodes are too slow to start it #356
  • In addition to existing support for Apache Cassandra 3.11.7, added support in Cass Operator 1.5.1 for Apache Cassandra 3.11.8 and 3.11.9, via the management-api images.
    Tip: When configuring the serverImage setting as 3.11.7, you could simply specify that string in the CassandraDatacenter spec. However, with later Cassandra 3.11.x point releases, you must fully qualify the image in the CassandraDatacenter spec. For example, you could specify one of the following:
    •   serverImage: datastax/cassandra-mgmtapi-3_11_8:v0.1.22
    •   serverImage: datastax/cassandra-mgmtapi-3_11_9:v0.1.23

    Check the DataStax Docker Hub server images for the latest build numbers (such as v0.1.23) per release.

  • Important: The management-api images that have the v0.1.22 or v0.1.23 tag are built to run Cassandra as non-root. By default, Cass Operator assumes Cassandra is run as root. For this reason, you should also specify dockerImageRunsAsCassandra: true in the CassandraDatacenter spec. When that Boolean is set to true, cass-operator adds a PodSecurityContext to explicitly configure the Cassandra pod to run as non-root user/group.

Cass Operator v1.5.0 changes

Release date: 20 November 2020

For source updates in GitHub, see also the Cass Operator v1.5.0 changelog.

Features:
  • Allow configuration of the system.log tail-er [#311]
  • Update Kubernetes support to cover 1.15 to 1.19 [#296] and #304
  • Specify more named ports for advanced workloads, and additional ports for ClusterIP service [#289 and #291]
  • Support WATCH_NAMESPACE=* to watch all namespaces [#286]
  • Support arbitrary Cassandra and DSE versions, using a regex for validation [#271]
  • Support running cassandra as a non-root cassandra user [#275]
  • Always gracefully drain Cassandra nodes before pod termination, and make terminationGracePeriodSeconds configurable [#269]
  • Add canaryUpgradeCount to support canary upgrade of a single node [#258]
  • Support merging all user customizations into the Cassandra podTemplateSpec [#263]
  • Add DSE 6.8.4 support [#257]
  • Add arm64 support [#238]
  • Support safely scaling down a datacenter, decommissioning Cassandra nodes [#242 and ##265]
  • Add support to override the default registry for all container images [#228]
  • Better helm chart support for branch / master builds on private Docker registries [#236]
  • Support for specific reconciliation logic in VMware k8s environments [#203, #204, #206, #224, #259, #288]
Bug fixes:
  • Increase default init container CPU for better startup performance [#261]
  • Re-enable the most common quiet period [#253]
  • Added label to all-pods service to narrow metrics scrape selection [#277]
Docs/tests:
  • Add test for infinite reconcile [#220]
  • Added keys from datastax/charts and updated README [#221]
  • Support integration tests with k3d v3 [#248]
  • Default to KIND for integration tests [#252]
  • Run OSS/DSE integration smoke tests in github workflow [#267]

Cass Operator changes in prior versions

See the changelog for each version:

Cass Operator limitations

  • This release of Cass Operator is compatible only with specific Cassandra and DSE docker images that are hosted in the DataStax Docker Hub repository.
  • Cass Operator supports cassandra workloads of Apache Cassandra and DSE. Cass Operator provides experimental support for DSE Advanced Workloads such as analytics, graph, and search.
  • There is no facility for multi-region Cassandra or DSE clusters. Cass Operator functions within the context of a single Kubernetes cluster, which typically also implies a single geographic region.