feat: add chart version to template values
Signed-off-by: Hans Song <hans.song.dev@gmail.com>
This commit is contained in:
parent
3429901363
commit
b308476477
|
|
@ -28,11 +28,12 @@ func (st *HelmState) createReleaseTemplateData(release *ReleaseSpec, vals map[st
|
|||
Chart: st.OverrideChart,
|
||||
Values: vals,
|
||||
Release: releaseTemplateDataRelease{
|
||||
Name: release.Name,
|
||||
Chart: release.Chart,
|
||||
Namespace: release.Namespace,
|
||||
Labels: release.Labels,
|
||||
KubeContext: release.KubeContext,
|
||||
Name: release.Name,
|
||||
Chart: release.Chart,
|
||||
ChartVersion: release.Version,
|
||||
Namespace: release.Namespace,
|
||||
Labels: release.Labels,
|
||||
KubeContext: release.KubeContext,
|
||||
},
|
||||
}
|
||||
tmplData.StateValues = &tmplData.Values
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import (
|
|||
"github.com/go-test/deep"
|
||||
|
||||
"github.com/helmfile/helmfile/pkg/environment"
|
||||
"github.com/helmfile/helmfile/pkg/event"
|
||||
"github.com/helmfile/helmfile/pkg/filesystem"
|
||||
)
|
||||
|
||||
|
|
@ -146,6 +147,41 @@ func TestHelmState_executeTemplates(t *testing.T) {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Has template expressions in hook args",
|
||||
input: ReleaseSpec{
|
||||
Name: "test-name",
|
||||
Chart: "test-chart",
|
||||
Version: "{{ .Release.Name }}-0.1.0",
|
||||
Hooks: []event.Hook{{
|
||||
Name: "test-hook",
|
||||
Command: "helm",
|
||||
Args: []string{
|
||||
"show",
|
||||
"crds",
|
||||
"{{ .Release.Chart }}",
|
||||
"--version",
|
||||
"{{ .Release.ChartVersion }}",
|
||||
},
|
||||
}},
|
||||
},
|
||||
want: ReleaseSpec{
|
||||
Name: "test-name",
|
||||
Chart: "test-chart",
|
||||
Version: "test-name-0.1.0",
|
||||
Hooks: []event.Hook{{
|
||||
Name: "test-hook",
|
||||
Command: "helm",
|
||||
Args: []string{
|
||||
"show",
|
||||
"crds",
|
||||
"test-chart",
|
||||
"--version",
|
||||
"0.1.0",
|
||||
},
|
||||
}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for i := range tests {
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@ type EnvironmentTemplateData struct {
|
|||
// Namespace is accessible as `.Namespace` from any non-values template executed by the renderer
|
||||
Namespace string
|
||||
// Values is accessible as `.Values` and it contains default state values overrode by environment values and override values.
|
||||
Values map[string]any
|
||||
StateValues *map[string]any
|
||||
Values map[string]interface{}
|
||||
StateValues *map[string]interface{}
|
||||
}
|
||||
|
||||
func NewEnvironmentTemplateData(environment environment.Environment, namespace string, values map[string]any) *EnvironmentTemplateData {
|
||||
func NewEnvironmentTemplateData(environment environment.Environment, namespace string, values map[string]interface{}) *EnvironmentTemplateData {
|
||||
d := EnvironmentTemplateData{environment, namespace, values, nil}
|
||||
d.StateValues = &d.Values
|
||||
return &d
|
||||
|
|
@ -35,8 +35,8 @@ type releaseTemplateData struct {
|
|||
// It contains a subset of ReleaseSpec that is known to be useful to dynamically render values.
|
||||
Release releaseTemplateDataRelease
|
||||
// Values is accessible as `.Values` and it contains default state values overrode by environment values and override values.
|
||||
Values map[string]any
|
||||
StateValues *map[string]any
|
||||
Values map[string]interface{}
|
||||
StateValues *map[string]interface{}
|
||||
// KubeContext is HelmState.OverrideKubeContext.
|
||||
// You should better use Release.KubeContext as it might work as you'd expect even if HelmState.OverrideKubeContext is not set.
|
||||
// See releaseTemplateDataRelease.KubeContext for more information.
|
||||
|
|
@ -64,6 +64,9 @@ type releaseTemplateDataRelease struct {
|
|||
// Chart is ReleaseSpec.Chart
|
||||
Chart string
|
||||
|
||||
// ChartVersion is ReleaseSpec.Version, renamed to disambiguate from the templated version field
|
||||
ChartVersion string
|
||||
|
||||
// KubeContext is ReleaseSpec.KubeContext
|
||||
KubeContext string
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue