From 28cf300ef2b47ae3171a5591ec6bad3f0c626b07 Mon Sep 17 00:00:00 2001 From: Gregoire Menuel Date: Tue, 23 Mar 2021 10:06:53 +0100 Subject: [PATCH] Add support for kubeContext in environments (#1675) Resolves #898 Resolves #1689 Co-authored-by: Gregoire Menuel --- README.md | 2 ++ pkg/state/environment.go | 5 +++-- pkg/state/state.go | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 20bc555b..94701d19 100644 --- a/README.md +++ b/README.md @@ -298,6 +298,8 @@ environments: # Use "Warn", "Info", or "Debug" if you want helmfile to not fail when a values file is missing, while just leaving # a message about the missing file at the log-level. missingFileHandler: Error + # kubeContext to use for this environment + kubeContext: kube-context # # Advanced Configuration: Layering diff --git a/pkg/state/environment.go b/pkg/state/environment.go index 13259f1d..13b1c137 100644 --- a/pkg/state/environment.go +++ b/pkg/state/environment.go @@ -1,8 +1,9 @@ package state type EnvironmentSpec struct { - Values []interface{} `yaml:"values,omitempty"` - Secrets []string `yaml:"secrets,omitempty"` + Values []interface{} `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`. diff --git a/pkg/state/state.go b/pkg/state/state.go index 7ffe20c1..491ab549 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -2216,6 +2216,8 @@ func (st *HelmState) connectionFlags(helm helmexec.Interface, release *ReleaseSp if release.KubeContext != "" { flags = append(flags, "--kube-context", release.KubeContext) + } else if st.Environments[st.Env.Name].KubeContext != "" { + flags = append(flags, "--kube-context", st.Environments[st.Env.Name].KubeContext) } else if st.HelmDefaults.KubeContext != "" { flags = append(flags, "--kube-context", st.HelmDefaults.KubeContext) }