GoogleContainerTools / GoogleContainerTools/skaffold
Using modules/profiles and a single Helm chart
- Dominant language
- Go
- Stars
- 15.9k
- Forks
- 1.7k
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 10
Description
**Our setup**
- We have a single Helm chart which contains >10 images.
- We want to use Helm to deploy as we tap into various Helm hooks to set up our apps.
- Helm is our unit of deployment across all environments
**What we currently do**
- In local development we use profiles to decide which parts of the Helm chart to deploy.
- E.g `skaffold dev -p core,extra1,extra2`
- Each profile patches a boolean which is then used to decide whether to render a service in the Helm/templates.
- E.g.
``` - name: webhooks
patches:
- op: replace
path: /deploy/helm/releases/0/setValues/enableExtra1
value: true
```
- Then in the templates we have `{{- if .Values.enableExtra1 }}`
**The issue**
- This setup still requires us to **build** all of the images that might be in a Helm chart, and then later we decide whether to include them or not. This is pretty slow for a big Helm chart.
- We want to have skaffold selectively build the images based on what will end up in the Helm chart.
- The deploy step defines setValueTemplates to override the image tags of **all** of the images.
**What I've tried**
- Skaffold modules, our deploy step using setValueTemplates to override image tags. I can't see how this can work with a module defined separate to the Helm deploy.
- Skaffold profiles, again, couldn't get this to work.
What am I missing? Thanks in advance
Contributor guide
Assessment
This issue has not been assessed yet.