Expose release version as .Release.ChartVersion for templating (#2080)
This commit is contained in:
		
							parent
							
								
									c03f86de0f
								
							
						
					
					
						commit
						d84243992e
					
				|  | @ -52,6 +52,7 @@ releases: | |||
|   - `Release.Labels`: The labels to be applied to the release | ||||
|   - `Release.Chart`: The chart name of the release | ||||
|   - `Release.KubeContext`: The kube context to be used for the release | ||||
|   - `Release.ChartVersion`: The version of the current chart | ||||
| - `Values`: Values passed into the environment. | ||||
| - `StateValues`: alias for `Values`. | ||||
| - `Environment`: The information about the environment. This is set by the | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ func (st *HelmState) createReleaseTemplateData(release *ReleaseSpec, vals map[st | |||
| 			Namespace:    release.Namespace, | ||||
| 			Labels:       release.Labels, | ||||
| 			KubeContext:  release.KubeContext, | ||||
| 			ChartVersion: release.Version, | ||||
| 		}, | ||||
| 	} | ||||
| 	tmplData.StateValues = &tmplData.Values | ||||
|  |  | |||
|  | @ -32,8 +32,8 @@ func TestHelmState_executeTemplates(t *testing.T) { | |||
| 				Version:        "{{ .Release.Name }}-0.1", | ||||
| 				Name:           "test-app", | ||||
| 				Namespace:      "test-namespace-{{ .Release.Name }}", | ||||
| 				ValuesTemplate: []any{"config/{{ .Environment.Name }}/{{ .Release.Name }}/values.yaml"}, | ||||
| 				Secrets:        []any{"config/{{ .Environment.Name }}/{{ .Release.Name }}/secrets.yaml"}, | ||||
| 				ValuesTemplate: []any{"config/{{ .Environment.Name }}/{{ .Release.Name }}/{{ .Release.ChartVersion }}/values.yaml"}, | ||||
| 				Secrets:        []any{"config/{{ .Environment.Name }}/{{ .Release.Name }}/{{ .Release.ChartVersion }}/secrets.yaml"}, | ||||
| 				Labels:         map[string]string{"id": "{{ .Release.Name }}"}, | ||||
| 			}, | ||||
| 			want: ReleaseSpec{ | ||||
|  | @ -41,8 +41,8 @@ func TestHelmState_executeTemplates(t *testing.T) { | |||
| 				Version:   "test-app-0.1", | ||||
| 				Name:      "test-app", | ||||
| 				Namespace: "test-namespace-test-app", | ||||
| 				Values:    []any{"config/test_env/test-app/values.yaml"}, | ||||
| 				Secrets:   []any{"config/test_env/test-app/secrets.yaml"}, | ||||
| 				Values:    []any{"config/test_env/test-app/test-app-0.1/values.yaml"}, | ||||
| 				Secrets:   []any{"config/test_env/test-app/test-app-0.1/secrets.yaml"}, | ||||
| 				Labels:    map[string]string{"id": "test-app"}, | ||||
| 			}, | ||||
| 		}, | ||||
|  | @ -89,20 +89,24 @@ func TestHelmState_executeTemplates(t *testing.T) { | |||
| 				Chart:     "test-charts/chart", | ||||
| 				Name:      "test-app", | ||||
| 				Namespace: "dev", | ||||
| 				Version:   "1.5", | ||||
| 				SetValuesTemplate: []SetValue{ | ||||
| 					{Name: "val1", Value: "{{ .Release.Name }}-val1"}, | ||||
| 					{Name: "val2", File: "{{ .Release.Name }}.yml"}, | ||||
| 					{Name: "val3", Values: []string{"{{ .Release.Name }}-val2", "{{ .Release.Name }}-val3"}}, | ||||
| 					{Name: "val4", Value: "{{ .Release.Chart }}-{{ .Release.ChartVersion}}"}, | ||||
| 				}, | ||||
| 			}, | ||||
| 			want: ReleaseSpec{ | ||||
| 				Chart:     "test-charts/chart", | ||||
| 				Name:      "test-app", | ||||
| 				Namespace: "dev", | ||||
| 				Version:   "1.5", | ||||
| 				SetValues: []SetValue{ | ||||
| 					{Name: "val1", Value: "test-app-val1"}, | ||||
| 					{Name: "val2", File: "test-app.yml"}, | ||||
| 					{Name: "val3", Values: []string{"test-app-val2", "test-app-val3"}}, | ||||
| 					{Name: "val4", Value: "test-charts/chart-1.5"}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
|  | @ -146,6 +150,19 @@ func TestHelmState_executeTemplates(t *testing.T) { | |||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		{ | ||||
| 			name: "Version is empty but used in templates (render as empty string)", | ||||
| 			input: ReleaseSpec{ | ||||
| 				Name:           "test-app", | ||||
| 				Chart:          "test-charts/{{ .Release.Name }}", | ||||
| 				ValuesTemplate: []any{"config/values-{{ .Release.ChartVersion }}.yaml"}, | ||||
| 			}, | ||||
| 			want: ReleaseSpec{ | ||||
| 				Name:   "test-app", | ||||
| 				Chart:  "test-charts/test-app", | ||||
| 				Values: []any{"config/values-.yaml"}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	for i := range tests { | ||||
|  |  | |||
|  | @ -64,6 +64,9 @@ type releaseTemplateDataRelease struct { | |||
| 	// Chart is ReleaseSpec.Chart
 | ||||
| 	Chart string | ||||
| 
 | ||||
| 	// ChartVersion is ReleaseSpec.Version
 | ||||
| 	ChartVersion string | ||||
| 
 | ||||
| 	// KubeContext is ReleaseSpec.KubeContext
 | ||||
| 	KubeContext string | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue