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,
|
Chart: st.OverrideChart,
|
||||||
Values: vals,
|
Values: vals,
|
||||||
Release: releaseTemplateDataRelease{
|
Release: releaseTemplateDataRelease{
|
||||||
Name: release.Name,
|
Name: release.Name,
|
||||||
Chart: release.Chart,
|
Chart: release.Chart,
|
||||||
Namespace: release.Namespace,
|
ChartVersion: release.Version,
|
||||||
Labels: release.Labels,
|
Namespace: release.Namespace,
|
||||||
KubeContext: release.KubeContext,
|
Labels: release.Labels,
|
||||||
|
KubeContext: release.KubeContext,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
tmplData.StateValues = &tmplData.Values
|
tmplData.StateValues = &tmplData.Values
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"github.com/go-test/deep"
|
"github.com/go-test/deep"
|
||||||
|
|
||||||
"github.com/helmfile/helmfile/pkg/environment"
|
"github.com/helmfile/helmfile/pkg/environment"
|
||||||
|
"github.com/helmfile/helmfile/pkg/event"
|
||||||
"github.com/helmfile/helmfile/pkg/filesystem"
|
"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 {
|
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 is accessible as `.Namespace` from any non-values template executed by the renderer
|
||||||
Namespace string
|
Namespace string
|
||||||
// Values is accessible as `.Values` and it contains default state values overrode by environment values and override values.
|
// Values is accessible as `.Values` and it contains default state values overrode by environment values and override values.
|
||||||
Values map[string]any
|
Values map[string]interface{}
|
||||||
StateValues *map[string]any
|
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 := EnvironmentTemplateData{environment, namespace, values, nil}
|
||||||
d.StateValues = &d.Values
|
d.StateValues = &d.Values
|
||||||
return &d
|
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.
|
// It contains a subset of ReleaseSpec that is known to be useful to dynamically render values.
|
||||||
Release releaseTemplateDataRelease
|
Release releaseTemplateDataRelease
|
||||||
// Values is accessible as `.Values` and it contains default state values overrode by environment values and override values.
|
// Values is accessible as `.Values` and it contains default state values overrode by environment values and override values.
|
||||||
Values map[string]any
|
Values map[string]interface{}
|
||||||
StateValues *map[string]any
|
StateValues *map[string]interface{}
|
||||||
// KubeContext is HelmState.OverrideKubeContext.
|
// 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.
|
// 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.
|
// See releaseTemplateDataRelease.KubeContext for more information.
|
||||||
|
|
@ -64,6 +64,9 @@ type releaseTemplateDataRelease struct {
|
||||||
// Chart is ReleaseSpec.Chart
|
// Chart is ReleaseSpec.Chart
|
||||||
Chart string
|
Chart string
|
||||||
|
|
||||||
|
// ChartVersion is ReleaseSpec.Version, renamed to disambiguate from the templated version field
|
||||||
|
ChartVersion string
|
||||||
|
|
||||||
// KubeContext is ReleaseSpec.KubeContext
|
// KubeContext is ReleaseSpec.KubeContext
|
||||||
KubeContext string
|
KubeContext string
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue