Releases: gardener/etcd-druid
Releases · gardener/etcd-druid
v0.8.1
[etcd-druid]
🐛 Bug Fixes
- [OPERATOR] A bug has been fixed which prevented the
ServiceAccount
'sautomountServiceAccountToken
field from being reconciled. (gardener/etcd-druid#317, @rfranzke)
v0.8.0
[etcd-druid]
⚠️ Breaking Changes
- [OPERATOR] The default leader election resource lock of
etcd-druid
has been changed fromconfigmapsleases
toleases
. (gardener/etcd-druid#281, @acumino)- Please make sure, that you had at least
[email protected]
running before upgrading so that it has successfully acquired leadership with the hybrid resource lock (configmapsleases
) at least once.
- Please make sure, that you had at least
- [OPERATOR] Using the etcd
client
service for server communication (default port2380
) has been deprecated. The port will be removed from the service in the near future. If necessary, switch to the newpeer
service instead. (gardener/etcd-druid#273, @timuthy) - [OPERATOR] The claiming logic for services has been removed from Etcd-Druid. This means that existing
service
objects cannot be adopted anymore but a new and dedicated object is created. Please check any usages for already adoptedservices
and switch to the dedicated<etcd-name>-client
service. (gardener/etcd-druid#273, @timuthy) - [DEVELOPER] Make target
install-requirements
was dropped. Instead, required 3rd party binaries are automatically installed to a local bin dir (./hack/tools/bin). (gardener/etcd-druid#261, @timuthy)
✨ New Features
- [OPERATOR] To Dynamically load Iaas credentials, added support to pass the credentials through secret mount. (gardener/etcd-druid#301, @ishan16696)
- [OPERATOR] Set File Path through Env:
<ProviderName>_APPLICATION_CREDENTIALS
(gardener/etcd-druid#301, @ishan16696) - [OPERATOR] Leader-election specifications can be configured through Etcd resource spec via
.spec.backup.leaderElection
. (gardener/etcd-druid#285, @ishan16696) - [OPERATOR] A new service (
<etcd-name>-peer
) for etcd peer communication (default port2380
) is now created by Etcd-Druid. (gardener/etcd-druid#273, @timuthy) - [OPERATOR] Etcd-Druid now creates member
Lease
objects which enables the heartbeat functionality for etcd members. Along the way a new flag--etcd-member-unknown-threshold
was introduced. It determines the duration after which a etcd member's state is consideredunknown
when the memberLease
is not renewed. (gardener/etcd-druid#262, @timuthy) - [DEVELOPER] When
--disable-etcd-serviceaccount-automount
is set totrue
then the.automountServiceAccountToken
will be set tofalse
for theServiceAccount
created for etcd. (gardener/etcd-druid#277, @rfranzke)
🐛 Bug Fixes
- [OPERATOR] The default CPU and memory limits for
etcd
andbackup-restore
containers have been removed to enable removal of limits via theEtcd
resource. (gardener/etcd-druid#312, @stoyanr) - [OPERATOR] A bug has been fixed which caused the
etcd-druid
not removing its finalizers from referenced secrets inEtcd
resources when those references changed. (gardener/etcd-druid#310, @rfranzke) - [OPERATOR] A bug has been fix which caused the Nil pointer exception in EtcdCopyBackupsTask. (gardener/etcd-druid#306, @ishan16696)
- [OPERATOR] A bug has been fixed that led to multiple update conflicts when the
etcd
resource was reconciled. (gardener/etcd-druid#263, @timuthy) - [OPERATOR] A bug has been fixed which caused the
etcd.status.clusterSize
only being set for newetcd
resources (gardener/etcd-druid#260, @timuthy)
🏃 Others
- [OPERATOR] The ETCD backup restore is now configured to support Local provider in container environment. (gardener/etcd-druid#300, @kris94)
- [OPERATOR] The Golang version which is used to build Etcd-Druid was updated to
1.17.6
. (gardener/etcd-druid#294, @timuthy) - [OPERATOR] Please be aware that Etcd-Druid needs to re-create the etcd
StatefulSet
if the etcd cluster is scaled up from1 -> x
for the first time. (gardener/etcd-druid#293, @timuthy) - [OPERATOR] The amount of active reconciliations has been limited to improve performance, CPU, memory and network consumption. (gardener/etcd-druid#276, @timuthy)
- [OPERATOR] Updated labels used in compaction job to differentiate them from etcd pods. This allows for pod scheduling policies to schedule compaction jobs on predetermined nodes (gardener/etcd-druid#270, @aaronfern)
- [OPERATOR] feature operator (gardener/etcd-druid#250, @breuerfelix)
- Deploying and maintaining the correct PodDisruptionBudget configuration according to Etcd resource status
- [DEVELOPER] The handling for 3rd party binaries (e.g.
controller-gen
), usually required for Make targets, has been improved. Instead of installing those tools to a global directory, a dedicated local directory of in the code repository is used (hack/tools/bin
). (gardener/etcd-druid#261, @timuthy)
📰 Noteworthy
- [DEVELOPER] The CA data key is now configurable under
.spec.etcd.tls.tlsCASecretRef.dataKey
. It still defaults toca.crt
if not provided. (gardener/etcd-druid#309, @rfranzke)
[etcd-backup-restore]
✨ New Features
- [OPERATOR] To Dynamically load Iaas credentials, added support to pass the credentials through file mount. (gardener/etcd-backup-restore#435, @ishan16696)
- [OPERATOR] The support to pass the credentials through environment variables will get deprecated by
etcd-backup-restore
v0.18.0 (gardener/etcd-backup-restore#435, @ishan16696) - [OPERATOR] Added the leader-election to the backup-restore. Added support to allow only backup-restore Leader to take/upload the snapshots and trigger the defragmentation. (gardener/etcd-backup-restore#353, @ishan16696)
🏃 Others
- [OPERATOR] The used Golang version was updated to
1.17
. (gardener/etcd-backup-restore#445, @timuthy) - [OPERATOR] Fixed etcd-backup-restore exiting immediately on SIGTERM without proper context cancellation (gardener/etcd-backup-restore#440, @sibucan)
- [OPERATOR] Added support for non-AWS S3-compatible providers by specifying a custom endpoint. (gardener/etcd-backup-restore#431, @sibucan)
- [OPERATOR] Failed backups won't fail the readinessProbe thus etcd is allowed to keep serving the incoming traffic. (gardener/etcd-backup-restore#411, @ishan16696)
- [OPERATOR] Added CLI flags
--backoff-multiplier
,--backoff-attempt-limit
and--backoff-threshold-time
to configure the exponential-backoff mechanism. (gardener/etcd-backup-restore#411, @ishan16696) - [OPERATOR] Upgrade the Go from v1.14 to v1.16 (gardener/etcd-backup-restore#405, @ishan16696)
v0.7.3
[etcd-backup-restore]
🐛 Bug Fixes
- [OPERATOR] Took care of a bug where contexts were created multiple times without being cancelled. This caused a significant higher memory and CPU footprint. (gardener/etcd-backup-restore#409, @aaronfern)
v0.7.2
[etcd-druid]
🏃 Others
- [OPERATOR] Updated labels used in compaction job to differentiate them from etcd pods. This allows for pod scheduling policies to schedule compaction jobs on predetermined nodes (gardener/etcd-druid#270, @aaronfern)
v0.7.1
[etcd-druid]
🐛 Bug Fixes
- [OPERATOR] A bug has been fixed that led to multiple update conflicts when the
etcd
resource was reconciled. (gardener/etcd-druid#264, @timuthy)
v0.7.0
[etcd-druid]
⚠️ Breaking Changes
- [OPERATOR] CronJob is no more used to schedule compaction job at regular interval. Instead, we are using Job. (gardener/etcd-druid#235, @abdasgupta)
- Therefore,
BackupCompactionSchedule
field is removed from ETCD backup spec, as it was only necessary for scheduling CronJob.
- Therefore,
- [DEVELOPER] The sub-module
github.com/gardener/etcd-druid/api
has been removed. Please usegithub.com/gardener/etcd-druid
instead if your module(s) depend onetcd-druid
. (gardener/etcd-druid#244, @timuthy)
✨ New Features
- [USER]
druid
will now also reconcile aserviceaccount
, arole
, and arolebinding
as part of it'setcd
reconcile flow and associate it with the etcd pod (gardener/etcd-druid#233, @aaronfern) - [OPERATOR] A new flag
--enable-backup-compation
has been introduced which globally enables automatic compaction of backups. (gardener/etcd-druid#258, @timuthy) - [OPERATOR] A new controller named lease controller has been introduced. Lease controller will be responsible for creating compaction job based on the delta event lease. (gardener/etcd-druid#235, @abdasgupta)
- For this, two new
Lease
s are introduced: One to hold the value of the latest full snapshot revision and one for the last delta revision.
- For this, two new
📖 Documentation
- [OPERATOR] The multi-node etcd proposal has been updated and now considers ephemeral volumes not being an integral part of the multi-node feature set. (gardener/etcd-druid#256, @timuthy)
🏃 Others
- [OPERATOR] It is now possible to specify owner check parameters in the Etcd resource. (gardener/etcd-druid#239, @stoyanr)
[etcd-backup-restore]
🏃 Others
- [OPERATOR] The backup-restore sidecar will now check if the owner domain name resolves to the specified owner ID and if not, take a final full snapshot and disable the cluster. (gardener/etcd-backup-restore#383, @stoyanr)
📰 Noteworthy
- [OPERATOR] Added
health
package to allow backup-restore to renew member leases to indicate member health and snapshot leases to indicate snapshots being taken successfully (gardener/etcd-backup-restore#382, @aaronfern)- Added flags to the
server
andcompact
subcommand.--enable-snapshot-lease-renewal
to enable snapshot lease renewal,--enable-member-lease-renewal
to enable member lease updates,full-snapshot-lease-name
to specify the full snapshot lease name, anddelta-snapshot-lease-name
to specify the delta snapshot lease name - Pod name and namespace has to be passed via environment variables (
POD_NAME
andPOD_NAMESPACE
) when running the server subcommand when--enable-member-lease-renewal
flag is set to true - Pod namespace needs to be passed via an environment variable (
POD_NAMESPACE
) when running the server subcommand when--enable-snapshot-lease-renewal
flag is set to true - Pod namespace needs to be passed via an environment variable (
POD_NAMESPACE
) when running the compact subcommand when--enable-snapshot-lease-renewal
flag is set to true
- Added flags to the
v0.6.0
[etcd-druid]
⚠️ Breaking Changes
- [DEVELOPER] Switch to
github.com/gardener/etcd-druid-api
if you vendor only the API of etcd-druid. (#169, @amshuman-kr)
✨ New Features
- [OPERATOR] Added support for
etcd druid
to regularly schedule backup compactions via configurable etcd specspec.backup.compactionSchedule
(#197, @aaronfern) - [OPERATOR] Various
condition
and etcdmember
checks have been added to Etcd-Druid. The results of those checks will be reflected in theetcd.status
sub-resource. (#188, @timuthy)- Conditions:
- Ready check: Checks if resource has enough
Ready
members instatus.members
to fulfill the quorum. - AllMembersReady check: Checks if all members in
status.members
areReady
. - Members:
- Ready check: Treats the
LastUpdateTime
as a heartbeat and checks if it is within the expected time range (configurable via--etcd-member-threshold
).
- [OPERATOR] A re-sync mechanism has been added for the Custodian controller. The new flag
--custodian-sync-period (default 30s)
controls the duration after which the Custodian controller re-enqueuesetcd
resources for reconciliation. This can be considered as a health check interval. (#188, @timuthy) - [OPERATOR] It is now possible to configure the count of custodian controller workers by
--custodian-workers
. (#180, @timuthy)
🐛 Bug Fixes
- [OPERATOR] The operation annotation is now removed before reconciling the
Etcd
resource. (#205, @shreyas-s-rao) - [OPERATOR] If operation annotation is to be honoured, the reconciliation predicates now match only if either operation annotation is present, or last operation didn't succeed or if the resource is undergoing deletion. No other change (if not accompanied by any of these conditions) will trigger reconciliation. (#202, @amshuman-kr)
🏃 Others
- [OPERATOR] Remove finalizers from
Etcd
resources after waiting for statefulset. (#222, @amshuman-kr) - [OPERATOR] Added a new CLI flag
--enable-compaction-tempfs
to etcd druid to enable tempfs in the compaction job volumeMount (defaults to false) (#220, @aaronfern) - [OPERATOR] Two new fields added to etcd spec,
etcdSnapshotTimeout
andetcdDefragTimeout
which configure the snapshotter timeout and defragmentation timeout respectively of etcd-backup-restore (#216, @aaronfern) - [OPERATOR] Druid now fetches
Lease
resources in order to derive the readiness state of an etcd cluster member. This serves as a preparation for the etcd multi-node feature. (#214, @timuthy) - [OPERATOR] Updated number of chunks while uploading to never exceed the cloud provider limits. (#182, @amshuman-kr)
- [OPERATOR] The reconciliation loop count of the custodian controller has been improved. Now, reconciliation only happens at relevant
create/update/delete
events. (#180, @timuthy) - [OPERATOR] Removed synchronisation before updating ETCD status. (#174, @abdasgupta)
- [OPERATOR] NONE. (#173, @timuthy)
- [DEVELOPER] A new Make target
check-generate
has been added to check if generated code and the vendor dir are up-to-date. (#177, @timuthy)
📰 Noteworthy
- [OPERATOR] A new module
github.com/gardener/etcd-druid/api
can be used to get the API definitions. (#169, @amshuman-kr)
[etcd-backup-restore]
🏃 Others
- [USER] Compaction job will now throw warning instead of error if revisions are already compacted (gardener/etcd-backup-restore#358, @shreyas-s-rao)
- [OPERATOR] Added '--etcd-snapshot-timeout' and '--etcd-defrag-timeout' CLI flags in 'server' and 'compact' subcommands (gardener/etcd-backup-restore#361, @ishan16696)
- [OPERATOR] Updated number of chunks while uploading to never exceed the cloud provider limits. (gardener/etcd-backup-restore#334, @abdasgupta)
📰 Noteworthy
- [OPERATOR] Added compaction command support to ETCD Backup Restore. Users can now use compaction sub command with
etcdbrctl
tool to compact basesnapshot and all it's subsequent deltasnapshot to one single compacted snapshot. (gardener/etcd-backup-restore#301, @abdasgupta) - [OPERATOR] Snapshots are not stored under separate prefix (Backup-XXX) in backup storage. Instead, all of the snapshots are stored under
v2
backup version prefix in a flat structure. (gardener/etcd-backup-restore#301, @abdasgupta) - [OPERATOR] Support for
v1
backup version is still there but only for restoration and snapshot garbage collection. So backup storages that hadv1
backup version and where snapshots were stored under separate prefix (Backup-XXX), can still be used with compaction sub command (as well as for restoration). However, the new snapshots will be stored underv2
backup version prefix. (gardener/etcd-backup-restore#301, @abdasgupta) - [OPERATOR] The support for the
v1
backup structure with separate prefix (Backup-XXX) will be dropped in a subsequent release. (gardener/etcd-backup-restore#301, @abdasgupta)
[etcd-custom-image]
📰 Noteworthy
- [OPERATOR] Update etcd version from v3.4.13-bootstrap to v3.4.13-bootstrap-1.
⚠️ This will cause a restart of the etcd. (gardener/etcd-custom-image@10c534e)
v0.5.2
[etcd-druid]
🏃 Others
- [OPERATOR] Updated number of chunks while uploading to never exceed the cloud provider limits. (#183, @amshuman-kr)
v0.5.1
[etcd-druid]
🏃 Others
- [OPERATOR] Removed synchronisation before updating ETCD status. (#176, @amshuman-kr)
v0.5.0
[etcd-druid]
✨ New Features
- [USER] Configure auto-compaction policy for etcd and backup sidecar's embedded etcd via Etcd resource via
.spec.sharedConfig.autoCompactionMode
and.spec.sharedConfig.autoCompactionRetention
. (#157, @ishan16696) - [OPERATOR] Etcd bootstrap script now resides in the custom etcd image instead of being mounted as a configmap. (#162, @shreyas-s-rao)
🏃 Others
- [OPERATOR] If an etcd
StatefulSet
remains pending, warning events of unboundPVC
s are now added to the.status.lastError
of theetcd
resource. This makes it easier for operators to spot potential issues. (#146, @timuthy) - [OPERATOR] Snapshot compression specification can be configured through helm-charts as well as etcd resource spec configuration file. (#138, @ishan16696)
📰 Noteworthy
- [USER] Moved parts of reconciliation for ETCD status that deals with Statefulset to a separate controller. (#133, @abdasgupta)
[etcd-backup-restore]
🏃 Others
- [USER] Added CLI flags
--auto-compaction-mode
and--auto-compaction-retention
to configure auto-compaction for embedded etcd. Default values: auto-compaction-mode="periodic" and auto-compaction-retention="30m" (gardener/etcd-backup-restore#315, @ishan16696) - [OPERATOR] Added a new metric
etcdbr_snapshotter_failure
used as a blanket metric to capture any snapshotter error. (gardener/etcd-backup-restore#326, @aaronfern) - [OPERATOR] etcdbr-compression specification can be configured through helm-charts. (gardener/etcd-backup-restore#307, @ishan16696)
- [OPERATOR] Added CLI-flags (
max-call-send-message-size
,max-request-bytes
andmax-txn-ops
) to enable restoration for delta snapshots with large amount of data (large number of events or events with large data). (gardener/etcd-backup-restore#282, @abdasgupta)
📰 Noteworthy
- [USER] Move bootstrap script out of the helm chart, as it will now be part of the
etcd-custom-image
. (gardener/etcd-backup-restore#327, @shreyas-s-rao) - [USER] Add support for snapshot compression/decompression. Compression and compression policy can be configured through flags:
--compress-snapshots
and--compression-policy
respectively. Supported compression policies currently aregzip
(default),lzw
andzlib
. Snapshot compression is disabled by default. (gardener/etcd-backup-restore#293, @ishan16696)