Replace interface{} by any (#901)

Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
yxxhero
2023-06-16 10:49:05 +09:00
committed by GitHub
parent 94fe519ed5
commit c55fa0f765
46 changed files with 394 additions and 394 deletions
+8 -8
View File
@@ -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)
+2 -2
View File
@@ -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
+3 -3
View File
@@ -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`.
+7 -7
View File
@@ -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 {
+21 -21
View File
@@ -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",
+4 -4
View File
@@ -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)
+7 -7
View File
@@ -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
View File
@@ -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 {
+2 -2
View File
@@ -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,
+8 -8
View File
@@ -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
View File
@@ -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
View File
@@ -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()
+2 -2
View File
@@ -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
View File
@@ -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.