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