-
Notifications
You must be signed in to change notification settings - Fork 53
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
cli: add microservice upgrades behind hidden flags #729
Conversation
✅ Deploy Preview for constellation-docs ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
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 the place for helm upgrades is fine for now.
The whole upgrade structure should be implemented with v2.4.
If we don't manage to get it done until then we can always hide/remove the flag for the release or think of a more user friendly solution
983da3b
to
1f5ef90
Compare
This is currently missing automatic creation of CRD and CR backups. However, to keep PRs smaller I would merge this without backups. Only merge after 2.3 release. |
6332884
to
ce73703
Compare
Looks good to me. |
Run with: constellation upgrade execute --helm. This will only upgrade the helm charts. No config is needed.
* Use strechr/testify * Extend parseCRDs test * Increase Timeout * Use correct error messages
* Add license header * Add periods to comments
* hide helm flags * expand help text * remove unnecessary comments
44a765b
to
d9d284a
Compare
Proposed change(s)
Introduce functionality to upgrade microservices in a running cluster as per update.rfc. Currently an upgrade can be triggered by running
constellation upgrade execute --helm
. This is only temporary until we restructure the upgrade command according to the RFC. I am also open to change the temporary solution.--keepValues
is disabled for cert-manager and cilium as their docs explicitly warn against using the flag. Reason being that newly introduced values are not picked up when using--keepValues
. Therefore I went with the recommended way of fetching the existing values from the cluster and merging them with the loaded values from disk.MergeMaps
will prioritize the values from the second argument, see the respective unit test. Calls toMergeMaps
should always have the cluster values in the second argument.Helm does not support updating CRDs as outlined here. There is some discussion on the topic. In the end we will have to decide how to handle CRDs on a case by case basis. We must take extra care of updating CRDs when Constellation users could rely on the installed CRDs.
CRDs updates are managed like the following:
crds
folder in order to have full control of the CRDs. We follow that approach. Constellation users will have to take care that their cert-manager installation is on the same version as Constellation's. This will be described in the docs (ticket is created).crds
folder. CRD updates have to be done manually. The current implementation is effectively runningkubectl apply -f ./crds/
on the respective folders.We may want to include an upgrade rollback command, but won't implement it now. If helm declares an update as successful, but release does not work as expected the docs will help by suggesting relevant helm-rollback commands.
Related issue
Checklist