GoogleContainerTools / GoogleContainerTools/skaffold

Using modules/profiles and a single Helm chart

Open
#9,470 0 comments 2 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.