Skip to content

Latest commit

 

History

History
318 lines (252 loc) · 24.6 KB

CHANGELOG.md

File metadata and controls

318 lines (252 loc) · 24.6 KB

Changelog

Changelog for Cass Operator, new PRs should update the main / unreleased section with entries in the order:

* [CHANGE]
* [FEATURE]
* [ENHANCEMENT]
* [BUGFIX]

unreleased

v1.11.0

  • [CHANGE] #183 Move from PodDisruptionBudget v1beta1 to v1 (changes min. required Kubernetes version to 1.21)
  • [ENHANCEMENT] #325 Enable static checking (golangci-lint) in the repository and fix all the found issues.
  • [ENHANCEMENT] #292 Update to Go 1.17 with updates to dependencies: Kube 1.23.4 and controller-runtime 0.11.1

v1.10.4

  • [CHANGE] #264 Generate PodTemplateSpec in CassandraDatacenter with metadata
  • [BUGFIX] #313 Remove Cassandra 4.0.x regexp restriction, allow 4.x.x
  • [BUGFIX] #322 Add missing requeue if decommissioned pods haven't been removed yet
  • [BUGFIX] #315 Validate podnames in the ReplaceNodes before moving them to NodeReplacements

v1.10.3

  • [FEATURE] #309 If StatefulSets are modified in a way that they can't be updated directly, recreate them with new specs
  • [ENHANCEMENT] #312 Integration tests now output CassandraDatacenter and CassandraTask CRD outputs to build directory
  • [BUGFIX] #298 EndpointState has incorrect json key
  • [BUGFIX] #304 Hostname lookups on Cassandra pods fail
  • [BUGFIX] #311 Fix cleanup retry reconcile bug

v1.10.2

Bundle tag only, no changes.

v1.10.1

  • [BUGFIX] #278 ImageRegistry json key was incorrect in the definition type. Fixed from "imageRegistryOverride" to "imageRegistry"

v1.10.0

  • [CHANGE] #271 Admission webhook's FailPolicy is set to Fail instead of Ignored
  • [FEATURE] #243 Task scheduler support to allow creating tasks that run for each pod in the cluster. The tasks have their own reconciliation process and lifecycle distinct from CassandraDatacenter as well as their own API package.
  • [ENHANCEMENT] #235 Adding AdditionalLabels to add on all resources managed by the operator
  • [ENHANCEMENT] #244 Add ability to skip Cassandra user creation
  • [ENHANCEMENT] #257 Add management-api client method to list schema versions
  • [ENHANCEMENT] #125 On delete, allow decommission of the datacenter if running in multi-datacenter cluster and cassandra.datastax.com/decommission-on-delete annotation is set on the CassandraDatacenter
  • [BUGFIX] #272 Strip password (if it has one) from CreateRole
  • [BUGFIX] #254 Safely set annotation on datacenter in config secret
  • [BUGFIX] #261 State of decommission can't be detected correctly if the RPC address is removed from endpoint state during decommission, but before it's finalized.

v1.9.0

  • [CHANGE] #202 Support fetching FeatureSet from management-api if available. Return RequestError with StatusCode when endpoint has bad status.
  • [CHANGE] #213 Integration tests in Github Actions are now reusable across different workflows
  • [CHANGE] Prevent instant requeues, every requeue must wait at least 500ms.
  • [FEATURE] #193 Add new Management API endpoints to HTTP Helper: GetKeyspaceReplication, ListTables, CreateTable
  • [FEATURE] #175 Add FQL reconciliation via parseFQLFromConfig and SetFullQueryLogging called from ReconcileAllRacks. CallIsFullQueryLogEnabledEndpoint and CallSetFullQueryLog functions to httphelper.
  • [FEATURE] #233 Allow overriding default Cassandra and DSE repositories and give versions a default suffix
  • [ENHANCEMENT] #185 Add more app.kubernetes.io labels to all the managed resources
  • [ENHANCEMENT] #233 Simplify rebuilding the UBI images if vulnerability is found in the base images
  • [ENHANCEMENT] #221 Improve bundle creation to be compatible with Red Hat's certified bundle rules
  • [BUGFIX] #185 introduced a regression which caused labels to be updated in StatefulSet when updating a version. Keep the original as these are not allowed to be modified.
  • [BUGFIX] #222 There were still occasions where clusterName was not an allowed value, cleaning them before creating StatefulSet
  • [BUGFIX] #186 Run cleanups in the background once per pod and poll its state instead of looping endlessly

