Skip to content

Releases: gardener/etcd-druid

v0.33.0

14 Oct 12:55

Choose a tag to compare

[github.com/gardener/etcd-druid:v0.33.0]

⚠️ Breaking Changes

  • [DEVELOPER] .ci scripts have been removed. As a consequence, GHA workflows and Dockerfile are now streamlined. by @shreyas-s-rao [#1172]
  • [DEVELOPER] make druid has been replaced by make build with the correct ldflags and args. by @shreyas-s-rao [#1172]

✨ New Features

  • [OPERATOR] Validations are added to EtcdCopyBackupsTask. by @CaptainIRS [#1155]

🐛 Bug Fixes

  • [OPERATOR] An issue causing Etcd objects to not get reconciled on Create due to a stale PartialObjectMetadata cache is now fixed. by @shafeeqes [#1188]

🏃 Others

  • [OPERATOR] Reduces the default value of etcd's --snapshot-count from 75,000 to 10,000 set by spec.etcd.snapshotCount. This will reduce memory and disk usage of etcd.
    If you rely on the previous default, then set spec.etcd.snapshotCount: 75000 to keep the old behavior. by @ishan16696 [#1166]
  • [DEVELOPER] Add make target make check-license-headers to check missing license headers. by @shreyas-s-rao [#1170]

[github.com/gardener/etcd-backup-restore:v0.39.0]

✨ New Features

  • [OPERATOR] When using S3 (or a S3-compatible) storage provider you can now configure the responseChecksumValidation and requestChecksumCalculation options via the secret file by @maboehm [#902]
  • [OPERATOR] Cluster ID is now part of the etcd member lease for operators to easily troubleshoot split-brain/split-quorum scenarios. by @CaptainIRS [#913]
  • [OPERATOR] GCS snapstore now support web identity authentication.
    To be enabled, the credentialsConfig (or serviceaccount.json) must be configured with credentials of type external_account, additionally in the same directory files projectID and token must be set respectively with the GCP project id and identity token. by @vpnachev [#908]

🏃 Others

  • [DEVELOPER] migrate CICD-Pipeline to GitHub-Actions by @ccwienk [#894]

Helm Charts

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/charts/gardener/etcd-druid:v0.33.0

Container (OCI) Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.33.0

v0.32.0

01 Sep 03:49

Choose a tag to compare

[github.com/gardener/etcd-druid:v0.32.0]

⚠️ Breaking Changes

  • [OPERATOR] Snapshot compaction resources API has been changed in incompatible way. Refer the snapshotCompactionSpec section in the document to learn more on how to configure snapshot compaction controller. by @anveshreddy18 [#1130]

📰 Noteworthy

  • [OPERATOR] EtcdStatus.Conditions slice is extended with a new condition type ConditionTypeLastSnapshotCompactionSucceeded that reports the status of last compaction activity ( compaction job / fullSnapshot ). See #1130 for more details. by @anveshreddy18 [#1130]

✨ New Features

  • [OPERATOR] Trigger full snapshot when spinning up a compaction job is unviable, in order to expedite the successive restoration efforts by etcd-backup-restore. by @anveshreddy18 [#1130]

🐛 Bug Fixes

  • [OPERATOR] Fix backup-restore TLS related CLI flags to etcd-wrapper. by @anveshreddy18 [#1133]

🏃 Others

  • [DEVELOPER] migrate CICD-Pipeline to GitHub-Actions by @ccwienk [#1135]
  • [DEVELOPER] rotate expired server credentials required for e2e tests to function by @anveshreddy18 [#1137]
  • [DEVELOPER] Convert .reuse/dep5 to REUSE.toml. by @shreyas-s-rao [#1154]
  • [OPERATOR] set stricter predicates for compaction controller : reduce unnecessary reconciliations triggered by job object. by @anveshreddy18 [#1158]

📖 Documentation

Helm Charts

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/charts/gardener/etcd-druid:v0.32.0

Container (OCI) Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.32.0

v0.31.0

09 Jul 10:56

Choose a tag to compare

[gardener/etcd-druid]

⚠️ Breaking Changes

  • [OPERATOR] The existing CLI flag reconciler-service-account was optional. Its value is a fully qualified name of the service account used by etcd-druid in the format "system:serviceaccount::". This has now been made required. If you are continuing to use the deprecated CLI fags then you must specify it. Alternatively if you have switched to using the new OperatorConfiguration then you should set "OperatorConfiguration.Webhooks.EtcdComponentProtection.ServiceAccountInfo" instead. by @unmarshall [#1090]

✨ New Features

  • [DEVELOPER] The new .spec.etcd.wrapperPort field allows to change the server port of etcd-wrapper. by @rfranzke [#1086]
  • [OPERATOR] Introduced OperatorConfiguration as a replacement to the existing etcd-druid CLI flags. The configuration gets mounted as a ConfigMap onto the etcd-druid Deployment. The existing CLI flags have been marked as deprecated. Their support will be removed after a few releases of etcd-druid. by @unmarshall [#1090]

🐛 Bug Fixes

  • [DEVELOPER] Fix incorrectly named config field in skaffold profile for e2e tests by @anveshreddy18 [#1134]
  • [DEVELOPER] An issue has been fixed which caused etcd pods not to start when port different from the default values were used. by @rfranzke [#1086]
  • [OPERATOR] Fix a bug which caused etcd-druid to fail at start up, due to a group mismatch for OperatorConfiguration in its group registration and templates. by @renormalize [#1118]
  • [USER] Fix a volume mount issue of provider Local for etcd backups by @anveshreddy18 [#1102]

🏃 Others

  • [USER] Secret controller now manages finalizer on referenced backup-restore TLS secrets. by @shreyas-s-rao [#1125]
  • [OPERATOR] replace usage of fake client library in tests with the fake client builder in test/utils directory by @Shreyas-s14 [#1120]
  • [OPERATOR] Fixes etcd-druid service template yaml to properly support operator configuration values defined in values.yaml by @unmarshall [#1132]
  • [DEVELOPER] Remove the functionality that deletes old ConfigMaps from the cluster by @anveshreddy18 [#1103]

[gardener/etcd-backup-restore]

✨ New Features

🏃 Others

[gardener/etcd-wrapper]

🏃 Others

Helm Charts

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/charts/gardener/etcd-druid/etcd-druid:v0.31.0

Container (OCI) Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.31.0

v0.30.1

26 May 08:22

Choose a tag to compare

[gardener/etcd-wrapper]

🏃 Others

Helm Charts

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/charts/gardener/etcd-druid/etcd-druid:v0.30.1

Container (OCI) Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.30.1

v0.30.0

15 May 18:04

Choose a tag to compare

[gardener/etcd-wrapper]

✨ New Features

🏃 Others

[gardener/etcd-druid]

📰 Noteworthy

✨ New Features

  • [DEVELOPER] It is now possible to run the etcd pod as root by setting .spec.runAsRoot=true in the Etcd API. by @rfranzke [#1088]

🐛 Bug Fixes

🏃 Others

  • [DEVELOPER] Remove unit test, integration test steps from PR jobs in concourse. by @shreyas-s-rao [#1056]

[gardener/etcd-backup-restore]

📰 Noteworthy

🐛 Bug Fixes

🏃 Others

Helm Charts

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/charts/gardener/etcd-druid/etcd-druid:v0.30.0

Container (OCI) Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.30.0

v0.29.1

25 Apr 06:06

Choose a tag to compare

[gardener/etcd-backup-restore]

🏃 Others

  • [OPERATOR] Support non-HA autonomous clusters by skipping creation of Kubernetes clientset.
    ⚠️ To completely prevent the creation of the Kubernetes clientSet in the non-HA etcd-backup-restore, please also set the following CLI flags to false: --enable-member-lease-renewal and --enable-snapshot-lease-renewal. by @ishan16696 [gardener/etcd-backup-restore#870]

Helm Charts

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/charts/gardener/etcd-druid/etcd-druid:v0.29.1

Docker Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.29.1

v0.29.0

14 Apr 16:04

Choose a tag to compare

[gardener/etcd-druid]

⚠️ Breaking Changes

  • [DEVELOPER] Upgraded to golang 1.24.
    Removed the need for hack/tools.go and instead using first class support for tools in go.mod.
    Please update local go version to 1.24. by @unmarshall [#1041]

📰 Noteworthy

  • [USER] compaction job metrics are now enhanced with the new label failureReason to query the reason for failure job failures. by @anveshreddy18 [#1039]

🏃 Others

  • [DEPENDENCY] Bump versions of tools used for tests and checks. by @renormalize [#1042]
  • [OPERATOR] feature operator
    Add possibility to add nodeSelector, affinity, tolerations & topologySpreadConstraints on the helm charts by @Hirostil [#1043]
  • [OPERATOR] Component containers, which do not require privilege escalations, now forbid privilege escalation explicitly. by @georgibaltiev [#1038]
  • [OPERATOR] Added CEL expression to prevent unsetting and setting of immutable fields in etcd.Spec after creation. by @Shreyas-s14 [#1053]

[gardener/etcd-wrapper]

🏃 Others

[gardener/etcd-backup-restore]

📰 Noteworthy

🏃 Others

Helm Charts

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/charts/gardener/etcd-druid/etcd-druid:v0.29.0

Docker Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.29.0

v0.28.0

17 Mar 08:09

Choose a tag to compare

[gardener/etcd-druid]

⚠️ Breaking Changes

  • [USER] The field etcd.spec.selector field is now deprecated. by @Shreyas-s14 [#995]
  • [USER] Scale subresource has been removed from Etcd resource until etcd-druid can natively support handling VPA recommendations. by @unmarshall [#988]
  • [DEVELOPER] * API import path has changed, it is now github.com/gardener/etcd-druid/api/core/v1alpha1
    • Annotation key to reconcile an Etcd cluster has been changed to druid.gardener.cloud/operation from gardener.cloud/operation by @unmarshall [#988]

📰 Noteworthy

  • [USER] etcd-druid helm charts will now be published as an OCI artifact to a public OCI registry. by @unmarshall [#988]
  • [OPERATOR] cleanup unused older configmaps with the naming format etcd-bootstrap-UID[:6] from the cluster. by @anveshreddy18 [#1014]
  • [OPERATOR] Introduces 'Etcdcustom resource validations using CEL expressions. This will be available for kubernetes clusters with version >= 1.29 only. For kubernetes clusters with version < 1.29,Etcd` CRD will not contain validations using CEL expressions. by @Shreyas-s14 [#995]
  • [DEVELOPER] It is now possible to get the CRDs as string via the go API. by @unmarshall [#988]
  • [DEVELOPER] Programatic access to the CRDs via the API is available using the api/core/crds/GetAll() function, which now accepts k8sVersion as a parameter, in order to return the correct CRD, either with CEL validations for k8s versions v1.29 and above, or without CEL validation for k8s versions below 1.29. by @Shreyas-s14 [#995]
  • [DEPENDENCY] With this PR, dependency on utilities from https://github.com/gardener/gardener has been removed. by @unmarshall [#988]

✨ New Features

  • [DEVELOPER] Change the GetAll CRD API to return a map with keys having CRD names instead of Kind. by @unmarshall [#1024]
  • [OPERATOR] EtcdCopyBackupTask introduces a new field spec.PodLabels which should be used to setup additional labels on the pod(s) that are started for etcd-copy-backup operation. by @unmarshall [#988]
  • [USER] Generated etcd-druid client is now its own go module. This go module provides access to a typed client for all custom resources introduced in the API go module. This will ensure that consumers will always have a lean dependency weight when using the client. by @unmarshall [#988]

🏃 Others

  • [DEVELOPER] Removed the unmaintained support for deployment of etcd-druid via kustomize by @unmarshall [#988]
  • [DEVELOPER] PKI resources required for helm charts are now generated on the fly when running 'make deploy*' targets.
    CRDs are no longer checked-in at 2 places. There is a single source of truth for all CRDs and that is 'etcd-druid/api/core/crds'. Prior to using 'make deploy*' targets this will be copied to 'etcd-druid/charts/crds' directory. by @unmarshall [#988]
  • [DEVELOPER] To run use skaffold via 'make deploy*' targets it is no longer required to run 'gcloud auth login' by @unmarshall [#988]
  • [DEVELOPER] It is recommended that consumers of etcd-druid should depend upon the API go module instead of the parent go-module. In go.mod your dependency should be on github.com/gardener/etcd-druid/api. by @unmarshall [#988]
  • [DEVELOPER] Added convenience make targets
    • 'clean-chart-resources' which will clean up all copied and generated resources prior to using helm charts
    • 'prepare-helm-charts' which will prepare the helm charts by copying the CRD yamls and generating the PKI resources for the webhook. by @unmarshall [#988]
  • [DEVELOPER] Samples for etcd-druid are now present at etcd-druid/samples directory by @unmarshall [#988]
  • [DEPENDENCY] Remove the direct depedency on gopkg.in/yaml.v2. by @renormalize [#1027]
  • [OPERATOR] Update alpine image version to 3.21.3. by @shreyas-s-rao [#1009]
  • [OPERATOR] Remove UseEtcdWrapper feature gate since it is now out of GA and always enabled. by @shreyas-s-rao [#999]
  • [OPERATOR] Temporarily removes CEL validations for StorageCapacity to allow users to correctly configure volume size to be at least 3 times that of etcd DB size. by @unmarshall [#1032]

📖 Documentation

  • [DEVELOPER] Added a document to describe how to use the etcd-druid helm charts by @unmarshall [#988]

[gardener/etcd-backup-restore]

🐛 Bug Fixes

🏃 Others

Helm Charts

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/charts/gardener/etcd-druid/etcd-druid:v0.28.0

Docker Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.28.0

v0.27.0

07 Feb 16:27

Choose a tag to compare

[gardener/etcd-backup-restore]

📰 Noteworthy

🏃 Others

[gardener/etcd-druid]

⚠️ Breaking Changes

  • [OPERATOR] Remove deprecated CLI flag ignore-operation-annotation. by @shreyas-s-rao [#990]
  • [USER] Remove support for deprecated annotation druid.gardener.cloud/ignore-reconciliation. by @shreyas-s-rao [#990]
  • [USER] Remove deprecated status fields ServiceName, ClusterSize, UpdatedReplicas and LastError. by @shreyas-s-rao [#990]

📰 Noteworthy

  • [USER] Introduce new Etcd status condition AllMembersUpdated. by @shreyas-s-rao [#987]
  • [DEVELOPER] Condition statuses Progressing and ConditionCheckError are now deprecated and will soon be removed, since druid conditions will be replaced by metav1.Condition in the future. by @shreyas-s-rao [#987]

🐛 Bug Fixes

  • [USER] Updation of status.observedGeneration and optional removal of the gardener.cloud/operation: reconcile annotation on the Etcd resource are now executed after the reconciliation of the Etcd status, to depict accurate state of the cluster at any given point in time. Users must wait for the status.observedGeneration field to be updated (and additionally for the removal of the gardener.cloud/operation: reconcile annotation is CLI flag enable-spec-auto-reconcile is set to false) to confirm completion of reconciliation. by @shreyas-s-rao [#996]

🏃 Others

  • [OPERATOR] The Etcd resource now allows specifying etcd client Service traffic distribution preferences via the spec.etcd.clientService.trafficDistribution field. by @ialidzhikov [#973]

📖 Documentation

[gardener/etcd-wrapper]

🏃 Others

Docker Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.27.0

v0.26.1

18 Jan 09:48

Choose a tag to compare

[gardener/etcd-druid]

🏃 Others

  • [DEPENDENCY] Temporarily downgrade k8s.io dependencies to v0.31.5. by @shreyas-s-rao [#982]

Docker Images

  • etcd-druid: europe-docker.pkg.dev/gardener-project/releases/gardener/etcd-druid:v0.26.1