#helmfile (2019-08)
Questions and discussion around helmfile https://github.com/roboll/helmfile and https://github.com/cloudposse/helmfiles
Archive: https://archive.sweetops.com/helmfile/
2019-08-01
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
are you only able to pull .Environment.Values into a values.yaml.gotmpl?
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
like something like this doesnt work
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
"service.beta.kubernetes.io/aws-load-balancer-ssl-cert": {{ .Values.cert.arn }}
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
if my values: is setup like
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
values:
- ../../values/kube2iam/values.yaml.gotmpl
- ../../values/kube2iam/{{ .Environment.Name }}.values.yaml
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
values.yaml.gotmpl contains the .Values.cert.arn and environment.values.yaml has an entry like
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
cert.arn: "fdjklfsj"
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
there is no way to reference that value from another values template
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
or would i need to do some {{ readFile }} magic
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
@ag Hey! Yeah, you need readFile magic, or leverage sub-helmfiles like https://github.com/roboll/helmfile/issues/756#issuecomment-514013382
Helmfile values and chart(release) values are completely different things
Let’s gather all the tips and tricks worth included in the documentation, by linking from various questions answered in this repo.
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
@ag We’re discussing about setting values from a template rendered in a custom context(=.Values)
https://github.com/roboll/helmfile/issues/745#issuecomment-510737741
releases:
- name: myapp`
chart: my-chart
valuesFrom:
- templateFile:
path: values/values-file.yaml.gotmpl
valuesFrom:
# Instead of implicitly passing helmfile's Values to the values-file.yaml.gotmpl
# Overrides it with `releaseName: myapp`
- inlineTemplate:
releaseName: `{{.Release.Name}}` #<- you'll need {{` `}} to defer rendering until the evaluation time of inlineTemplate. otherwise this fails due to that .Release.Name isn't available at loading-time of your helmfile.yaml :)
I'd love to have the functionality of #662 but I wanted to throw my use-case in here while it's topical as what i'm suggesting is probably closer to #705. We're deploying a bunch of…
2019-08-02
![Yevhenii Demchenko avatar](https://secure.gravatar.com/avatar/5a51403268073387384097da2f6ef1d5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0013-72.png)
Hi guys, I’m having troubles with installing chart via helmfile. helfile
repositories:
- name: stable
url: <https://kubernetes-charts.storage.googleapis.com>
- name: helm
url: <utl>
username: <username>
password: <password>
helmDefaults:
tillerNamespace: kube-system
verify: true
wait: true
timeout: 600
recreatePods: true
force: true
tls: false
# The desired states of Helm releases.
#
# Helmfile runs various helm commands to converge the current state in the live cluster to the desired state defined here.
releases:
- name: consul
namespace: default
chart: helm/consul
version: 0.8.1
values:
- charts/chart-consul/values.yaml
I’m getting an error Error: failed to download "helm/consul" (hint: running helm repo update may help)
If I try to install via helm, everything works fine.
When tracing, I found out that helm tries to download tgz.pov chart file, while in index.yaml there is only tgz one.
Any ideas?
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
Interesting. How a successful helm command look like?
Can you compare it with the helm command being run by Helmfile if you run helmfile --log-level=debug
?
![Yevhenii Demchenko avatar](https://secure.gravatar.com/avatar/5a51403268073387384097da2f6ef1d5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0013-72.png)
successful via helm - https://gist.github.com/djackyn/725ac0638c33c89a3cb903d03707f43c failure via helmfile - https://gist.github.com/djackyn/725ac0638c33c89a3cb903d03707f43c
![Yevhenii Demchenko avatar](https://secure.gravatar.com/avatar/5a51403268073387384097da2f6ef1d5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0013-72.png)
will try to run same command as helmfile now
![Yevhenii Demchenko avatar](https://secure.gravatar.com/avatar/5a51403268073387384097da2f6ef1d5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0013-72.png)
Okay, have the same problems. Seems like a bug in the helm, will check. Thanks for the direction
2019-08-05
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
If I do the following:
- deploy a chart (deployment) with
helmfile
- edit that deployment with
kubectl
should a helmfile diff
show a change?
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
Because when I run helmfile diff
with a manual edited deployment, it shows no changes. This is with helmfile
0.80.2 and tested with helm
2.13.1, 2.14.1 and 2.14.3
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
yes, it should, however helmfile
just calls out to helm-diff
https://github.com/databus23/helm-diff
A helm plugin that shows a diff explaing what a helm upgrade would change - databus23/helm-diff
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
as far as i understand, helm diff
doesn’t show diff for actual k8s resources
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
helm persists the desired state of k8s manifests per each helm release in a release configmap/secret in tiller namespace
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
helm-diff
shows diffs from that, not from the current state of your cluster
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
aha, wow, didn’t know that.
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
so the downside of helm-diff
is that you cant use it to detect “skews” due to manual changes
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
A helm plugin that shows a diff explaing what a helm upgrade would change - databus23/helm-diff
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
i wonder if kubectl diff
is useful in that case though
maybe it can be used like this:
helm get $YOUR_RELEASE_NAME --template {{.Release.Manifest}} | kubectl diff -f -
![Jeremy G (Cloud Posse) avatar](https://avatars.slack-edge.com/2020-07-04/1229022582372_22757dbc9ef96d371614_72.jpg)
Yes, I recently encountered this behavior. helm diff
diffs the new desired state against the old desired state. It is blind to manual changes in the state. I didn’t even know kubectl diff
existed.
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
Thank ya’ll, that’s very helpful. I was not aware of kubectl diff
either.
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
Guess I need to keep some hands out of the kubectl
pot in the future
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
darn, can’t use kubectl diff with k8s 1.11 it seems
2019-08-06
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
Hi….Is ordering possible in helmfile for single helmfile.yaml….say i have 10 helm charts in a single helmfile and i want to run run them in the order they are defined is it possible?
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
Unforunately, no.
But we have a feature request to add a declarative way to manage ordering https://github.com/roboll/helmfile/issues/715 Pls feel free to +1 if you think it helps your use-case!
I know Helmfile can already do release dependencies by ordering releases manually via naming conventions for helmfiles or limiting concurrency. Ability to explicitly declare dependencies would be a…
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
Without labels it is working with –concurrency=1 but with labels it is not
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
use helmfiles:
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
is how im doing it
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
what you are specifying in helmfile
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
can you give example
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
helmfiles:
- path: releases/external-dns/helmfile.yaml.gotmpl
values:
- versions.yaml
- path: releases/prometheus-operator/helmfile.yaml.gotmpl
values:
- versions.yaml
- path: releases/prometheus-pushgateway/helmfile.yaml.gotmpl
values:
- versions.yaml
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
will deploy them in that order
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
but i want to use only one helmfile i dont want to use multiple helmfiles….ok if this i do is it possible to have helmfile specific to envvironment
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
like i have three environments i want each corresponding helmfile for them
![ag avatar](https://secure.gravatar.com/avatar/9edeca13db647c2716d0fae42e3d8ec9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png)
not sure with a single helmfile
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
i want that the helmfile with –environment set should work
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
can i have helmfile per environment
2019-08-07
![Shikhar Goel avatar](https://secure.gravatar.com/avatar/a9e8ec5ef5f21477bcbe0d8c3fa01efb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
Thanks….Hi is it possible to read the values in gotmpl file from the configmap in k8s?
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
interesting idea! but not possible now.
it would worth a dedicated feature request. would you mind writing one?
maybe we can enhance the syntax being discussed/proposed in https://github.com/roboll/helmfile/issues/745#issuecomment-510737741 to also accept k8s secrets as sources.
I'd love to have the functionality of #662 but I wanted to throw my use-case in here while it's topical as what i'm suggesting is probably closer to #705. We're deploying a bunch of…
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
in the meantime, use {{ exec "sh" (list "-c", "kubectl get secret .....") }}
as a workaround
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
@mumoshu so i have https://github.com/roboll/helmfile/pull/790 open but looking at the environmentSecrets, i’m thinking a package scoped cache might be better so that exec contexts don’t need to be threaded everywhere
Related to #782 and #444 Allows concurrent decryption of different secrets files Caches decrypted secrets by original file path and returns decrypted results from memory Secrets being run through …
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
package scoped cache sounds like a good starting point! i do think that we’ll eventually need per-HelmState(or something nearby) cache but it isn’t needed as long as we don’t use helmfile as a go library
Related to #782 and #444 Allows concurrent decryption of different secrets files Caches decrypted secrets by original file path and returns decrypted results from memory Secrets being run through …
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
and thanks for the pr i’ll take a look soon
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
hm yeah. i’ll see if moving the cache up the stack makes more sense
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
2019-08-10
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
When running helmfile deps
, how to scope it to a single release?
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
I tried helmfile --selector name=my-app-1 deps
, but that removes everything except my-app-1
from helmfile.lock
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
Hey! There seems no way to scope deps to a single release without breaking helmfile.lock currently
Just curious, why you need to do so?
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
Pretty simple, I have an observe namespace with grafana, elasticsearch, prometheus etc etc etc. Maybe 20 or so charts. Upgrading everything at once is considerable change, particularly with complex ones like jenkins
or prometheus
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
I think it worth a feature request to add helmfile an optional argument for which chart to receive updates
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
like helmfile deps one_of_your_chart_name_here
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
That’d be lovely
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
I can put that in tomorrow
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
thanks!
![Nelson Jeppesen avatar](https://avatars.slack-edge.com/2019-06-19/672297459718_40810f21ee9c905123db_72.jpg)
no, thank you!
2019-08-14
![Erik Forsberg avatar](https://secure.gravatar.com/avatar/a5b8961615ebf8306bd861bad1ca0395.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-72.png)
I have a chart, namely prometheus-msteams that reads in a file via Files.Get. I’d like to override the contents of that file, i.e what’s in card.tmp. Is there some way of doing so when installing the chart via helmfile?
I can of course modify the chart so that it has the option to specify what configmap to use, but if I don’t have to because helmfile already can do this for me, I will be eternally happy
https://github.com/bzon/prometheus-msteams/tree/master/chart/prometheus-msteams
A lightweight Go Server that sends Prometheus Alert Manager notifications to Microsoft Teams - bzon/prometheus-msteams
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
You have an interesting use-case! Unfortunately Helmfile doesn’t have a feature that helps it today, but worth a feature request to helmfile and helm-x
A lightweight Go Server that sends Prometheus Alert Manager notifications to Microsoft Teams - bzon/prometheus-msteams
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
one of featuers of helm-x is to add adhoc changes to the chart before installing it(like patches resources
so enhancing it to replace chart files (perhaps like helm x upgrade --install --replace-chart-file card.tmpl=yourown.card.tmpl
?
and exposing the helm-x option to helmfile.yaml makes sense(perhaps with replaceFiles: {"card.tmpl": "yourown.card.tmpl
}
?
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
@mumoshu do you know when you’re anticipating a new helmfile release?
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
(I believe a new release is cut pretty much for every merge to master)
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
…or it used to be
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
I see 0.81.0 is composed of multiple PRs
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
basically yes
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
i thought it would be better to cut a single version containing 3 prs from @tgroth this time
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Yea, I think the main intent is just to keep releases flowing regularly so features (even if unintentionally broken and not fully baked) are readily available for testing.
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
definitely
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
there was a bit of a joke at work last week that @mumoshu might be dead since it had been a week since the last release
![rofl](/assets/images/custom_emojis/rofl.gif)
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
haha, thank god not! @mumoshu get some time off finally?
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
not really i was just busy handling reviews, questions and writing a few complementary go libraries for helmfile!
hopefully i can take some time off after the upcoming helm summit
![Andrew Nazarov avatar](https://avatars.slack-edge.com/2021-06-09/2146832855878_fbb84e3b2832cc494a93_72.jpg)
@mumoshu are you going to attend Helm Summit, btw?
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
@Andrew Nazarov yes will you?
![Andrew Nazarov avatar](https://avatars.slack-edge.com/2021-06-09/2146832855878_fbb84e3b2832cc494a93_72.jpg)
I would like to go, but don’t know yet. It contradicts my other plans and commitments. ~It’s too bad, there will be no talk about helmfile. At least I haven’t seen anything related to it in the schedule.~
![Andrew Nazarov avatar](https://avatars.slack-edge.com/2021-06-09/2146832855878_fbb84e3b2832cc494a93_72.jpg)
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
and i see an another helmfile user is giving a talk, too https://helmsummit2019.sched.com/event/S8tf/helm-for-anybody-combining-chatops-and-declarative-configurations-jonathan-striebel-scalable-minds-gmbh
View more about this event at Helm Summit 2019
![Andrew Nazarov avatar](https://avatars.slack-edge.com/2021-06-09/2146832855878_fbb84e3b2832cc494a93_72.jpg)
2019-08-15
2019-08-16
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
#helmfile I am thinking of the following structure
*modules* readme.md sites
./modules:
postgresql prometheus
./modules/postgresql:
postgresql.yaml
./modules/prometheus:
prometheus.yaml
./sites:
minikube
./sites/minikube/local:
helmfile.yaml postgresql_values.yaml prometheus_values.yaml
./sites/infra/dev:
helmfile.yaml
./sites/infra/staging:
Where the sites folder would have the components that needs to be installed in an environment, and the modules holding the common modules. I saw the helmfiles.d/ and values/ separation, here it would give us better view on what is going on per site. What are the problems with the above structure? Since nothing much has been actually done, it would be very easy to change at this point. Thanks
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
@Shiva Gopal I don’t see any use of “environments”
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
just want to make sure that’s on your radar
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
@Erik Osterman (Cloud Posse) - the structure is ./sites/customer/{env,namespace} - At least that’s the idea
2019-08-20
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
#helmfile - I want to run https://github.com/helm/charts/tree/master/stable/grafana repeatedly, with the adminPassword set in values.yaml file
I have tried different combinations, the secret is getting generated each time. What am I doing wrong? Thanks @mumoshu
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
@Shiva Gopal Hey! You need it included in the grafana.yaml
:
releases:
- name: grafana
namespace: grafana
chart: stable/grafana
values:
- rbac:
create: false
- ./grafana_values.yaml
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
helmfiles:
- path: "../../modules/grafana/grafana.yaml"
values:
- "./grafana_values.yaml"
this isn’t valid as helmfiles[].values
is for setting helmfile values, rather than release values.
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
@mumoshu - got it. if I want env specific values, is there a way to put in say sites/infra/dev/grafana_values.yaml ?
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
Yeah that’s one of the good ways! You may also use {{.Environment.Name}}
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
one more thing… is there any way to the use the values file only if present? meaning if there is no additional config required, the users need not have the values file.
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
you can set the missing file handler to be warning or even debug
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
missingFileHandler parameter under releases. there’s a comment for it in the main README.md
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
Also is there a way to say use the directory from where the program was launched and use that as a parameter? It will save me from setting one ENV var
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
referencing PWD might do it
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
i haven’t tried it but it sounds like it might work
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
{{ requiredEnv "PLATFORM_ENV" }}
syntax
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
no it’s a standard env var that already has your current directory
![tgroth avatar](https://secure.gravatar.com/avatar/59b8675685440095fce9cd1874538705.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png)
requiredEnv should get it (i think that’s a sprig or gotemplate function)
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
@tgroth - thanks it was user error Used PWD directly instead of “PWD”
2019-08-22
![Andrew Nazarov avatar](https://avatars.slack-edge.com/2021-06-09/2146832855878_fbb84e3b2832cc494a93_72.jpg)
It’s too bad we cannot see the full history here. I wanted to recall something by checking out old messages, but got hit by this limitation.
![nutellinoit avatar](https://avatars.slack-edge.com/2018-11-26/487007455216_a140ee997507b177e7a5_72.jpg)
@Andrew Nazarov you can use https://archive.sweetops.com/helmfile/
SweetOps is a collaborative DevOps community. We welcome engineers from around the world of all skill levels, backgrounds, and experience to join us! This is the best place to talk shop, ask questions, solicit feedback, and work together as a community to build sweet infrastructure.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
![attachment image](https://miro.medium.com/max/1200/1*_d_KxQVEDhWUhJVUPImcaA.jpeg)
One of the most important principles to being an engineer, is being able to admit when you are wrong. Well folks. I was wrong. Some of you…
![helm](/assets/images/custom_emojis/helm.png)
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
by our very own @stobiewankenobi
2019-08-23
![sung kang avatar](https://secure.gravatar.com/avatar/1ab647f0a621cb92ebfb5d9a302057ee.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0002-72.png)
Hey ya’ll, I feel like I’m misunderstanding something about environments feature in helmfile and was hoping someone could point me in the right direction. Trying to do this but my environment values aren’t getting passed down to my sub helmfiles
environments:
beta:
values:
- externaldns:
installed: false
namespaces:
installed: false
helmfiles:
- path: releases/external-dns
values:
- installed: {{ Environment.Values.externaldns.installed }}
- path: releases/namespaces
values:
- installed: {{ Environments.Values.namespaces.installed }}
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
@sung kang Hey!
Could you try running it with debug logs like helmfile --log-level debug sync
so that you can see how it is rendering your helmfile.yaml?
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
Anyways, I think {{ Environment.Values.externaldns.installed }}
should be {{ .Environment.Values.externaldns.installed }}
. It needs .
before Environment
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
I can try to reproduce it if you could share the actual files you’re having the trouble
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
At least for now, I don’t see any issue in the example you’ve shared. It should work
![sung kang avatar](https://secure.gravatar.com/avatar/1ab647f0a621cb92ebfb5d9a302057ee.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0002-72.png)
Turns out the issue I was having had to do with boolean values
![sung kang avatar](https://secure.gravatar.com/avatar/1ab647f0a621cb92ebfb5d9a302057ee.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0002-72.png)
When I use the default function it doesn’t handle it correctly, switching to {{ get “” “”}} function addressed my issue
![sung kang avatar](https://secure.gravatar.com/avatar/1ab647f0a621cb92ebfb5d9a302057ee.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0002-72.png)
Am I missing something here entirely?
![sung kang avatar](https://secure.gravatar.com/avatar/1ab647f0a621cb92ebfb5d9a302057ee.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0002-72.png)
I know environments aren’t shared down to sub-helmfiles but I’d thought I could expose them through the state this way
2019-08-24
2019-08-26
![devoperandi avatar](https://secure.gravatar.com/avatar/371b1ebfc1dc1bb303374ce9c481300b.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
Hello, anyone around to answer a question?
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
@Erik Osterman (Cloud Posse) / @mumoshu / others with terraform experience. Has anyone studied the pros/cons of using terraform helm provider vs helmfile? I am obviously biased towards helmfile (don’t have much experience with the tf helm provider though) and would like to present any known items of one vs the other. Thanks
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
First, helmfile
was born long before the terraform-helm-provider
existed. Before that time, terraform wasn’t really an option.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Since then, the terraform-helm-provider
came out. It was tempting at first, until we considered all that we would lose. In terraform 0.11, the templating was just not robust enough. It just handled simple replacement of variables. When working with values.yaml
, it’s important to be able to deal with more complicated maps/lists, etc. Sometimes an entire section should be conditionally disabled.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Then terraform 0.12 came out. The gap closed. Now robust templating is possible in templates. It’s an appealing alternative, especially when everything else is in terraform. For example, many of our helm releases have AWS backing services. It would be nice to deploy the RDS database with terraform and then the helm chart immediately there after.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
This is possible today.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
However, doing so would give up the helm diff
functionality. That’s a deal breaker in my book.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Basically, without helm diff
, you have zero clue what’s going to happen.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
There’s an option issue for this on terraform-helm-provider
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Unless I'm wrong, this provider will not detect changes if neither the chart version, nor the values changed. However, one can have made manual changes using the k8s api (update or delete objec…
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
(someone even suggested making it work more like helmfile
! Props to @ausov
.)
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
The issue has been open for over 1 year now with no movement. Not holding my breath.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Also, while I have the stage, want to call out a project @mumoshu is working on
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Kubernetes operator that continuously syncs any set of Chart/Kustomize/Manifest fetched from S3/Git/GCS to your cluster - mumoshu/helmfile-operator
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Also, there’s https://github.com/Kubedex/terraform-helmfile
Run Helmfile from Terraform. Contribute to Kubedex/terraform-helmfile development by creating an account on GitHub.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
Not sure how I feel about that implementation though. We run terraform
in a container, and this expects to run helmfile
in a container, which causes a catch-22
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
@Shiva Gopal was this helpful? anything else you’re curious about…
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
@Erik Osterman (Cloud Posse) - this was super helpful. Let me digest the above and come back with any questions that I have.
![Erik Osterman (Cloud Posse) avatar](https://secure.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png)
(I jumping on a call but will get back to you today)
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
Thanks @Erik Osterman (Cloud Posse)
![Shiva Gopal avatar](https://secure.gravatar.com/avatar/b52d65c98f187e3256bfa8e70a2271e4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png)
@devoperandi - welcome , loved your blog and still using git2consul
![devoperandi avatar](https://secure.gravatar.com/avatar/371b1ebfc1dc1bb303374ce9c481300b.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png)
@Shiva Gopal Thanks man. I have utterly failed to blog over the last year. Need to get back to it.
2019-08-27
2019-08-28
![Daniel Johansson avatar](https://secure.gravatar.com/avatar/e444ba61246dd0fff8604875ea814773.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-72.png)
Hi, I have a set of helmfiles in helmfiles.d and a values.gotmpl created by other people. I get an error complaining about .Values.clusterRegion not being set, even though it looks to me that it should be set. Is there a way to render the .gotmpl-file to see that that is ok and/or see what helmfile thinks should be in the .Values variable ?
![mumoshu avatar](https://secure.gravatar.com/avatar/8e045bf747ca7a90b1d955dc30217271.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png)
@Daniel Johansson Hey! Unfortunately helmfile doesn’t have support for that today.
I can help debuggging tho
even though it looks to me that it should be set.
Would you mind sharing the snippet of your values.gotmpl or relevant files so that I can explain why it should/not work?
![Daniel Johansson avatar](https://secure.gravatar.com/avatar/e444ba61246dd0fff8604875ea814773.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-72.png)
I’ve tried with: helmfile –log-level debug template and also adding a dummy parameter with {{ .Values | toYaml }} But nothing showed presumed contents of the .gotmpl
2019-08-29
![Robert avatar](https://secure.gravatar.com/avatar/3fbe136a12776f5be5f78e7fb59d3ce0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-72.png)
@Robert has joined the channel