v1.8.0

  • [CHANGE] #178 If clusterName includes characters not allowed in the serviceName, strip those chars from service name.
  • [CHANGE] #108 Integrate Fossa component/license scanning
  • [CHANGE] #120 Removed Helm charts, use k8ssandra helm charts instead
  • [CHANGE] #120 Deployment model is now Kustomize in cass-operator
  • [CHANGE] #120 and #148 Package placements have been modified
  • [CHANGE] #148 Project uses kubebuilder multigroup structure
  • [CHANGE] #120 Mage has been removed and replaced with Makefile
  • [CHANGE] #120 Webhook TLS certs require new deployment model (such as with cert-manager)
  • [CHANGE] #145 SKIP_VALIDATING_WEBHOOK env variable is replaced with configuration in OperatorConfig
  • [CHANGE] #161 Additional seeds service is always created, even if no additional seeds in the spec is defined
  • [CHANGE] #163 If additional-seeds-service includes an IP address with targetRef, do not remove it
  • [ENHANCEMENT] #173 Add ListKeyspace function to httphelper
  • [ENHANCEMENT] #120 Update operator-sdk and modify the project to use newer kubebuilder v3 structure instead of v1
  • [ENHANCEMENT] #145 Operaator can be configured with configuration objects from ConfigMap
  • [ENHANCEMENT] #146 system-logger and cass-operator base is now UBI8-micro
  • [ENHANCEMENT] #180 Add Kustomize components to improve installation experience and customization options
  • [BUGFIX] #162 Affinity labels defined at rack-level should have precedence over DC-level ones
  • [BUGFIX] #120 Fix ResourceVersion conflict in CheckRackPodTemplate
  • [BUGFIX] #141 #110 Force update of HostId after pod replace process to avoid stale HostId
  • [BUGFIX] #139 Bundle creation had some bugs after #120
  • [BUGFIX] #134 Fix cluster-wide-installation to happen with Kustomize also, from config/cluster

v1.7.1

  • [BUGFIX] #103 Fix upgrade of StatefulSet, do not change service name

v1.7.0

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

v1.6.0

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:

v1.5.1

Bug fixes:

  • Fixed reconciling logic in VMware k8s environments #361 #342
  • Retry decommission if worker nodes are too slow to start it #356

v1.5.0

Features:

  • Allow configuration of the system.log tail-er #311
  • Update Kubernetes support to cover 1.15 to 1.19 #296 #304
  • Specify more named ports for advanced workloads, and additional ports for ClusterIP service #289 #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
  • DSE 6.8.4 support #257
  • Add arm64 support #238
  • Support safely scaling down a datacenter, decommissioning Cassandra nodes #242 #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 #204 #206 #203 #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

v1.4.1

Features:

  • Use Cassandra 4.0-beta1 image #237
  • Update to cass-config-builder 1.0.3 #235
  • DSE 6.8.3 support #233

Bug fixes:

  • Fix for enabling DSE advanced workloads #230

v1.4.0

Features:

  • Cassandra 3.11.7 support #209
  • DSE 6.8.2 support #207
  • Configurable resource requests and limits for init and system-logger containers. #184
  • Add quietPeriod and observedGeneration to the status #190
  • Update config builder init container to 1.0.2 #193
  • Host network support #186
  • Helm chart option for cluster-scoped install #182
  • Create JKS for internode encryption #156
  • Headless ClusterIP service for additional seeds #175
  • Operator managed NodePort service #177
  • Experimental ability to run DSE advanced workloads #158
  • More validation logic in the webhook #165

Bug fixes:

  • Fix watching CassDC to not trigger on status update #212
  • Enumerate more container ports #200
  • Resuming a stopped CassDC should not use the ScalingUp condition #198
  • Idiomatic usage of the term "internode" #197
  • First-seed-in-the-DC logic should respect additionalSeeds #180
  • Use the additional seeds service in the config #189
  • Fix operator so it can watch multiple or all namespaces #173

Docs/tests:

  • Encryption documentation #196
  • Fix link to sample-cluster-sample-dc.yaml #191
  • Kong Ingress Documentation #160
  • Adding AKS storage example #164
  • Added ingress documentation and sample client application to docs #140

