From b8b2912b77cbb9358892ef4327c794cf08680cbb Mon Sep 17 00:00:00 2001 From: Adrian Berger Date: Thu, 10 Oct 2024 09:20:27 +0200 Subject: [PATCH] Add environment variable flag to CLI in order to respect kubeconfig namespace Signed-off-by: Adrian Berger --- cmd/flux/main.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cmd/flux/main.go b/cmd/flux/main.go index 1226a347..7f711a28 100644 --- a/cmd/flux/main.go +++ b/cmd/flux/main.go @@ -205,6 +205,23 @@ func main() { func configureDefaultNamespace() { *kubeconfigArgs.Namespace = rootArgs.defaults.Namespace + + if _, has := os.LookupEnv("FLUX_NS_FOLLOW_KUBECONTEXT"); has { + rawCfg, err := kubeconfigArgs.ToRawKubeConfigLoader().RawConfig() + if err != nil { + logger.Warningf(" failed parsing kubeconfig: %s", err) + } else { + ctx := *kubeconfigArgs.Context + if ctx == "" { + ctx = rawCfg.CurrentContext + } + ns := rawCfg.Contexts[ctx].Namespace + if ns != "" { + kubeconfigArgs.Namespace = &ns + } + } + } + fromEnv := os.Getenv("FLUX_SYSTEM_NAMESPACE") if fromEnv != "" { // namespace must be a valid DNS label. Assess against validation