Helm charts - Install both individual chart and umbrella chart independently

875 Views Asked by At

We have a bunch of services, say 10 in number that would deploy independently, each with its own helm chart. They are released from Azure DevOps pipeline.

Now, when setting up a new environment, Helm umbrella feels like a good way to deploy all these 10 services with just one helm upgrade --install uat all-apps -n uat-myapp-ns (release name uat) instead of each app like helm upgrade --install uat-app-1 app-1 -n uat-myapp-ns (release name uat-app-1) etc.

With that, we restructured the individual charts to sit inside the umbrella under the charts folder like so:

all-apps
├── charts
│   ├── app-1
│   │   ├── 
│   │   ├── 
│   ├── app-2
│   │   ├── 
│   │   ├── 
│   │   └── 
│   └── Chart.yaml
│   └── values.yaml

The related problem now is that each app cannot be upgraded individually.

helm upgrade --install uat-app-1 app-1 throws the error

Error: INSTALLATION FAILED: rendered manifests contain a resource that already exists. Unable to continue with install: ConfigMap "uat-app-1-env" in namespace "uat-myapp-ns" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "uat-app-1": current value is "uat"

I wouldn't want to uninstall the uat umbrella release before installing uat-app-1 release because that removes the other 9 services not upgraded.

Once in the umbrella way of doing things, does Helm need individual apps to be only applied via the umbrella?

Conditions and tags might be an option, but I thought of asking before changing all the apps over.

0

There are 0 best solutions below