diff --git a/cmd/ciReleaseCleanfailed.go b/cmd/ciReleaseCleanfailed.go index 3f6924a..db8267b 100644 --- a/cmd/ciReleaseCleanfailed.go +++ b/cmd/ciReleaseCleanfailed.go @@ -21,17 +21,27 @@ var ciReleaseCleanfailedCmd = &cobra.Command{ releaseName, _ := cmd.Flags().GetString("release-name") namespace, _ := cmd.Flags().GetString("namespace") - // ---- + // Try reading KUBECONFIG from environment variable first + kubeConfigPath := os.Getenv("KUBECONFIG") + if kubeConfigPath == "" { + // If not set, use the default kube config path + homeDir, err := os.UserHomeDir() + if err != nil { + log.Fatalf("cannot read user home dir") + } + kubeConfigPath = homeDir + "/.kube/config" - homeDir, err := os.UserHomeDir() - if err != nil { - log.Fatalf("cannot read user home dir") } - kubeConfigPath := homeDir + "/.kube/config" + // Read kubeConfig from file + if _, err := os.Stat(kubeConfigPath); os.IsNotExist(err) { + log.Fatalf("kubeConfig file does not exist at path: %s", kubeConfigPath) + } + + // Read kubeConfig file kubeConfig, err := os.ReadFile(kubeConfigPath) if err != nil { - log.Fatalf("cannot read kubeConfig from path") + log.Fatalf("cannot read kubeConfig from path: %s", kubeConfigPath) } //k8s go client init logic @@ -86,7 +96,7 @@ var ciReleaseCleanfailedCmd = &cobra.Command{ fmt.Printf("Deleting secret %s\n", secretName) err := clientset.CoreV1().Secrets(namespace).Delete(context.TODO(), secretName, v1.DeleteOptions{}) if err != nil { - log.Fatalf("Error deleting secret %s: %s", secretName, err) + log.Printf("Error deleting secret %s: %s", secretName, err) } } } diff --git a/cmd/ciReleaseDelete.go b/cmd/ciReleaseDelete.go index 39e80e6..7e3b188 100644 --- a/cmd/ciReleaseDelete.go +++ b/cmd/ciReleaseDelete.go @@ -20,15 +20,27 @@ var ciReleaseDeleteCmd = &cobra.Command{ namespace, _ := cmd.Flags().GetString("namespace") deletePVCs, _ := cmd.Flags().GetBool("delete-pvcs") - homeDir, err := os.UserHomeDir() - if err != nil { - log.Fatalf("cannot read user home dir") + // Try reading KUBECONFIG from environment variable first + kubeConfigPath := os.Getenv("KUBECONFIG") + if kubeConfigPath == "" { + // If not set, use the default kube config path + homeDir, err := os.UserHomeDir() + if err != nil { + log.Fatalf("cannot read user home dir") + } + kubeConfigPath = homeDir + "/.kube/config" + + } + + // Read kubeConfig from file + if _, err := os.Stat(kubeConfigPath); os.IsNotExist(err) { + log.Fatalf("kubeConfig file does not exist at path: %s", kubeConfigPath) } - kubeConfigPath := homeDir + "/.kube/config" + // Read kubeConfig file kubeConfig, err := os.ReadFile(kubeConfigPath) if err != nil { - log.Fatalf("cannot read kubeConfig from path") + log.Fatalf("cannot read kubeConfig from path: %s", kubeConfigPath) } //k8s go client init logic diff --git a/cmd/ciReleaseDeploy.go b/cmd/ciReleaseDeploy.go index 82aae7f..f17f869 100644 --- a/cmd/ciReleaseDeploy.go +++ b/cmd/ciReleaseDeploy.go @@ -150,12 +150,22 @@ var ciReleaseDeployCmd = &cobra.Command{ } if !debug { - // Connect to the cluster - homeDir, err := os.UserHomeDir() - if err != nil { - log.Fatalf("cannot read user home dir") + + // Try reading KUBECONFIG from environment variable first + kubeConfigPath := os.Getenv("KUBECONFIG") + if kubeConfigPath == "" { + // If not set, use the default kube config path + homeDir, err := os.UserHomeDir() + if err != nil { + log.Fatalf("cannot read user home dir") + } + kubeConfigPath = homeDir + "/.kube/config" + } + + // Read kubeConfig from file + if _, err := os.Stat(kubeConfigPath); os.IsNotExist(err) { + log.Fatalf("kubeConfig file does not exist at path: %s", kubeConfigPath) } - kubeConfigPath := homeDir + "/.kube/config" //k8s go client init logic config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath) diff --git a/cmd/ciReleaseDiff.go b/cmd/ciReleaseDiff.go index 15488a2..4d5767f 100644 --- a/cmd/ciReleaseDiff.go +++ b/cmd/ciReleaseDiff.go @@ -280,12 +280,19 @@ var ciReleaseDiffCmd = &cobra.Command{ referenceDataOverride := "" if !debug { - homeDir, err := os.UserHomeDir() - if err != nil { - log.Fatalf("cannot read user home dir") + // Try reading KUBECONFIG from environment variable first + kubeConfigPath := os.Getenv("KUBECONFIG") + if kubeConfigPath == "" { + homeDir, err := os.UserHomeDir() + if err != nil { + log.Fatalf("cannot read user home dir") + } + kubeConfigPath = homeDir + "/.kube/config" + } + // Read kubeConfig from file + if _, err := os.Stat(kubeConfigPath); os.IsNotExist(err) { + log.Fatalf("kubeConfig file does not exist at path: %s", kubeConfigPath) } - kubeConfigPath := homeDir + "/.kube/config" - //k8s go client init logic config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath) if err != nil { diff --git a/cmd/ciReleaseList.go b/cmd/ciReleaseList.go index a2efa7b..625bb34 100644 --- a/cmd/ciReleaseList.go +++ b/cmd/ciReleaseList.go @@ -19,12 +19,17 @@ var ciReleaseListCmd = &cobra.Command{ namespace, _ := cmd.Flags().GetString("namespace") - homeDir, err := os.UserHomeDir() - if err != nil { - fmt.Println("cannot read user home dir") - os.Exit(1) + // Try reading KUBECONFIG from environment variable first + kubeConfigPath := os.Getenv("KUBECONFIG") + if kubeConfigPath == "" { + // If not set, use the default kube config path + homeDir, err := os.UserHomeDir() + if err != nil { + fmt.Println("cannot read user home dir") + os.Exit(1) + } + kubeConfigPath = homeDir + "/.kube/config" } - kubeConfigPath := homeDir + "/.kube/config" kubeConfig, err := os.ReadFile(kubeConfigPath) if err != nil { diff --git a/cmd/ciReleaseValidate.go b/cmd/ciReleaseValidate.go index 041efcd..5983110 100644 --- a/cmd/ciReleaseValidate.go +++ b/cmd/ciReleaseValidate.go @@ -93,14 +93,14 @@ var ciReleaseValidateCmd = &cobra.Command{ pending_release=$(helm list -n "$NAMESPACE" --pending --filter="(\s|^)($RELEASE_NAME)(\s|$)"| tail -1 | cut -f1) if [[ "$pending_release" == "$RELEASE_NAME" ]]; then - upgrade_secret_to_delete=$(kubectl get secret -l owner=helm,status=pending-upgrade,name="$RELEASE_NAME" -n "$NAMESPACE" | awk '{print $1}' | grep -v NAME) - install_secret_to_delete=$(kubectl get secret -l owner=helm,status=pending-install,name="$RELEASE_NAME" -n "$NAMESPACE" | awk '{print $1}' | grep -v NAME) + upgrade_secret_to_delete=$(kubectl get secret -l owner=helm,status=pending-upgrade,name="$RELEASE_NAME" -n "$NAMESPACE" --no-headers | awk '{print $1}') + install_secret_to_delete=$(kubectl get secret -l owner=helm,status=pending-install,name="$RELEASE_NAME" -n "$NAMESPACE" --no-headers | awk '{print $1}') if [[ ! -z "$upgrade_secret_to_delete" ]] ; then - kubectl delete secret -n "$NAMESPACE" "$upgrade_secret_to_delete" + kubectl delete secret -n "$NAMESPACE" "$upgrade_secret_to_delete" || true fi if [[ ! -z "$install_secret_to_delete" ]] ; then - kubectl delete secret -n "$NAMESPACE" "$install_secret_to_delete" + kubectl delete secret -n "$NAMESPACE" "$install_secret_to_delete" || true fi fi `, namespace, releaseName) diff --git a/cmd/ciReleaseWakeup.go b/cmd/ciReleaseWakeup.go index 1e18723..d2f9251 100644 --- a/cmd/ciReleaseWakeup.go +++ b/cmd/ciReleaseWakeup.go @@ -24,15 +24,19 @@ var ciReleaseWakeupCmd = &cobra.Command{ releaseName, _ := cmd.Flags().GetString("release-name") namespace, _ := cmd.Flags().GetString("namespace") - homeDir, err := os.UserHomeDir() - if err != nil { - log.Fatalf("cannot read user home dir") + // Try reading KUBECONFIG from environment variable first + kubeConfigPath := os.Getenv("KUBECONFIG") + if kubeConfigPath == "" { + homeDir, err := os.UserHomeDir() + if err != nil { + log.Fatalf("cannot read user home dir") + } + kubeConfigPath = homeDir + "/.kube/config" } - kubeConfigPath := homeDir + "/.kube/config" kubeConfig, err := os.ReadFile(kubeConfigPath) if err != nil { - log.Fatalf("cannot read kubeConfig from path") + log.Fatalf("cannot read kubeConfig from path: %s", kubeConfigPath) } // k8s go client init logic diff --git a/cmd/ciScriptsEsInitRemove.go b/cmd/ciScriptsEsInitRemove.go index f92de68..158434a 100644 --- a/cmd/ciScriptsEsInitRemove.go +++ b/cmd/ciScriptsEsInitRemove.go @@ -30,17 +30,22 @@ var ciScriptsEsinitRemoveCmd = &cobra.Command{ fmt.Printf("Namespace: %s\n", namespace) } - homeDir, err := os.UserHomeDir() - if err != nil { - log.Fatalf("cannot read user home dir") + // Try reading KUBECONFIG from environment variable first + kubeConfigPath := os.Getenv("KUBECONFIG") + if kubeConfigPath == "" { + homeDir, err := os.UserHomeDir() + if err != nil { + log.Fatalf("cannot read user home dir") + } + kubeConfigPath = homeDir + "/.kube/config" } - kubeConfigPath := homeDir + "/.kube/config" //k8s go client init logic config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath) if err != nil { - log.Fatalf("cannot read kubeConfig from path: %s", err) + log.Fatalf("cannot read kubeConfig from path: %s", kubeConfigPath) } + clientset, err := kubernetes.NewForConfig(config) if err != nil { log.Fatalf("cannot initialize k8s client: %s", err)