fix: inject global values in Chartify (#1805)
* fix: inject global values in Chartify Signed-off-by: Thomas Loubiou <thomas.loubiou@mirakl.com> * test: add integration tests for template --values Signed-off-by: Thomas Loubiou <thomas.loubiou@mirakl.com> --------- Signed-off-by: Thomas Loubiou <thomas.loubiou@mirakl.com>
This commit is contained in:
		
							parent
							
								
									c9173b3e52
								
							
						
					
					
						commit
						8891439cdc
					
				|  | @ -250,6 +250,7 @@ func (a *App) Template(c TemplateConfigProvider) error { | ||||||
| 			Concurrency:            c.Concurrency(), | 			Concurrency:            c.Concurrency(), | ||||||
| 			IncludeTransitiveNeeds: c.IncludeNeeds(), | 			IncludeTransitiveNeeds: c.IncludeNeeds(), | ||||||
| 			Set:                    c.Set(), | 			Set:                    c.Set(), | ||||||
|  | 			Values:                 c.Values(), | ||||||
| 			KubeVersion:            c.KubeVersion(), | 			KubeVersion:            c.KubeVersion(), | ||||||
| 		}, func() { | 		}, func() { | ||||||
| 			ok, errs = a.template(run, c) | 			ok, errs = a.template(run, c) | ||||||
|  |  | ||||||
|  | @ -1127,6 +1127,7 @@ type ChartPrepareOptions struct { | ||||||
| 	Concurrency            int | 	Concurrency            int | ||||||
| 	KubeVersion            string | 	KubeVersion            string | ||||||
| 	Set                    []string | 	Set                    []string | ||||||
|  | 	Values                 []string | ||||||
| 	// Delete wait
 | 	// Delete wait
 | ||||||
| 	DeleteWait    bool | 	DeleteWait    bool | ||||||
| 	DeleteTimeout int | 	DeleteTimeout int | ||||||
|  | @ -1294,6 +1295,10 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre | ||||||
| 					chartifyOpts.KubeVersion = st.getKubeVersion(release, opts.KubeVersion) | 					chartifyOpts.KubeVersion = st.getKubeVersion(release, opts.KubeVersion) | ||||||
| 					chartifyOpts.ApiVersions = st.getApiVersions(release) | 					chartifyOpts.ApiVersions = st.getApiVersions(release) | ||||||
| 
 | 
 | ||||||
|  | 					if opts.Values != nil { | ||||||
|  | 						chartifyOpts.ValuesFiles = append(opts.Values, chartifyOpts.ValuesFiles...) | ||||||
|  | 					} | ||||||
|  | 
 | ||||||
| 					// https://github.com/helmfile/helmfile/pull/867
 | 					// https://github.com/helmfile/helmfile/pull/867
 | ||||||
| 					// https://github.com/helmfile/helmfile/issues/895
 | 					// https://github.com/helmfile/helmfile/issues/895
 | ||||||
| 					var flags []string | 					var flags []string | ||||||
|  |  | ||||||
|  | @ -12,16 +12,18 @@ fi | ||||||
| chartify_tmp=$(mktemp -d) | chartify_tmp=$(mktemp -d) | ||||||
| chartify_template_reverse=${chartify_tmp}/chartify.template.log | chartify_template_reverse=${chartify_tmp}/chartify.template.log | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| test_start "helmfile template with chartify" | test_start "helmfile template with chartify" | ||||||
| 
 | 
 | ||||||
| info "Comparing template/chartify" | info "Comparing template/chartify" | ||||||
| ${helmfile} -f ${chartify_case_input_dir}/${config_file} template > ${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" | ${helmfile} -f ${chartify_case_input_dir}/${config_file} template >${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" | ||||||
| ./dyff between -bs ${chartify_case_output_dir}/template ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent" | ./dyff between -bs ${chartify_case_output_dir}/template ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent" | ||||||
| 
 | 
 | ||||||
| info "Comparing template/chartify with set" | info "Comparing template/chartify with set" | ||||||
| ${helmfile} -f ${chartify_case_input_dir}/${config_file} template --set image.tag=v2 > ${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" | ${helmfile} -f ${chartify_case_input_dir}/${config_file} template --set image.tag=v2 >${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" | ||||||
| ./dyff between -bs ${chartify_case_output_dir}/template-set ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent" | ./dyff between -bs ${chartify_case_output_dir}/template-set ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent" | ||||||
| 
 | 
 | ||||||
|  | info "Comparing template/chartify with values" | ||||||
|  | ${helmfile} -f ${chartify_case_input_dir}/${config_file} template --values "./extra-values.yaml" >${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" | ||||||
|  | ./dyff between -bs ${chartify_case_output_dir}/template-values ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent" | ||||||
| 
 | 
 | ||||||
| test_pass "helmfile template with chartify" | test_pass "helmfile template with chartify" | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | --- | ||||||
|  | image: | ||||||
|  |   tag: v3 | ||||||
|  | @ -0,0 +1,61 @@ | ||||||
|  | --- | ||||||
|  | # Source: httpbin/templates/patched_resources.yaml | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app: httpbin | ||||||
|  |     chart: httpbin-0.1.0 | ||||||
|  |     heritage: Helm | ||||||
|  |     release: httpbin | ||||||
|  |   name: httpbin-httpbin | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |   - name: httpbin | ||||||
|  |     port: 8000 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 8000 | ||||||
|  |   selector: | ||||||
|  |     app: httpbin | ||||||
|  |     release: httpbin | ||||||
|  |   type: LoadBalancer | ||||||
|  | --- | ||||||
|  | # Source: httpbin/templates/patched_resources.yaml | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app: httpbin | ||||||
|  |     chart: httpbin-0.1.0 | ||||||
|  |     heritage: Helm | ||||||
|  |     release: httpbin | ||||||
|  |   name: httpbin-httpbin | ||||||
|  | spec: | ||||||
|  |   replicas: 1 | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: httpbin | ||||||
|  |   strategy: | ||||||
|  |     type: Recreate | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: httpbin | ||||||
|  |         release: httpbin | ||||||
|  |     spec: | ||||||
|  |       containers: | ||||||
|  |       - image: docker.io/citizenstig/httpbin:v3 | ||||||
|  |         imagePullPolicy: Always | ||||||
|  |         livenessProbe: | ||||||
|  |           httpGet: | ||||||
|  |             path: / | ||||||
|  |             port: 8000 | ||||||
|  |         name: httpbin | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 8000 | ||||||
|  |         readinessProbe: | ||||||
|  |           httpGet: | ||||||
|  |             path: / | ||||||
|  |             port: 8000 | ||||||
|  |         resources: {} | ||||||
|  | status: {} | ||||||
		Loading…
	
		Reference in New Issue