From 59d933dc39776202ed9dcd27c63044758e7a4620 Mon Sep 17 00:00:00 2001 From: Abhijith Ravindra <137736216+abhijith-darshan@users.noreply.github.com> Date: Fri, 30 Aug 2024 09:53:12 +0200 Subject: [PATCH] (fix): create namespace using kubeconfig (#507) --- pkg/internal/local/klient/kind.go | 7 ++++--- pkg/internal/local/setup/cluster.go | 17 +++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/pkg/internal/local/klient/kind.go b/pkg/internal/local/klient/kind.go index 50188b295..b4fa27ef0 100644 --- a/pkg/internal/local/klient/kind.go +++ b/pkg/internal/local/klient/kind.go @@ -81,16 +81,17 @@ func getKindClusters() ([]string, error) { } // CreateNamespace - creates a namespace with the given name -func CreateNamespace(namespaceName string) error { +func CreateNamespace(namespaceName, kubeconfig string) error { if strings.TrimSpace(namespaceName) == "" { return errors.New("namespace name cannot be empty") } return utils.ShellPipe{ Shells: []utils.Shell{ { - Cmd: "kubectl create namespace ${namespace} --dry-run=client -o yaml", + Cmd: "kubectl create namespace ${namespace} --kubeconfig=${kubeconfig} --dry-run=client -o yaml", Vars: map[string]string{ - "namespace": namespaceName, + "namespace": namespaceName, + "kubeconfig": kubeconfig, }, }, { diff --git a/pkg/internal/local/setup/cluster.go b/pkg/internal/local/setup/cluster.go index 99805cd10..0770142d9 100644 --- a/pkg/internal/local/setup/cluster.go +++ b/pkg/internal/local/setup/cluster.go @@ -28,13 +28,11 @@ func clusterSetup(env *ExecutionEnv) error { if err != nil { return err } - if env.cluster.Namespace != nil { - err = klient.CreateNamespace(*env.cluster.Namespace) - if err != nil { - return err - } + err = env.cluster.saveConfig() // save kubeconfig after cluster creation + if err != nil { + return err } - err = env.cluster.saveConfig() + err = env.cluster.createNamespace() // create namespace if specified using kubeconfig if err != nil { return err } @@ -64,3 +62,10 @@ func (c *Cluster) saveConfig() error { c.kubeConfigPath = filepath.Join(dir, file) return nil } + +func (c *Cluster) createNamespace() error { + if c.Namespace == nil { + return nil + } + return klient.CreateNamespace(*c.Namespace, c.kubeConfigPath) +}