-
Notifications
You must be signed in to change notification settings - Fork 27
feat(chart) : allow end users to vendor a helm-controller deployment #271
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
base: main
Are you sure you want to change the base?
Conversation
mallardduck
left a comment
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.
Overall digging the direction this is going, just a few comments with some ideas. Excited to give this a test when that is ready.
| replicas : 1 | ||
| image: | ||
| repository: rancher/helm-controller | ||
| tag: v0.16.10 |
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.
👍 - I think it makes sense for our chart default rule to essentially be the newest one. For sure that makes sense for main IMO, but release branches might get a slightly tweaked rule to pick max version?
No matter what we do as far as default version here - the RKE2/k3s users need to either: a) always disable it and use distro provided one, or b) match the version deployed to their exact k8s version based on the rke2/k3s release page.
That in mind, I wonder if it makes sense for us to follow similar versions that RKE2/k3s uses when targeting Rancher Minor versions? I.e. use the version that RKE2/k3s ship for the supported k8s ranges to inform our general defaults (for all k8s distros)?
So for example, Rancher 2.9 (even if we don't port this there it's a good example):
- k8s range: 1.27-1.30
- Highest helm-controller:
Technically if we go with 0.16 like k8s 1.30 that's the most updated we can be, but the flip side is that for older k8s versions the 0.16 branch is untested and may not work well. 🤔
I could be over thinking this aspect, but maybe it's worth looking over helm-controller changelog to see if this is relevant. I'll follow up on that later.
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.
I think to resolve which tag to use by default :
- we could tweak build.yaml to inject specific tags of helm-controller when we construct the chart values.yaml
- generally keep the helm-controller tags in line with rke/k3s k8sdistro for generic k8s distros / rancher versions
- define a renovate rule to update that yaml tag automatically if it doesn't exist already (perhaps cross-team so that when it updates k3s/rke2 with the matching helm-controller tag, we also get that tag in our build.yaml)
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.
I guess it looks like the divide of 0.16 and 0.15 is mainly about Wrangler V2 bump. 🤔 Maybe it's cool to just use that on all versions. Not sure the implications of using different wrangler version here versus in the Rancher Minor.
https://github.com/k3s-io/helm-controller/releases/tag/v0.16.0
|
|
||
| helmController: | ||
| deployment: | ||
| enabled : false |
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.
I decided to keep the enabled flag nested in helmController.deployment to make a clear distinction between
helmProjectOperator.helmController.enabled and helmController.deployment.enabled, but can always change it to be helmController.enabled
in order to scope management of promfed HelmChart CRs Signed-off-by: Alexandre Lamarre <alexandre.lamarre@suse.com>
in order to scope management of promfed HelmChart CRs Signed-off-by: Alexandre Lamarre <alexandre.lamarre@suse.com>
…vel value to control the deployment of a vendored helm-controller Signed-off-by: Alexandre Lamarre <alexandre.lamarre@suse.com>
Signed-off-by: Alexandre Lamarre <alexandre.lamarre@suse.com>
…rtupDurationSeconds Signed-off-by: Alexandre Lamarre <alexandre.lamarre@suse.com>
8774910 to
50becd9
Compare
| - --debug | ||
| - --debug-level={{ .Values.helmProjectOperator.debugLevel }} | ||
| {{- end }} | ||
| {{- if and (not .Values.helmProjectOperator.helmController.enabled) (.Values.helmController.deployment.enabled) }} |
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.
I think that for a full fix we want this line, but with or instead of and.
Since the PromFed helm-controller should be disabled if the .Values.helmController.deployment.enabled is set true. Since it will not need the PromFed compiled version of helm-controller.
f5f865e to
8da3706
Compare
For testing
|
Used to scope management of promfed HelmChart CRs to a specific helm-controller deployment.
Related Issue: Part of #148
Kept in mind to make no breaking changes to default behaviour or current values.yaml structure.
Testing Considerations
To enabled the feature:
--set helmController.deployment.enabled=true --set helmProjectOperator.helmController.enabled=falseTest Scenarios
TODO: Test Setup & Expected behaviour: 🔴 🔴🔴