v1.3.0

  • Add DSE 6.8.1 support, and update to config-builder 1.0.1 #139
  • Experimental support for Cassandra Reaper running in sidecar mode #116
  • Support using RedHat universal base image containers #95
  • Provide an easy way to specify additional seeds in the CRD #136
  • Unblocking Kubernetes 1.18 support #132
  • Bump version of Management API sidecar to 0.1.5 #129
  • No need to always set LastRollingRestart status #124
  • Set controller reference after updating StatefulSets, makes sure StatefulSets are cleaned up on delete #121
  • Use the PodIP for Management API calls #112
  • Watch secrets to trigger reconciling user and password updates #109
  • Remove NodeIP from status #96
  • Add ability to specify additional Cassandra users in CassandraDatacenter #94
  • Improve validation for webhook configuration #103

v1.2.0

  • Support for several k8s versions in the helm chart #97
  • Ability to roll back a broken upgrade / configuration change #85
  • Mount root as read-only and temp dir as memory emptyvol #86
  • Fix managed-by label #84
  • Add sequence diagrams #90
  • Add PodTemplateSpec in CassDC CRD spec, which allows defining a base pod template spec #67
  • Support testing with k3d #79
  • Add logging of all events for more reliable retrieval #76
  • Update to Operator SDK v0.17.0 #78
  • Update Cassandra images to include metric-collector-for-apache-cassandra (MCAC) #81
  • Run data cleanup after scaling up a datacenter #80
  • Requeue after the last node has its node-state label set to Started during cluster creation #77
  • Remove delete verb from validating webhook #75
  • Add conditions to CassandraDatacenter status #50
  • Better support and safeguards for adding racks to a datacenter #59

v1.1.0

  • #27 Added a helm chart to ease installing.
  • #23 #37 #46 Added a validating webhook for CassandraDatacenter.
  • #43 Emit more events when reconciling a CassandraDatacenter.
  • #47 Support nodeSelector to pin database pods to labelled k8s worker nodes.
  • #22 Refactor towards less code listing pods.
  • Several integration tests added.

v1.0.0

  • Project renamed to cass-operator.
  • KO-281 Node replace added.
  • KO-310 The operator will work to revive nodes that fail readiness for over 10 minutes by deleting pods.
  • KO-317 Rolling restart added.
  • K0-83 Stop the cluster more gracefully.
  • KO-329 API version bump to v1beta1.

v0.9.0

  • KO-146 Create a secret for superuser creation if one is not provided.
  • KO-288 The operator can provision Cassandra clusters using images from https://github.com/datastax/management-api-for-apache-cassandra and the primary CRD the operator works on is a v1alpha2 cassandra.datastax.com/CassandraDatacenter
  • KO-210 Certain CassandraDatacenter inputs were not rolled out to pods during rolling upgrades of the cluster. The new process considers everything in the statefulset pod template.
  • KO-276 Greatly improved integration tests on real KIND / GKE Kubernetes clusters using Ginkgo.
  • KO-223 Watch fewer Kubernetes resources.
  • KO-232 Following best practices for assigning seed nodes during cluster start.
  • KO-92 Added a container that tails the system log.

v0.4.1

  • KO-190 Fix bug introduced in v0.4.0 that prevented scaling up or deleting datacenters.
  • KO-177 Create a headless service that includes pods that are not ready. While this is not useful for routing CQL traffic, it can be helpful for monitoring infrastructure like Prometheus that would like to attempt to collect metrics from pods even if they are unhealthy, and which can tolerate connection failure.

v0.4.0

  • KO-97 Faster cluster deployments
  • KO-123 Custom CQL super user. Clusters can now be provisioned without the publicly known super user cassandra and publicly known default password cassandra.
  • KO-42 Preliminary support for DSE upgrades
  • KO-87 Preliminary support for two-way SSL authentication to the DSE management API. At this time, the operator does not automatically create certificates.
  • KO-116 Fix pod disruption budget calculation. It was incorrectly calculated per-rack instead of per-datacenter.
  • KO-129 Provide allowMultipleNodesPerWorker parameter to enable testing on small k8s clusters.
  • KO-136 Rework how DSE images and versions are specified.

v0.3.0

  • Initial labs release.