CAAPIM / apim-charts

Helm Charts for Layer7 API Management components.
MIT License
11 stars 48 forks source link

[charts/portal] db-upgrade jobs as hooks #106

Closed scottchc1 closed 2 years ago

scottchc1 commented 2 years ago

Description of the change move db-upgrade (and demo mysql) install into pre-install, pre-upgrade hook mysql subchart require upgrade: chart version 8.8.16 (mysql app version 8.0.27)

Benefits using hook to managed the re-creation of the db-upgrade jobs to work around immutable job limitation by helm 3. avoid manual job deletion for future helm upgrades (alleviate this issue: https://github.com/CAAPIM/apim-charts/tree/stable/charts/portal#helm-upgrade-failed-cannot-patch-db-upgrade-and-rbac-upgrade)

note: this benefit will be realized for future upgrades past v5.1, but from v5.0.x to 5.1 upgrade, the jobs still need to be manually deleted first since the jobs are not yet controlled by hooks in v5.0.x versions.

Drawbacks

Applicable issues none

Additional information mysql subchart change is required: depends on https://github.com/bitnami/charts/pull/8309 this is for the case of setupDemoDatabase = true, where the mysql container database must then also be installed early before the db-upgrade jobs run.

documentation update is required for following changed behaviour:

Checklist

scottchc1 commented 2 years ago

tried post-install hook, but helm install also waits for post-install hook completion before returning a status

scottchc1 commented 2 years ago

no we don't want additional delete policy. the jobs need to remain there after an install/upgrade because upgrade-verify (initContainer for most pods) looks for the jobs' status. ad hoc pod rescale/reroll will fail if the jobs aren't there. we only want to delete the jobs right before an upgrade, which is the default hook setting.