59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # Secrets 
 | |
| 
 | |
| helmfile can handle secrets using [helm-secrets](https://github.com/jkroepke/helm-secrets) plugin or using remote secrets storage 
 | |
| (everything that package [vals](https://github.com/variantdev/vals) can handle vault, AWS SSM etc)  
 | |
| This section will describe the second use case. 
 | |
| 
 | |
| # Remote secrets 
 | |
| 
 | |
| This paragraph will describe how to use remote secrets storage (vault, SSM etc) in helmfile 
 | |
| 
 | |
| ## Fetching single key
 | |
| 
 | |
| To fetch single key from remote secret storage you can use `fetchSecretValue` template function example below
 | |
| 
 | |
| ```yaml 
 | |
| # helmfile.yaml 
 | |
| 
 | |
| repositories: 
 | |
|   - name: stable 
 | |
|     url: https://kubernetes-charts.storage.googleapis.com 
 | |
| 
 | |
| environments: 
 | |
|   default: 
 | |
|     values:
 | |
|       - service:
 | |
|           password: ref+vault://svc/#pass
 | |
|           login: ref+vault://svc/#login
 | |
| releases:
 | |
|   - name: service 
 | |
|     namespace: default
 | |
|     labels:
 | |
|       cluster: services
 | |
|       secrets: vault
 | |
|     chart: stable/svc
 | |
|     version: 0.1.0
 | |
|     values:
 | |
|       - service:
 | |
|           login: {{ .Values.service.login | fetchSecretValue }} # this will resolve ref+vault://svc/#pass and fetch secret from vault
 | |
|           password: {{ .Values.service.password | fetchSecretValue | quote }}
 | |
|       # - values/service.yaml.gotmpl   # alternatively 
 | |
| ```
 | |
| ## Fetching multiple keys
 | |
| Alternatively you can use `expandSecretRefs` to fetch a map of secrets 
 | |
| ```yaml
 | |
| # values/service.yaml.gotmpl
 | |
| service:
 | |
| {{ .Values.service | expandSecretRefs | toYaml | nindent 2 }}
 | |
| ```
 | |
| 
 | |
| This will produce
 | |
| ```yaml
 | |
| # values/service.yaml
 | |
| service:
 | |
|   login: svc-login # fetched from vault
 | |
|   password: pass
 | |
|   
 | |
| ```
 | |
| 
 |