Email or username:

Password:

Forgot your password?
Garrit 🏡🛠️

Everytime I work with Helm in #Kubernetes I'm reminded of why I want to stay away from Helm.

I just wasted a good hour trying to figure out why our ingress-nginx helm release wouldn't deploy a service monitor. The solution was to ugrade the chart by setting `controller.metrics.enabled` to false and then true again, which triggers a new helm reconciliation.

The whole point of Kubernetes is to match a desired state with the actual state, and then Helm comes along and breaks this behavior. FML.

5 comments
Blender Fox

@garritfra That's not the worst part.

The worst part is when you try to figure out how a specific chart works and they have broken the chart down into a million and one subcharts.

Garrit 🏡🛠️

@blenderfox and then these charts are just a reimplementation of the actual manifests. Congrats, you're now maintaining the project twice.

Blender Fox

@garritfra Yeah...

I look at some and just think... "Whyyyyyy?" 😭

dorsk

@garritfra
```
helm template my-chart helm-repo/chart-name \
-f values.yaml \
--namespace my-namespace \
--include-crds \
| yq eval 'del(.metadata.labels["helm.sh/chart"], .metadata.labels["app.kubernetes.io/managed-by"], .spec.template.metadata.labels["helm.sh/chart"])' - > manifest.yaml
```
And then kustomization.yaml to override/complete and apply.
Defeats the purpose of helm but helm started this.

Garrit 🏡🛠️

@dorsk we use Helm through Flux, which makes it nice and versionable. It's sad that this, or any other plain text CRD way, isn't the recommended way to install software through helm.