apache / couchdb-helm

Apache CouchDB Helm Chart
https://couchdb.apache.org/
Apache License 2.0
49 stars 64 forks source link

post-install hook job should also run post-upgrade #133

Open thndrbrrr opened 11 months ago

thndrbrrr commented 11 months ago

The post-install job in templates/job.yaml is only executed when CouchDB is installed, but not when it is upgraded. This is problematic when CouchDB is used as a subchart but not installed initially due to a dependency condition.

Version of Helm and Kubernetes:

Helm: 3.13.2 Kubernetes: 1.28.3

What happened:

Background: CouchDB is declared as a dependency in a parent chart with the condition couchdb.enabled.

When initially installing the parent chart with couchdb.enabled=false, and then later upgrading the parent chart with couchdb.enabled=true, the post-install hook job is not run, and therefore cluster setup is not completed as expected (with autoSetup.enabled=true).

Which makes sense in a way because helm install != helm upgrade, but what I'm saying is that the job should also be run when CouchDB is added as part of an upgrade.

What you expected to happen:

Since autoSetup.enabled was set to true, it should have finalized the CouchDB cluster setup.

How to reproduce it (as minimally and precisely as possible):

  1. Declare CouchDB as a subchart with a condition:
    dependencies:
    - name: couchdb
    version: 4.4.5
    repository: https://apache.github.io/couchdb-helm
    condition: couchdb.enabled
  2. Install parent chart with helm install ... --set couchdb.enabled=false.
  3. Upgrade parent chart with helm install ... --wait --set couchdb.enabled=true.

Anything else we need to know:

This is easily fixed by changing the job's annotation to

annotations:
    "helm.sh/hook": post-install,post-upgrade

Happy to provide a PR.