-
Notifications
You must be signed in to change notification settings - Fork 56
Support disabling creation of etcd runtime components #1117
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
Support disabling creation of etcd runtime components #1117
Conversation
…nciled Etcd resource
As discussed in an out-of-band meeting between me, @unmarshall and @ishan16696 , we will allow the annotation to be added/removed during the lifecycle of the Etcd resource and continue having the cleanup logic to correctly handle these transitions in state. Additionally, we also add support for the etcd-component-protection webhook to allow changes on runtime components if the disable-runtime-component-creation annotation is set (in cases where user creates and manages these resource with labels that mimic components actually managed by druid). Changes have been made in 3b71c46. @unmarshall @ishan16696 PTAL. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!
@unmarshall I've added PDB, client service and peer service to runtime components in 7519be5. PTAL, thanks |
/retest |
/retest |
How to categorize this PR?
/area control-plane
/kind enhancement task
What this PR does / why we need it:
Introduce annotation
druid.gardener.cloud/disable-etcd-runtime-component-creation
for the Etcd resource to instruct druid to not create runtime components for the etcd cluster, such as pods, volumes, member leases and snapshot leases used by the pods to communicate status to druid, and RBAC resources (serviceaccount, role, rolebinding) needed by the etcd member pods to update said leases. This is useful when the operator wants to manage the runtime resources manually or when the runtime resources are not needed, but still requires the correct etcd cluster configuration to be made available.This also disables status checks, since these rely on the existence of said leases and pods to derive etcd cluster status. In the future, we will work on ways for the running members to directly communicate status with druid without the need for a k8s cluster and leases to do so.
Which issue(s) this PR fixes:
Fixes #1106
Special notes for your reviewer:
/cc @rfranzke
/invite @ishan16696
Release note: