-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
☂️ [Feature] Add EtcdMember resource #206
Comments
Thanks @timuthy for summarizing the issue. |
/status in-progress |
@amshuman-kr, @shreyas-s-rao and I iterated again over the approach and agreed that we find the |
#207 describes an alternative of using |
After working in the problem space we realized that the
After a discussion with @unmarshall, we think it's best to revive the idea of the However, there can also be arguments to have |
For etcd druid to do deterministic recovery/reconciliation its important that individual etcd members publish their up-to-date information. Outside gardener if etcd-druid is not used then any other external actor can be the consumer of this information providing it holistic state of all members in the etcd cluster. |
/assign |
Just mentioning few points: |
The state of each etcd member is beneficial not only for deciding the order of rolling the members during an update, but also to decide the order of rolling volumes in the case of rolling volumes (due to changes in volume size, storage class, etc). Exact details of how the statefulset can be prepared and then volumes are rolled without downtime for a multi-node etcd cluster are captured in this comment from @unmarshall -> gardener/gardener-extension-provider-aws#646 |
Feature (What you would like to be added):
A new resource
EtcdMemeber
should be added to thedruid.gardener.cloud/v1alpha1
API group.Example:
Every etcd member in a cluster should have a corresponding
EtcdMember
resource which contains the shown status information. TheEtcdMember
resource ought to be created and maintained by the backup-restore side car. Etcd-Druid may setstatus: Unkown
afterheartbeatGracePeriod
(ref).Motivation (Why is this needed?):
The original proposal intended the status information of each etcd member to be part of a
[]members
list in theetcd.status
resource. However, this will lead to update conflicts as multiple clients try to update the same resource at nearly the same time and we cannot use any adequate patch technique (SSA failed for K8s versions <= 1.21, strategic-merge not supported for CRDs) to prevent that.Subtasks
/cc @shreyas-s-rao @amshuman-kr
The text was updated successfully, but these errors were encountered: