mirror of
https://github.com/helmfile/helmfile.git
synced 2026-10-19 13:42:52 +02:00
Replace interface{} by any (#901)
Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
+8
-8
@@ -222,7 +222,7 @@ func (c *StateCreator) loadBases(envValues, overrodeEnv *environment.Environment
|
||||
|
||||
// nolint: unparam
|
||||
func (c *StateCreator) loadEnvValues(st *HelmState, name string, failOnMissingEnv bool, ctxEnv, overrode *environment.Environment) (*environment.Environment, error) {
|
||||
envVals := map[string]interface{}{}
|
||||
envVals := map[string]any{}
|
||||
envSpec, ok := st.Environments[name]
|
||||
if ok {
|
||||
var err error
|
||||
@@ -277,7 +277,7 @@ func (c *StateCreator) loadEnvValues(st *HelmState, name string, failOnMissingEn
|
||||
return newEnv, nil
|
||||
}
|
||||
|
||||
func (c *StateCreator) scatterGatherEnvSecretFiles(st *HelmState, envSecretFiles []string, envVals map[string]interface{}) error {
|
||||
func (c *StateCreator) scatterGatherEnvSecretFiles(st *HelmState, envSecretFiles []string, envVals map[string]any) error {
|
||||
var errs []error
|
||||
|
||||
helm := c.getHelm(st)
|
||||
@@ -286,7 +286,7 @@ func (c *StateCreator) scatterGatherEnvSecretFiles(st *HelmState, envSecretFiles
|
||||
|
||||
type secretResult struct {
|
||||
id int
|
||||
result map[string]interface{}
|
||||
result map[string]any
|
||||
err error
|
||||
path string
|
||||
}
|
||||
@@ -327,13 +327,13 @@ func (c *StateCreator) scatterGatherEnvSecretFiles(st *HelmState, envSecretFiles
|
||||
results <- secretResult{secret.id, nil, fmt.Errorf("failed to load environment secrets file \"%s\": %v", secret.path, err), secret.path}
|
||||
continue
|
||||
}
|
||||
m := map[string]interface{}{}
|
||||
m := map[string]any{}
|
||||
if err := yaml.Unmarshal(bytes, &m); err != nil {
|
||||
results <- secretResult{secret.id, nil, fmt.Errorf("failed to load environment secrets file \"%s\": %v", secret.path, err), secret.path}
|
||||
continue
|
||||
}
|
||||
// All the nested map key should be string. Otherwise we get strange errors due to that
|
||||
// mergo or reflect is unable to merge map[interface{}]interface{} with map[string]interface{} or vice versa.
|
||||
// mergo or reflect is unable to merge map[any]any with map[string]any or vice versa.
|
||||
// See https://github.com/roboll/helmfile/issues/677
|
||||
vals, err := maputil.CastKeysToStrings(m)
|
||||
if err != nil {
|
||||
@@ -373,10 +373,10 @@ func (c *StateCreator) scatterGatherEnvSecretFiles(st *HelmState, envSecretFiles
|
||||
return nil
|
||||
}
|
||||
|
||||
func (st *HelmState) loadValuesEntries(missingFileHandler *string, entries []interface{}, remote *remote.Remote, ctxEnv *environment.Environment, envName string) (map[string]interface{}, error) {
|
||||
var envVals map[string]interface{}
|
||||
func (st *HelmState) loadValuesEntries(missingFileHandler *string, entries []any, remote *remote.Remote, ctxEnv *environment.Environment, envName string) (map[string]any, error) {
|
||||
var envVals map[string]any
|
||||
|
||||
valuesEntries := append([]interface{}{}, entries...)
|
||||
valuesEntries := append([]any{}, entries...)
|
||||
ld := NewEnvironmentValuesLoader(st.storage(), st.fs, st.logger, remote)
|
||||
var err error
|
||||
envVals, err = ld.LoadEnvironmentValues(missingFileHandler, valuesEntries, ctxEnv, envName)
|
||||
|
||||
@@ -123,7 +123,7 @@ env: {{ .Environment.Name }}
|
||||
barTextFile := "/example/path/to/bar.txt"
|
||||
barTextContent := []byte("BAR")
|
||||
|
||||
expected := map[string]interface{}{
|
||||
expected := map[string]any{
|
||||
"foo": "FOO",
|
||||
"bar": "BAR",
|
||||
// As the file doesn't have an file extension ".gotmpl", this template expression should not be evaluated
|
||||
@@ -212,7 +212,7 @@ bar: {{ readFile "bar.txt" }}
|
||||
barTextFile := "/example/path/to/bar.txt"
|
||||
barTextContent := []byte("BAR")
|
||||
|
||||
expected := map[string]interface{}{
|
||||
expected := map[string]any{
|
||||
"foo": "FOO",
|
||||
"bar": "BAR",
|
||||
// As the file doesn't have an file extension ".gotmpl", this template expression should not be evaluated
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package state
|
||||
|
||||
type EnvironmentSpec struct {
|
||||
Values []interface{} `yaml:"values,omitempty"`
|
||||
Secrets []string `yaml:"secrets,omitempty"`
|
||||
KubeContext string `yaml:"kubeContext,omitempty"`
|
||||
Values []any `yaml:"values,omitempty"`
|
||||
Secrets []string `yaml:"secrets,omitempty"`
|
||||
KubeContext string `yaml:"kubeContext,omitempty"`
|
||||
|
||||
// MissingFileHandler instructs helmfile to fail when unable to find a environment values file listed
|
||||
// under `environments.NAME.values`.
|
||||
|
||||
@@ -34,11 +34,11 @@ func NewEnvironmentValuesLoader(storage *Storage, fs *filesystem.FileSystem, log
|
||||
}
|
||||
}
|
||||
|
||||
func (ld *EnvironmentValuesLoader) LoadEnvironmentValues(missingFileHandler *string, valuesEntries []interface{}, ctxEnv *environment.Environment, envName string) (map[string]interface{}, error) {
|
||||
result := map[string]interface{}{}
|
||||
func (ld *EnvironmentValuesLoader) LoadEnvironmentValues(missingFileHandler *string, valuesEntries []any, ctxEnv *environment.Environment, envName string) (map[string]any, error) {
|
||||
result := map[string]any{}
|
||||
|
||||
for _, entry := range valuesEntries {
|
||||
maps := []interface{}{}
|
||||
maps := []any{}
|
||||
|
||||
switch strOrMap := entry.(type) {
|
||||
case string:
|
||||
@@ -58,27 +58,27 @@ func (ld *EnvironmentValuesLoader) LoadEnvironmentValues(missingFileHandler *str
|
||||
env = *ctxEnv
|
||||
}
|
||||
|
||||
tmplData := NewEnvironmentTemplateData(env, "", map[string]interface{}{})
|
||||
tmplData := NewEnvironmentTemplateData(env, "", map[string]any{})
|
||||
r := tmpl.NewFileRenderer(ld.fs, filepath.Dir(f), tmplData)
|
||||
bytes, err := r.RenderToBytes(f)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to load environment values file \"%s\": %v", f, err)
|
||||
}
|
||||
m := map[string]interface{}{}
|
||||
m := map[string]any{}
|
||||
if err := yaml.Unmarshal(bytes, &m); err != nil {
|
||||
return nil, fmt.Errorf("failed to load environment values file \"%s\": %v\n\nOffending YAML:\n%s", f, err, bytes)
|
||||
}
|
||||
maps = append(maps, m)
|
||||
ld.logger.Debugf("envvals_loader: loaded %s:%v", strOrMap, m)
|
||||
}
|
||||
case map[interface{}]interface{}, map[string]interface{}:
|
||||
case map[any]any, map[string]any:
|
||||
maps = append(maps, strOrMap)
|
||||
default:
|
||||
return nil, fmt.Errorf("unexpected type of value: value=%v, type=%T", strOrMap, strOrMap)
|
||||
}
|
||||
for _, m := range maps {
|
||||
// All the nested map key should be string. Otherwise we get strange errors due to that
|
||||
// mergo or reflect is unable to merge map[interface{}]interface{} with map[string]interface{} or vice versa.
|
||||
// mergo or reflect is unable to merge map[any]any with map[string]any or vice versa.
|
||||
// See https://github.com/roboll/helmfile/issues/677
|
||||
vals, err := maputil.CastKeysToStrings(m)
|
||||
if err != nil {
|
||||
|
||||
@@ -29,13 +29,13 @@ func newLoader() *EnvironmentValuesLoader {
|
||||
func TestEnvValsLoad_SingleValuesFile(t *testing.T) {
|
||||
l := newLoader()
|
||||
|
||||
actual, err := l.LoadEnvironmentValues(nil, []interface{}{"testdata/values.5.yaml"}, nil, "")
|
||||
actual, err := l.LoadEnvironmentValues(nil, []any{"testdata/values.5.yaml"}, nil, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expected := map[string]interface{}{
|
||||
"affinity": map[string]interface{}{},
|
||||
expected := map[string]any{
|
||||
"affinity": map[string]any{},
|
||||
}
|
||||
|
||||
if diff := cmp.Diff(expected, actual); diff != "" {
|
||||
@@ -46,10 +46,10 @@ func TestEnvValsLoad_SingleValuesFile(t *testing.T) {
|
||||
func TestEnvValsLoad_EnvironmentNameFile(t *testing.T) {
|
||||
l := newLoader()
|
||||
|
||||
expected := map[string]interface{}{
|
||||
expected := map[string]any{
|
||||
"envName": "test",
|
||||
}
|
||||
emptyExpected := map[string]interface{}{
|
||||
emptyExpected := map[string]any{
|
||||
"envName": nil,
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ func TestEnvValsLoad_EnvironmentNameFile(t *testing.T) {
|
||||
name string
|
||||
env *environment.Environment
|
||||
envName string
|
||||
expected map[string]interface{}
|
||||
expected map[string]any
|
||||
}{
|
||||
{
|
||||
name: "env is nil but envName is not",
|
||||
@@ -87,7 +87,7 @@ func TestEnvValsLoad_EnvironmentNameFile(t *testing.T) {
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
actual, err := l.LoadEnvironmentValues(nil, []interface{}{"testdata/values.6.yaml.gotmpl"}, tt.env, tt.envName)
|
||||
actual, err := l.LoadEnvironmentValues(nil, []any{"testdata/values.6.yaml.gotmpl"}, tt.env, tt.envName)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -103,12 +103,12 @@ func TestEnvValsLoad_EnvironmentNameFile(t *testing.T) {
|
||||
func TestEnvValsLoad_SingleValuesFileRemote(t *testing.T) {
|
||||
l := newLoader()
|
||||
|
||||
actual, err := l.LoadEnvironmentValues(nil, []interface{}{"git::https://github.com/helm/helm.git@cmd/helm/testdata/output/values.yaml?ref=v3.8.1"}, nil, "")
|
||||
actual, err := l.LoadEnvironmentValues(nil, []any{"git::https://github.com/helm/helm.git@cmd/helm/testdata/output/values.yaml?ref=v3.8.1"}, nil, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expected := map[string]interface{}{
|
||||
expected := map[string]any{
|
||||
"name": string("value"),
|
||||
}
|
||||
|
||||
@@ -121,14 +121,14 @@ func TestEnvValsLoad_SingleValuesFileRemote(t *testing.T) {
|
||||
func TestEnvValsLoad_OverwriteNilValue_Issue1150(t *testing.T) {
|
||||
l := newLoader()
|
||||
|
||||
actual, err := l.LoadEnvironmentValues(nil, []interface{}{"testdata/values.1.yaml", "testdata/values.2.yaml"}, nil, "")
|
||||
actual, err := l.LoadEnvironmentValues(nil, []any{"testdata/values.1.yaml", "testdata/values.2.yaml"}, nil, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expected := map[string]interface{}{
|
||||
"components": map[string]interface{}{
|
||||
"etcd-operator": map[string]interface{}{
|
||||
expected := map[string]any{
|
||||
"components": map[string]any{
|
||||
"etcd-operator": map[string]any{
|
||||
"version": "0.10.3",
|
||||
},
|
||||
},
|
||||
@@ -143,14 +143,14 @@ func TestEnvValsLoad_OverwriteNilValue_Issue1150(t *testing.T) {
|
||||
func TestEnvValsLoad_OverwriteWithNilValue_Issue1154(t *testing.T) {
|
||||
l := newLoader()
|
||||
|
||||
actual, err := l.LoadEnvironmentValues(nil, []interface{}{"testdata/values.3.yaml", "testdata/values.4.yaml"}, nil, "")
|
||||
actual, err := l.LoadEnvironmentValues(nil, []any{"testdata/values.3.yaml", "testdata/values.4.yaml"}, nil, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expected := map[string]interface{}{
|
||||
"components": map[string]interface{}{
|
||||
"etcd-operator": map[string]interface{}{
|
||||
expected := map[string]any{
|
||||
"components": map[string]any{
|
||||
"etcd-operator": map[string]any{
|
||||
"version": "0.10.3",
|
||||
},
|
||||
"prometheus": nil,
|
||||
@@ -166,14 +166,14 @@ func TestEnvValsLoad_OverwriteWithNilValue_Issue1154(t *testing.T) {
|
||||
func TestEnvValsLoad_OverwriteEmptyValue_Issue1168(t *testing.T) {
|
||||
l := newLoader()
|
||||
|
||||
actual, err := l.LoadEnvironmentValues(nil, []interface{}{"testdata/issues/1168/addons.yaml", "testdata/issues/1168/addons2.yaml"}, nil, "")
|
||||
actual, err := l.LoadEnvironmentValues(nil, []any{"testdata/issues/1168/addons.yaml", "testdata/issues/1168/addons2.yaml"}, nil, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expected := map[string]interface{}{
|
||||
"addons": map[string]interface{}{
|
||||
"mychart": map[string]interface{}{
|
||||
expected := map[string]any{
|
||||
"addons": map[string]any{
|
||||
"mychart": map[string]any{
|
||||
"skip": false,
|
||||
"name": "mychart",
|
||||
"namespace": "kube-system",
|
||||
|
||||
@@ -88,7 +88,7 @@ func (r ReleaseSpec) ExecuteTemplateExpressions(renderer *tmpl.FileRenderer) (*R
|
||||
if len(result.ValuesTemplate) > 0 {
|
||||
for i, t := range result.ValuesTemplate {
|
||||
switch ts := t.(type) {
|
||||
case map[interface{}]interface{}, map[string]interface{}:
|
||||
case map[any]any, map[string]any:
|
||||
serialized, err := yaml.Marshal(ts)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed executing template expressions in release \"%s\".values[%d] = \"%v\": %v", r.Name, i, ts, err)
|
||||
@@ -99,7 +99,7 @@ func (r ReleaseSpec) ExecuteTemplateExpressions(renderer *tmpl.FileRenderer) (*R
|
||||
return nil, fmt.Errorf("failed executing template expressions in release \"%s\".values[%d] = \"%v\": %v", r.Name, i, string(serialized), err)
|
||||
}
|
||||
|
||||
var deserialized map[string]interface{}
|
||||
var deserialized map[string]any
|
||||
|
||||
if err := yaml.Unmarshal(s.Bytes(), &deserialized); err != nil {
|
||||
return nil, fmt.Errorf("failed executing template expressions in release \"%s\".values[%d] = \"%v\": %v", r.Name, i, ts, err)
|
||||
@@ -114,7 +114,7 @@ func (r ReleaseSpec) ExecuteTemplateExpressions(renderer *tmpl.FileRenderer) (*R
|
||||
}
|
||||
}
|
||||
|
||||
var newvals []interface{}
|
||||
var newvals []any
|
||||
newvals = append(newvals, result.ValuesTemplate...)
|
||||
result.Values = append(newvals, result.Values...)
|
||||
}
|
||||
@@ -127,7 +127,7 @@ func (r ReleaseSpec) ExecuteTemplateExpressions(renderer *tmpl.FileRenderer) (*R
|
||||
return nil, fmt.Errorf("failed executing template expressions in release \"%s\".values[%d] = \"%s\": %v", r.Name, i, ts, err)
|
||||
}
|
||||
result.Values[i] = s.String()
|
||||
case map[interface{}]interface{}:
|
||||
case map[any]any:
|
||||
m, err := maputil.CastKeysToStrings(ts)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed executing template expressions in release \"%s\".values[%d] = \"%s\": %v", r.Name, i, ts, err)
|
||||
|
||||
@@ -11,13 +11,13 @@ import (
|
||||
)
|
||||
|
||||
func TestExecuteTemplateExpressions(t *testing.T) {
|
||||
render := tmpl.NewFileRenderer(filesystem.DefaultFileSystem(), "", map[string]interface{}{
|
||||
"Values": map[string]interface{}{
|
||||
"foo": map[string]interface{}{
|
||||
render := tmpl.NewFileRenderer(filesystem.DefaultFileSystem(), "", map[string]any{
|
||||
"Values": map[string]any{
|
||||
"foo": map[string]any{
|
||||
"releaseName": "foo",
|
||||
},
|
||||
},
|
||||
"Release": map[string]interface{}{
|
||||
"Release": map[string]any{
|
||||
"Name": "foo",
|
||||
},
|
||||
})
|
||||
@@ -32,8 +32,8 @@ func TestExecuteTemplateExpressions(t *testing.T) {
|
||||
Name: "foo",
|
||||
Chart: "bar",
|
||||
Namespace: "baz",
|
||||
ValuesTemplate: []interface{}{
|
||||
map[string]interface{}{
|
||||
ValuesTemplate: []any{
|
||||
map[string]any{
|
||||
"fullnameOverride": "{{ .Values | get (printf \"%s.releaseName\" .Release.Name) .Release.Name }}",
|
||||
},
|
||||
},
|
||||
@@ -41,5 +41,5 @@ func TestExecuteTemplateExpressions(t *testing.T) {
|
||||
result, err := rs.ExecuteTemplateExpressions(render)
|
||||
|
||||
require.NoErrorf(t, err, "failed to execute template expressions: %v", err)
|
||||
require.Equalf(t, result.ValuesTemplate[0].(map[string]interface{})["fullnameOverride"], "foo", "failed to execute template expressions")
|
||||
require.Equalf(t, result.ValuesTemplate[0].(map[string]any)["fullnameOverride"], "foo", "failed to execute template expressions")
|
||||
}
|
||||
|
||||
+42
-42
@@ -48,7 +48,7 @@ type ReleaseSetSpec struct {
|
||||
DefaultHelmBinary string `yaml:"helmBinary,omitempty"`
|
||||
|
||||
// DefaultValues is the default values to be overrode by environment values and command-line overrides
|
||||
DefaultValues []interface{} `yaml:"values,omitempty"`
|
||||
DefaultValues []any `yaml:"values,omitempty"`
|
||||
|
||||
Environments map[string]EnvironmentSpec `yaml:"environments,omitempty"`
|
||||
|
||||
@@ -101,8 +101,8 @@ type MissingFileHandlerConfig struct {
|
||||
// helmStateAlias is helm state alias
|
||||
type helmStateAlias HelmState
|
||||
|
||||
func (hs *HelmState) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
helmStateInfo := make(map[string]interface{})
|
||||
func (hs *HelmState) UnmarshalYAML(unmarshal func(any) error) error {
|
||||
helmStateInfo := make(map[string]any)
|
||||
if err := unmarshal(&helmStateInfo); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -134,7 +134,7 @@ type HelmState struct {
|
||||
// RenderedValues is the helmfile-wide values that is `.Values`
|
||||
// which is accessible from within the whole helmfile go template.
|
||||
// Note that this is usually computed by DesiredStateLoader from ReleaseSetSpec.Env
|
||||
RenderedValues map[string]interface{}
|
||||
RenderedValues map[string]any
|
||||
}
|
||||
|
||||
// SubHelmfileSpec defines the subhelmfile path and options
|
||||
@@ -151,7 +151,7 @@ type SubHelmfileSpec struct {
|
||||
|
||||
// SubhelmfileEnvironmentSpec is the environment spec for a subhelmfile
|
||||
type SubhelmfileEnvironmentSpec struct {
|
||||
OverrideValues []interface{} `yaml:"values,omitempty"`
|
||||
OverrideValues []any `yaml:"values,omitempty"`
|
||||
}
|
||||
|
||||
// HelmSpec to defines helmDefault values
|
||||
@@ -293,13 +293,13 @@ type ReleaseSpec struct {
|
||||
Name string `yaml:"name,omitempty"`
|
||||
Namespace string `yaml:"namespace,omitempty"`
|
||||
Labels map[string]string `yaml:"labels,omitempty"`
|
||||
Values []interface{} `yaml:"values,omitempty"`
|
||||
Secrets []interface{} `yaml:"secrets,omitempty"`
|
||||
Values []any `yaml:"values,omitempty"`
|
||||
Secrets []any `yaml:"secrets,omitempty"`
|
||||
SetValues []SetValue `yaml:"set,omitempty"`
|
||||
duration time.Duration
|
||||
|
||||
ValuesTemplate []interface{} `yaml:"valuesTemplate,omitempty"`
|
||||
SetValuesTemplate []SetValue `yaml:"setTemplate,omitempty"`
|
||||
ValuesTemplate []any `yaml:"valuesTemplate,omitempty"`
|
||||
SetValuesTemplate []SetValue `yaml:"setTemplate,omitempty"`
|
||||
|
||||
// Capabilities.APIVersions
|
||||
ApiVersions []string `yaml:"apiVersions,omitempty"`
|
||||
@@ -323,17 +323,17 @@ type ReleaseSpec struct {
|
||||
InstalledTemplate *string `yaml:"installedTemplate,omitempty"`
|
||||
|
||||
// These settings requires helm-x integration to work
|
||||
Dependencies []Dependency `yaml:"dependencies,omitempty"`
|
||||
JSONPatches []interface{} `yaml:"jsonPatches,omitempty"`
|
||||
StrategicMergePatches []interface{} `yaml:"strategicMergePatches,omitempty"`
|
||||
Dependencies []Dependency `yaml:"dependencies,omitempty"`
|
||||
JSONPatches []any `yaml:"jsonPatches,omitempty"`
|
||||
StrategicMergePatches []any `yaml:"strategicMergePatches,omitempty"`
|
||||
|
||||
// Transformers is the list of Kustomize transformers
|
||||
//
|
||||
// Each item can be a path to a YAML or go template file, or an embedded transformer declaration as a YAML hash.
|
||||
// It's often used to add common labels and annotations to your resources.
|
||||
// See https://github.com/kubernetes-sigs/kustomize/blob/master/examples/configureBuiltinPlugin.md#configuring-the-builtin-plugins-instead for more information.
|
||||
Transformers []interface{} `yaml:"transformers,omitempty"`
|
||||
Adopt []string `yaml:"adopt,omitempty"`
|
||||
Transformers []any `yaml:"transformers,omitempty"`
|
||||
Adopt []string `yaml:"adopt,omitempty"`
|
||||
|
||||
//version of the chart that has really been installed cause desired version may be fuzzy (~2.0.0)
|
||||
installedVersion string
|
||||
@@ -367,7 +367,7 @@ type ReleaseSpec struct {
|
||||
Inherit Inherits `yaml:"inherit,omitempty"`
|
||||
}
|
||||
|
||||
func (r *Inherits) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
func (r *Inherits) UnmarshalYAML(unmarshal func(any) error) error {
|
||||
var v0151 []Inherit
|
||||
if err := unmarshal(&v0151); err != nil {
|
||||
var v0150 Inherit
|
||||
@@ -1561,10 +1561,10 @@ func (st *HelmState) WriteReleasesValues(helm helmexec.Interface, additionalValu
|
||||
|
||||
st.logger.Infof("Writing values file %s", outputValuesFile)
|
||||
|
||||
merged := map[string]interface{}{}
|
||||
merged := map[string]any{}
|
||||
|
||||
for _, f := range append(generatedFiles, additionalValues...) {
|
||||
src := map[string]interface{}{}
|
||||
src := map[string]any{}
|
||||
|
||||
srcBytes, err := st.fs.ReadFile(f)
|
||||
if err != nil {
|
||||
@@ -2152,7 +2152,7 @@ func (st *HelmState) SelectReleases(includeTransitiveNeeds bool) ([]Release, err
|
||||
return rs, nil
|
||||
}
|
||||
|
||||
func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabels map[string]string, values map[string]interface{}, includeTransitiveNeeds bool) ([]Release, error) {
|
||||
func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabels map[string]string, values map[string]any, includeTransitiveNeeds bool) ([]Release, error) {
|
||||
var filteredReleases []Release
|
||||
filters := []ReleaseFilter{}
|
||||
for _, label := range selectors {
|
||||
@@ -2203,7 +2203,7 @@ func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabe
|
||||
return filteredReleases, nil
|
||||
}
|
||||
|
||||
func ConditionEnabled(r ReleaseSpec, values map[string]interface{}) (bool, error) {
|
||||
func ConditionEnabled(r ReleaseSpec, values map[string]any) (bool, error) {
|
||||
var conditionMatch bool
|
||||
if len(r.Condition) == 0 {
|
||||
return true, nil
|
||||
@@ -2216,7 +2216,7 @@ func ConditionEnabled(r ReleaseSpec, values map[string]interface{}) (bool, error
|
||||
if v == nil {
|
||||
panic(fmt.Sprintf("environment values field '%s' is nil", conditionSplit[0]))
|
||||
}
|
||||
if v.(map[string]interface{})["enabled"] == true {
|
||||
if v.(map[string]any)["enabled"] == true {
|
||||
conditionMatch = true
|
||||
}
|
||||
} else {
|
||||
@@ -2308,7 +2308,7 @@ func (st *HelmState) triggerGlobalReleaseEvent(evt string, evtErr error, helmfil
|
||||
Logger: st.logger,
|
||||
Fs: st.fs,
|
||||
}
|
||||
data := map[string]interface{}{
|
||||
data := map[string]any{
|
||||
"HelmfileCommand": helmfileCmd,
|
||||
}
|
||||
return bus.Trigger(evt, evtErr, data)
|
||||
@@ -2346,7 +2346,7 @@ func (st *HelmState) triggerReleaseEvent(evt string, evtErr error, r *ReleaseSpe
|
||||
Fs: st.fs,
|
||||
}
|
||||
vals := st.Values()
|
||||
data := map[string]interface{}{
|
||||
data := map[string]any{
|
||||
"Values": vals,
|
||||
"Release": r,
|
||||
"HelmfileCommand": helmfileCmd,
|
||||
@@ -2730,7 +2730,7 @@ func (st *HelmState) RenderReleaseValuesFileToBytes(release *ReleaseSpec, path s
|
||||
}
|
||||
|
||||
if match {
|
||||
var rawYaml map[string]interface{}
|
||||
var rawYaml map[string]any
|
||||
|
||||
if err := yaml.Unmarshal(rawBytes, &rawYaml); err != nil {
|
||||
return nil, err
|
||||
@@ -2823,7 +2823,7 @@ func (c MissingFileHandlerConfig) resolveFileOptions() []resolveFileOption {
|
||||
}
|
||||
}
|
||||
|
||||
func (st *HelmState) generateTemporaryReleaseValuesFiles(release *ReleaseSpec, values []interface{}, missingFileHandler *string) ([]string, error) {
|
||||
func (st *HelmState) generateTemporaryReleaseValuesFiles(release *ReleaseSpec, values []any, missingFileHandler *string) ([]string, error) {
|
||||
generatedFiles := []string{}
|
||||
|
||||
for _, value := range values {
|
||||
@@ -2862,7 +2862,7 @@ func (st *HelmState) generateTemporaryReleaseValuesFiles(release *ReleaseSpec, v
|
||||
st.logger.Debugf("Successfully generated the value file at %s. produced:\n%s", path, string(yamlBytes))
|
||||
|
||||
generatedFiles = append(generatedFiles, valfile.Name())
|
||||
case map[interface{}]interface{}, map[string]interface{}:
|
||||
case map[any]any, map[string]any:
|
||||
valfile, err := createTempValuesFile(release, typedValue)
|
||||
if err != nil {
|
||||
return generatedFiles, err
|
||||
@@ -2889,7 +2889,7 @@ func (st *HelmState) generateTemporaryReleaseValuesFiles(release *ReleaseSpec, v
|
||||
}
|
||||
|
||||
func (st *HelmState) generateVanillaValuesFiles(release *ReleaseSpec) ([]string, error) {
|
||||
values := []interface{}{}
|
||||
values := []any{}
|
||||
for _, v := range release.Values {
|
||||
switch typedValue := v.(type) {
|
||||
case string:
|
||||
@@ -2900,12 +2900,12 @@ func (st *HelmState) generateVanillaValuesFiles(release *ReleaseSpec) ([]string,
|
||||
}
|
||||
}
|
||||
|
||||
valuesMapSecretsRendered, err := st.valsRuntime.Eval(map[string]interface{}{"values": values})
|
||||
valuesMapSecretsRendered, err := st.valsRuntime.Eval(map[string]any{"values": values})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
valuesSecretsRendered, ok := valuesMapSecretsRendered["values"].([]interface{})
|
||||
valuesSecretsRendered, ok := valuesMapSecretsRendered["values"].([]any)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("Failed to render values in %s for release %s: type %T isn't supported", st.FilePath, release.Name, valuesMapSecretsRendered["values"])
|
||||
}
|
||||
@@ -2919,7 +2919,7 @@ func (st *HelmState) generateVanillaValuesFiles(release *ReleaseSpec) ([]string,
|
||||
}
|
||||
|
||||
func (st *HelmState) generateSecretValuesFiles(helm helmexec.Interface, release *ReleaseSpec, workerIndex int) ([]string, error) {
|
||||
var generatedDecryptedFiles []interface{}
|
||||
var generatedDecryptedFiles []any
|
||||
|
||||
for _, v := range release.Secrets {
|
||||
var (
|
||||
@@ -3091,12 +3091,12 @@ func (st *HelmState) setFlags(setValues []SetValue) ([]string, error) {
|
||||
func renderValsSecrets(e vals.Evaluator, input ...string) ([]string, error) {
|
||||
output := make([]string, len(input))
|
||||
if len(input) > 0 {
|
||||
mapRendered, err := e.Eval(map[string]interface{}{"values": input})
|
||||
mapRendered, err := e.Eval(map[string]any{"values": input})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
rendered, ok := mapRendered["values"].([]interface{})
|
||||
rendered, ok := mapRendered["values"].([]any)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("type %T isn't supported", mapRendered["values"])
|
||||
}
|
||||
@@ -3165,12 +3165,12 @@ func escape(value string) string {
|
||||
|
||||
// MarshalYAML will ensure we correctly marshal SubHelmfileSpec structure correctly so it can be unmarshalled at some
|
||||
// future time
|
||||
func (p SubHelmfileSpec) MarshalYAML() (interface{}, error) {
|
||||
func (p SubHelmfileSpec) MarshalYAML() (any, error) {
|
||||
type SubHelmfileSpecTmp struct {
|
||||
Path string `yaml:"path,omitempty"`
|
||||
Selectors []string `yaml:"selectors,omitempty"`
|
||||
SelectorsInherited bool `yaml:"selectorsInherited,omitempty"`
|
||||
OverrideValues []interface{} `yaml:"values,omitempty"`
|
||||
Path string `yaml:"path,omitempty"`
|
||||
Selectors []string `yaml:"selectors,omitempty"`
|
||||
SelectorsInherited bool `yaml:"selectorsInherited,omitempty"`
|
||||
OverrideValues []any `yaml:"values,omitempty"`
|
||||
}
|
||||
return &SubHelmfileSpecTmp{
|
||||
Path: p.Path,
|
||||
@@ -3182,8 +3182,8 @@ func (p SubHelmfileSpec) MarshalYAML() (interface{}, error) {
|
||||
|
||||
// UnmarshalYAML will unmarshal the helmfile yaml section and fill the SubHelmfileSpec structure
|
||||
// this is required go-yto keep allowing string scalar for defining helmfile
|
||||
func (hf *SubHelmfileSpec) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
var tmp interface{}
|
||||
func (hf *SubHelmfileSpec) UnmarshalYAML(unmarshal func(any) error) error {
|
||||
var tmp any
|
||||
if err := unmarshal(&tmp); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -3191,7 +3191,7 @@ func (hf *SubHelmfileSpec) UnmarshalYAML(unmarshal func(interface{}) error) erro
|
||||
switch i := tmp.(type) {
|
||||
case string: // single path definition without sub items, legacy sub helmfile definition
|
||||
hf.Path = i
|
||||
case map[interface{}]interface{}, map[string]interface{}: // helmfile path with sub section
|
||||
case map[any]any, map[string]any: // helmfile path with sub section
|
||||
var subHelmfileSpecTmp struct {
|
||||
Path string `yaml:"path"`
|
||||
Selectors []string `yaml:"selectors"`
|
||||
@@ -3391,13 +3391,13 @@ func (st *HelmState) ToYaml() (string, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func (st *HelmState) LoadYAMLForEmbedding(release *ReleaseSpec, entries []interface{}, missingFileHandler *string, pathPrefix string) ([]interface{}, error) {
|
||||
var result []interface{}
|
||||
func (st *HelmState) LoadYAMLForEmbedding(release *ReleaseSpec, entries []any, missingFileHandler *string, pathPrefix string) ([]any, error) {
|
||||
var result []any
|
||||
|
||||
for _, v := range entries {
|
||||
switch t := v.(type) {
|
||||
case string:
|
||||
var values map[string]interface{}
|
||||
var values map[string]any
|
||||
|
||||
paths, skip, err := st.storage().resolveFile(missingFileHandler, "values", pathPrefix+t, st.MissingFileHandlerConfig.resolveFileOptions()...)
|
||||
if err != nil {
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/helmfile/helmfile/pkg/yaml"
|
||||
)
|
||||
|
||||
func (st *HelmState) Values() map[string]interface{} {
|
||||
func (st *HelmState) Values() map[string]any {
|
||||
if st.RenderedValues == nil {
|
||||
panic("[bug] RenderedValues is nil")
|
||||
}
|
||||
@@ -20,7 +20,7 @@ func (st *HelmState) Values() map[string]interface{} {
|
||||
return st.RenderedValues
|
||||
}
|
||||
|
||||
func (st *HelmState) createReleaseTemplateData(release *ReleaseSpec, vals map[string]interface{}) releaseTemplateData {
|
||||
func (st *HelmState) createReleaseTemplateData(release *ReleaseSpec, vals map[string]any) releaseTemplateData {
|
||||
tmplData := releaseTemplateData{
|
||||
Environment: st.Env,
|
||||
KubeContext: st.OverrideKubeContext,
|
||||
|
||||
@@ -31,8 +31,8 @@ func TestHelmState_executeTemplates(t *testing.T) {
|
||||
Version: "{{ .Release.Name }}-0.1",
|
||||
Name: "test-app",
|
||||
Namespace: "test-namespace-{{ .Release.Name }}",
|
||||
ValuesTemplate: []interface{}{"config/{{ .Environment.Name }}/{{ .Release.Name }}/values.yaml"},
|
||||
Secrets: []interface{}{"config/{{ .Environment.Name }}/{{ .Release.Name }}/secrets.yaml"},
|
||||
ValuesTemplate: []any{"config/{{ .Environment.Name }}/{{ .Release.Name }}/values.yaml"},
|
||||
Secrets: []any{"config/{{ .Environment.Name }}/{{ .Release.Name }}/secrets.yaml"},
|
||||
Labels: map[string]string{"id": "{{ .Release.Name }}"},
|
||||
},
|
||||
want: ReleaseSpec{
|
||||
@@ -40,8 +40,8 @@ func TestHelmState_executeTemplates(t *testing.T) {
|
||||
Version: "test-app-0.1",
|
||||
Name: "test-app",
|
||||
Namespace: "test-namespace-test-app",
|
||||
Values: []interface{}{"config/test_env/test-app/values.yaml"},
|
||||
Secrets: []interface{}{"config/test_env/test-app/secrets.yaml"},
|
||||
Values: []any{"config/test_env/test-app/values.yaml"},
|
||||
Secrets: []any{"config/test_env/test-app/secrets.yaml"},
|
||||
Labels: map[string]string{"id": "test-app"},
|
||||
},
|
||||
},
|
||||
@@ -112,14 +112,14 @@ func TestHelmState_executeTemplates(t *testing.T) {
|
||||
Verify: nil,
|
||||
Name: "app",
|
||||
Namespace: "dev",
|
||||
ValuesTemplate: []interface{}{map[string]string{"key": "{{ .Release.Name }}-val0"}},
|
||||
ValuesTemplate: []any{map[string]string{"key": "{{ .Release.Name }}-val0"}},
|
||||
},
|
||||
want: ReleaseSpec{
|
||||
Chart: "test-charts/chart",
|
||||
Verify: nil,
|
||||
Name: "app",
|
||||
Namespace: "dev",
|
||||
Values: []interface{}{map[string]interface{}{"key": "app-val0"}},
|
||||
Values: []any{map[string]any{"key": "app-val0"}},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -140,7 +140,7 @@ func TestHelmState_executeTemplates(t *testing.T) {
|
||||
tt.input,
|
||||
},
|
||||
},
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
|
||||
r, err := state.ExecuteTemplates()
|
||||
@@ -237,7 +237,7 @@ func TestHelmState_recursiveRefsTemplates(t *testing.T) {
|
||||
tt.input,
|
||||
},
|
||||
},
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
|
||||
r, err := state.ExecuteTemplates()
|
||||
|
||||
+32
-32
@@ -1350,7 +1350,7 @@ func TestHelmState_SyncReleases(t *testing.T) {
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
if errs := state.SyncReleases(&AffectedReleases{}, tt.helm, []string{}, 1); len(errs) > 0 {
|
||||
if len(errs) != len(tt.wantErrorMsgs) {
|
||||
@@ -1418,7 +1418,7 @@ func TestHelmState_SyncReleases_MissingValuesFileForUndesiredRelease(t *testing.
|
||||
release: ReleaseSpec{
|
||||
Name: "foo",
|
||||
Chart: "../../foo-bar",
|
||||
Values: []interface{}{"noexistent.values.yaml"},
|
||||
Values: []any{"noexistent.values.yaml"},
|
||||
},
|
||||
listResult: ``,
|
||||
expectedError: `failed processing release foo: values file matching "noexistent.values.yaml" does not exist in "."`,
|
||||
@@ -1428,7 +1428,7 @@ func TestHelmState_SyncReleases_MissingValuesFileForUndesiredRelease(t *testing.
|
||||
release: ReleaseSpec{
|
||||
Name: "foo",
|
||||
Chart: "../../foo-bar",
|
||||
Values: []interface{}{"noexistent.values.yaml"},
|
||||
Values: []any{"noexistent.values.yaml"},
|
||||
},
|
||||
listResult: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
|
||||
foo 1 Wed Apr 17 17:39:04 2019 DEPLOYED foo-bar-2.0.4 0.1.0 default`,
|
||||
@@ -1439,7 +1439,7 @@ func TestHelmState_SyncReleases_MissingValuesFileForUndesiredRelease(t *testing.
|
||||
release: ReleaseSpec{
|
||||
Name: "foo",
|
||||
Chart: "../../foo-bar",
|
||||
Values: []interface{}{"noexistent.values.yaml"},
|
||||
Values: []any{"noexistent.values.yaml"},
|
||||
Installed: &no,
|
||||
},
|
||||
listResult: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
|
||||
@@ -1457,7 +1457,7 @@ func TestHelmState_SyncReleases_MissingValuesFileForUndesiredRelease(t *testing.
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
fs := testhelper.NewTestFs(map[string]string{})
|
||||
state = injectFs(state, fs)
|
||||
@@ -1604,7 +1604,7 @@ func TestHelmState_SyncReleasesAffectedRealeases(t *testing.T) {
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
helm := &exectest.Helm{
|
||||
Lists: map[exectest.ListKey]string{},
|
||||
@@ -1717,7 +1717,7 @@ func TestGetDeployedVersion(t *testing.T) {
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
|
||||
helm := &exectest.Helm{
|
||||
@@ -1836,7 +1836,7 @@ func TestHelmState_DiffReleases(t *testing.T) {
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
_, errs := state.DiffReleases(tt.helm, []string{}, 1, false, false, false, []string{}, false, false, false, false, false)
|
||||
if len(errs) > 0 {
|
||||
@@ -1879,7 +1879,7 @@ func TestHelmState_DiffFlags(t *testing.T) {
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
for j := range tt.releases {
|
||||
flags, _, errs := state.flagsForDiff(tt.helm, &tt.releases[j], false, 1, nil)
|
||||
@@ -1918,8 +1918,8 @@ func TestHelmState_SyncReleasesCleanup(t *testing.T) {
|
||||
{
|
||||
Name: "releaseName",
|
||||
Chart: "foo",
|
||||
Values: []interface{}{
|
||||
map[interface{}]interface{}{
|
||||
Values: []any{
|
||||
map[any]any{
|
||||
"someList": "a,b,c",
|
||||
},
|
||||
},
|
||||
@@ -1934,8 +1934,8 @@ func TestHelmState_SyncReleasesCleanup(t *testing.T) {
|
||||
{
|
||||
Name: "releaseName",
|
||||
Chart: "foo",
|
||||
Values: []interface{}{
|
||||
map[interface{}]interface{}{
|
||||
Values: []any{
|
||||
map[any]any{
|
||||
"someList": "a,b,c",
|
||||
},
|
||||
"someFile",
|
||||
@@ -1956,7 +1956,7 @@ func TestHelmState_SyncReleasesCleanup(t *testing.T) {
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
testfs := testhelper.NewTestFs(map[string]string{
|
||||
"/path/to/someFile": `foo: FOO`,
|
||||
@@ -2005,8 +2005,8 @@ func TestHelmState_DiffReleasesCleanup(t *testing.T) {
|
||||
{
|
||||
Name: "releaseName",
|
||||
Chart: "foo",
|
||||
Values: []interface{}{
|
||||
map[interface{}]interface{}{
|
||||
Values: []any{
|
||||
map[any]any{
|
||||
"someList": "a,b,c",
|
||||
},
|
||||
},
|
||||
@@ -2021,8 +2021,8 @@ func TestHelmState_DiffReleasesCleanup(t *testing.T) {
|
||||
{
|
||||
Name: "releaseName",
|
||||
Chart: "foo",
|
||||
Values: []interface{}{
|
||||
map[interface{}]interface{}{
|
||||
Values: []any{
|
||||
map[any]any{
|
||||
"someList": "a,b,c",
|
||||
},
|
||||
"someFile",
|
||||
@@ -2043,7 +2043,7 @@ func TestHelmState_DiffReleasesCleanup(t *testing.T) {
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
testfs := testhelper.NewTestFs(map[string]string{
|
||||
"/path/to/someFile": `foo: bar
|
||||
@@ -2301,7 +2301,7 @@ func TestHelmState_ReleaseStatuses(t *testing.T) {
|
||||
releases: []ReleaseSpec{
|
||||
{
|
||||
Name: "error",
|
||||
Values: []interface{}{
|
||||
Values: []any{
|
||||
"foo.yaml",
|
||||
},
|
||||
},
|
||||
@@ -2314,7 +2314,7 @@ func TestHelmState_ReleaseStatuses(t *testing.T) {
|
||||
releases: []ReleaseSpec{
|
||||
{
|
||||
Name: "error",
|
||||
Values: []interface{}{
|
||||
Values: []any{
|
||||
"foo.yaml",
|
||||
},
|
||||
Installed: boolValue(false),
|
||||
@@ -2425,7 +2425,7 @@ func TestConditionEnabled(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
condition string
|
||||
values map[string]interface{}
|
||||
values map[string]any
|
||||
want bool
|
||||
wantErr bool
|
||||
wantPanic bool
|
||||
@@ -2433,8 +2433,8 @@ func TestConditionEnabled(t *testing.T) {
|
||||
{
|
||||
name: "enabled",
|
||||
condition: "foo.enabled",
|
||||
values: map[string]interface{}{
|
||||
"foo": map[string]interface{}{
|
||||
values: map[string]any{
|
||||
"foo": map[string]any{
|
||||
"enabled": true,
|
||||
},
|
||||
},
|
||||
@@ -2443,8 +2443,8 @@ func TestConditionEnabled(t *testing.T) {
|
||||
{
|
||||
name: "disabled",
|
||||
condition: "foo.enabled",
|
||||
values: map[string]interface{}{
|
||||
"foo": map[string]interface{}{
|
||||
values: map[string]any{
|
||||
"foo": map[string]any{
|
||||
"enabled": false,
|
||||
},
|
||||
},
|
||||
@@ -2453,8 +2453,8 @@ func TestConditionEnabled(t *testing.T) {
|
||||
{
|
||||
name: "missing enabled",
|
||||
condition: "foo.enabled",
|
||||
values: map[string]interface{}{
|
||||
"foo": map[string]interface{}{
|
||||
values: map[string]any{
|
||||
"foo": map[string]any{
|
||||
"something else": false,
|
||||
},
|
||||
},
|
||||
@@ -2463,7 +2463,7 @@ func TestConditionEnabled(t *testing.T) {
|
||||
{
|
||||
name: "foo nil",
|
||||
condition: "foo.enabled",
|
||||
values: map[string]interface{}{
|
||||
values: map[string]any{
|
||||
"foo": nil,
|
||||
},
|
||||
wantPanic: true,
|
||||
@@ -2471,7 +2471,7 @@ func TestConditionEnabled(t *testing.T) {
|
||||
{
|
||||
name: "foo missing",
|
||||
condition: "foo.enabled",
|
||||
values: map[string]interface{}{},
|
||||
values: map[string]any{},
|
||||
wantPanic: true,
|
||||
},
|
||||
{
|
||||
@@ -2564,7 +2564,7 @@ func TestHelmState_NoReleaseMatched(t *testing.T) {
|
||||
Releases: releases,
|
||||
},
|
||||
logger: logger,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
state.Selectors = []string{tt.labels}
|
||||
errs := state.FilterReleases(false)
|
||||
@@ -2725,7 +2725,7 @@ func TestHelmState_Delete(t *testing.T) {
|
||||
Releases: releases,
|
||||
},
|
||||
logger: logger,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
RenderedValues: map[string]any{},
|
||||
}
|
||||
helm := &exectest.Helm{
|
||||
Lists: map[exectest.ListKey]string{},
|
||||
|
||||
+5
-5
@@ -14,7 +14,7 @@ import (
|
||||
"github.com/helmfile/helmfile/pkg/envvar"
|
||||
)
|
||||
|
||||
func createTempValuesFile(release *ReleaseSpec, data interface{}) (*os.File, error) {
|
||||
func createTempValuesFile(release *ReleaseSpec, data any) (*os.File, error) {
|
||||
p, err := tempValuesFilePath(release, data)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -28,7 +28,7 @@ func createTempValuesFile(release *ReleaseSpec, data interface{}) (*os.File, err
|
||||
return f, nil
|
||||
}
|
||||
|
||||
func tempValuesFilePath(release *ReleaseSpec, data interface{}) (*string, error) {
|
||||
func tempValuesFilePath(release *ReleaseSpec, data any) (*string, error) {
|
||||
id, err := generateValuesID(release, data)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -54,7 +54,7 @@ func tempValuesFilePath(release *ReleaseSpec, data interface{}) (*string, error)
|
||||
return &d, nil
|
||||
}
|
||||
|
||||
func generateValuesID(release *ReleaseSpec, data interface{}) (string, error) {
|
||||
func generateValuesID(release *ReleaseSpec, data any) (string, error) {
|
||||
var id []string
|
||||
|
||||
if release.Namespace != "" {
|
||||
@@ -63,7 +63,7 @@ func generateValuesID(release *ReleaseSpec, data interface{}) (string, error) {
|
||||
|
||||
id = append(id, release.Name, "values")
|
||||
|
||||
hash, err := HashObject([]interface{}{release, data})
|
||||
hash, err := HashObject([]any{release, data})
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@@ -73,7 +73,7 @@ func generateValuesID(release *ReleaseSpec, data interface{}) (string, error) {
|
||||
return strings.Join(id, "-"), nil
|
||||
}
|
||||
|
||||
func HashObject(obj interface{}) (string, error) {
|
||||
func HashObject(obj any) (string, error) {
|
||||
hash := fnv.New32a()
|
||||
|
||||
hash.Reset()
|
||||
|
||||
@@ -10,7 +10,7 @@ func TestGenerateID(t *testing.T) {
|
||||
type testcase struct {
|
||||
subject string
|
||||
release ReleaseSpec
|
||||
data interface{}
|
||||
data any
|
||||
want string
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ func TestGenerateID(t *testing.T) {
|
||||
run(testcase{
|
||||
subject: "different map content",
|
||||
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"},
|
||||
data: map[string]interface{}{"k": "v"},
|
||||
data: map[string]any{"k": "v"},
|
||||
want: "foo-values-77cdb7dbb6",
|
||||
})
|
||||
|
||||
|
||||
+5
-5
@@ -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]interface{}
|
||||
StateValues *map[string]interface{}
|
||||
Values map[string]any
|
||||
StateValues *map[string]any
|
||||
}
|
||||
|
||||
func NewEnvironmentTemplateData(environment environment.Environment, namespace string, values map[string]interface{}) *EnvironmentTemplateData {
|
||||
func NewEnvironmentTemplateData(environment environment.Environment, namespace string, values map[string]any) *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]interface{}
|
||||
StateValues *map[string]interface{}
|
||||
Values map[string]any
|
||||
StateValues *map[string]any
|
||||
// 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.
|
||||
|
||||
Reference in New Issue
Block a user