-
Notifications
You must be signed in to change notification settings - Fork 48
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
How should the Helm operator handle existing Helm installations? #144
Comments
My first thought was actually option 3.
Generally yeah. But it's theoretically possible for someone to run I'm also curious what the current behavior is (I should know, I wrote it. Unfortunately, this was not really considered or tested, so I'm not sure). Since helm-operator is 1.0.0, it seems like the choice of opt-in vs opt-out is already made for us because we can't change the default functionality.
Why is this true? Could we not either hardcode this into the reconciler (perhaps with a configurable name) or make it something that gets enabled via a reconciler option? |
Based on the discussion during the community meeting, Joe mentioned these 2 points:
|
For a CR use-case this is true because the CR needs to be implemented by us manually. To be honest, thinking twice it does not make sense than to be implemented in the helm-operator-plugins itself.
Yes, but we can only be optimistic in catching user-errors. If a user asks the operator to take over releases the user is expected to not touch it anymore or need to stop the operator.
I don't think so, the behaviours can be different for Helm-only reconciles and Hybrid approaches.
@varshaprasad96 Do you mean the annotation used is configurable?
Yes, I agree. 👍 |
If a Helm operator is installed into a namespace with an already existing Helm release how should the operator handle this situation.
A) automatically reconcile and try to match the CR's state
B) failing because the operator tries to reconcile a resource which is not owned by the operator (in this case the Helm release secret)
Suggestion
Opt-in options
Label on the latest Helm release secret
operators.operatorframework.io.helm-operator-plugins.adopt-release: true
o Manually created Helm releases disable the reconciler for that resource (positive or negative depending on the use-case)
CR field on the helm-operator CR (i.e.
adoptExistingRelease
)Annotation on the helm-operator CR
- Shares the same negatives as the CR field but even more a special case on the CR
Considering
A) adopting an existing Helm release is a task done once at setup
B) running Helm upgrades manually in operator managed environments is bad practice
I prefer option 1. With that users of the library don't need to implemented the feature by themselves and can offer smooth transitions to operator managed charts.
See discussion: #116 (comment)
cc: @joelanford
The text was updated successfully, but these errors were encountered: