Skip to content

Commit 847d716

Browse files
committed
Use KUBECONFIG environment variable first
This mirrors behavior of other cli tools
1 parent e33026b commit 847d716

File tree

8 files changed

+94
-41
lines changed

8 files changed

+94
-41
lines changed

cmd/ciReleaseCleanfailed.go

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,27 @@ var ciReleaseCleanfailedCmd = &cobra.Command{
2121
releaseName, _ := cmd.Flags().GetString("release-name")
2222
namespace, _ := cmd.Flags().GetString("namespace")
2323

24-
// ----
24+
// Try reading KUBECONFIG from environment variable first
25+
kubeConfigPath := os.Getenv("KUBECONFIG")
26+
if kubeConfigPath == "" {
27+
// If not set, use the default kube config path
28+
homeDir, err := os.UserHomeDir()
29+
if err != nil {
30+
log.Fatalf("cannot read user home dir")
31+
}
32+
kubeConfigPath = homeDir + "/.kube/config"
2533

26-
homeDir, err := os.UserHomeDir()
27-
if err != nil {
28-
log.Fatalf("cannot read user home dir")
2934
}
30-
kubeConfigPath := homeDir + "/.kube/config"
3135

36+
// Read kubeConfig from file
37+
if _, err := os.Stat(kubeConfigPath); os.IsNotExist(err) {
38+
log.Fatalf("kubeConfig file does not exist at path: %s", kubeConfigPath)
39+
}
40+
41+
// Read kubeConfig file
3242
kubeConfig, err := os.ReadFile(kubeConfigPath)
3343
if err != nil {
34-
log.Fatalf("cannot read kubeConfig from path")
44+
log.Fatalf("cannot read kubeConfig from path: %s", kubeConfigPath)
3545
}
3646

3747
//k8s go client init logic
@@ -86,7 +96,7 @@ var ciReleaseCleanfailedCmd = &cobra.Command{
8696
fmt.Printf("Deleting secret %s\n", secretName)
8797
err := clientset.CoreV1().Secrets(namespace).Delete(context.TODO(), secretName, v1.DeleteOptions{})
8898
if err != nil {
89-
log.Fatalf("Error deleting secret %s: %s", secretName, err)
99+
log.Printf("Error deleting secret %s: %s", secretName, err)
90100
}
91101
}
92102
}

cmd/ciReleaseDelete.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,27 @@ var ciReleaseDeleteCmd = &cobra.Command{
2020
namespace, _ := cmd.Flags().GetString("namespace")
2121
deletePVCs, _ := cmd.Flags().GetBool("delete-pvcs")
2222

23-
homeDir, err := os.UserHomeDir()
24-
if err != nil {
25-
log.Fatalf("cannot read user home dir")
23+
// Try reading KUBECONFIG from environment variable first
24+
kubeConfigPath := os.Getenv("KUBECONFIG")
25+
if kubeConfigPath == "" {
26+
// If not set, use the default kube config path
27+
homeDir, err := os.UserHomeDir()
28+
if err != nil {
29+
log.Fatalf("cannot read user home dir")
30+
}
31+
kubeConfigPath = homeDir + "/.kube/config"
32+
33+
}
34+
35+
// Read kubeConfig from file
36+
if _, err := os.Stat(kubeConfigPath); os.IsNotExist(err) {
37+
log.Fatalf("kubeConfig file does not exist at path: %s", kubeConfigPath)
2638
}
27-
kubeConfigPath := homeDir + "/.kube/config"
2839

40+
// Read kubeConfig file
2941
kubeConfig, err := os.ReadFile(kubeConfigPath)
3042
if err != nil {
31-
log.Fatalf("cannot read kubeConfig from path")
43+
log.Fatalf("cannot read kubeConfig from path: %s", kubeConfigPath)
3244
}
3345

3446
//k8s go client init logic

cmd/ciReleaseDeploy.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,22 @@ var ciReleaseDeployCmd = &cobra.Command{
150150
}
151151

152152
if !debug {
153-
// Connect to the cluster
154-
homeDir, err := os.UserHomeDir()
155-
if err != nil {
156-
log.Fatalf("cannot read user home dir")
153+
154+
// Try reading KUBECONFIG from environment variable first
155+
kubeConfigPath := os.Getenv("KUBECONFIG")
156+
if kubeConfigPath == "" {
157+
// If not set, use the default kube config path
158+
homeDir, err := os.UserHomeDir()
159+
if err != nil {
160+
log.Fatalf("cannot read user home dir")
161+
}
162+
kubeConfigPath = homeDir + "/.kube/config"
163+
}
164+
165+
// Read kubeConfig from file
166+
if _, err := os.Stat(kubeConfigPath); os.IsNotExist(err) {
167+
log.Fatalf("kubeConfig file does not exist at path: %s", kubeConfigPath)
157168
}
158-
kubeConfigPath := homeDir + "/.kube/config"
159169

160170
//k8s go client init logic
161171
config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath)

cmd/ciReleaseDiff.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -280,12 +280,19 @@ var ciReleaseDiffCmd = &cobra.Command{
280280
referenceDataOverride := ""
281281
if !debug {
282282

283-
homeDir, err := os.UserHomeDir()
284-
if err != nil {
285-
log.Fatalf("cannot read user home dir")
283+
// Try reading KUBECONFIG from environment variable first
284+
kubeConfigPath := os.Getenv("KUBECONFIG")
285+
if kubeConfigPath == "" {
286+
homeDir, err := os.UserHomeDir()
287+
if err != nil {
288+
log.Fatalf("cannot read user home dir")
289+
}
290+
kubeConfigPath = homeDir + "/.kube/config"
291+
}
292+
// Read kubeConfig from file
293+
if _, err := os.Stat(kubeConfigPath); os.IsNotExist(err) {
294+
log.Fatalf("kubeConfig file does not exist at path: %s", kubeConfigPath)
286295
}
287-
kubeConfigPath := homeDir + "/.kube/config"
288-
289296
//k8s go client init logic
290297
config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath)
291298
if err != nil {

cmd/ciReleaseList.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,17 @@ var ciReleaseListCmd = &cobra.Command{
1919

2020
namespace, _ := cmd.Flags().GetString("namespace")
2121

22-
homeDir, err := os.UserHomeDir()
23-
if err != nil {
24-
fmt.Println("cannot read user home dir")
25-
os.Exit(1)
22+
// Try reading KUBECONFIG from environment variable first
23+
kubeConfigPath := os.Getenv("KUBECONFIG")
24+
if kubeConfigPath == "" {
25+
// If not set, use the default kube config path
26+
homeDir, err := os.UserHomeDir()
27+
if err != nil {
28+
fmt.Println("cannot read user home dir")
29+
os.Exit(1)
30+
}
31+
kubeConfigPath = homeDir + "/.kube/config"
2632
}
27-
kubeConfigPath := homeDir + "/.kube/config"
2833

2934
kubeConfig, err := os.ReadFile(kubeConfigPath)
3035
if err != nil {

cmd/ciReleaseValidate.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,14 @@ var ciReleaseValidateCmd = &cobra.Command{
9393
pending_release=$(helm list -n "$NAMESPACE" --pending --filter="(\s|^)($RELEASE_NAME)(\s|$)"| tail -1 | cut -f1)
9494
9595
if [[ "$pending_release" == "$RELEASE_NAME" ]]; then
96-
upgrade_secret_to_delete=$(kubectl get secret -l owner=helm,status=pending-upgrade,name="$RELEASE_NAME" -n "$NAMESPACE" | awk '{print $1}' | grep -v NAME)
97-
install_secret_to_delete=$(kubectl get secret -l owner=helm,status=pending-install,name="$RELEASE_NAME" -n "$NAMESPACE" | awk '{print $1}' | grep -v NAME)
96+
upgrade_secret_to_delete=$(kubectl get secret -l owner=helm,status=pending-upgrade,name="$RELEASE_NAME" -n "$NAMESPACE" --no-headers | awk '{print $1}')
97+
install_secret_to_delete=$(kubectl get secret -l owner=helm,status=pending-install,name="$RELEASE_NAME" -n "$NAMESPACE" --no-headers | awk '{print $1}')
9898
9999
if [[ ! -z "$upgrade_secret_to_delete" ]] ; then
100-
kubectl delete secret -n "$NAMESPACE" "$upgrade_secret_to_delete"
100+
kubectl delete secret -n "$NAMESPACE" "$upgrade_secret_to_delete" || true
101101
fi
102102
if [[ ! -z "$install_secret_to_delete" ]] ; then
103-
kubectl delete secret -n "$NAMESPACE" "$install_secret_to_delete"
103+
kubectl delete secret -n "$NAMESPACE" "$install_secret_to_delete" || true
104104
fi
105105
fi
106106
`, namespace, releaseName)

cmd/ciReleaseWakeup.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,19 @@ var ciReleaseWakeupCmd = &cobra.Command{
2424
releaseName, _ := cmd.Flags().GetString("release-name")
2525
namespace, _ := cmd.Flags().GetString("namespace")
2626

27-
homeDir, err := os.UserHomeDir()
28-
if err != nil {
29-
log.Fatalf("cannot read user home dir")
27+
// Try reading KUBECONFIG from environment variable first
28+
kubeConfigPath := os.Getenv("KUBECONFIG")
29+
if kubeConfigPath == "" {
30+
homeDir, err := os.UserHomeDir()
31+
if err != nil {
32+
log.Fatalf("cannot read user home dir")
33+
}
34+
kubeConfigPath = homeDir + "/.kube/config"
3035
}
31-
kubeConfigPath := homeDir + "/.kube/config"
3236

3337
kubeConfig, err := os.ReadFile(kubeConfigPath)
3438
if err != nil {
35-
log.Fatalf("cannot read kubeConfig from path")
39+
log.Fatalf("cannot read kubeConfig from path: %s", kubeConfigPath)
3640
}
3741

3842
// k8s go client init logic

cmd/ciScriptsEsInitRemove.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,22 @@ var ciScriptsEsinitRemoveCmd = &cobra.Command{
3030
fmt.Printf("Namespace: %s\n", namespace)
3131
}
3232

33-
homeDir, err := os.UserHomeDir()
34-
if err != nil {
35-
log.Fatalf("cannot read user home dir")
33+
// Try reading KUBECONFIG from environment variable first
34+
kubeConfigPath := os.Getenv("KUBECONFIG")
35+
if kubeConfigPath == "" {
36+
homeDir, err := os.UserHomeDir()
37+
if err != nil {
38+
log.Fatalf("cannot read user home dir")
39+
}
40+
kubeConfigPath = homeDir + "/.kube/config"
3641
}
37-
kubeConfigPath := homeDir + "/.kube/config"
3842

3943
//k8s go client init logic
4044
config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath)
4145
if err != nil {
42-
log.Fatalf("cannot read kubeConfig from path: %s", err)
46+
log.Fatalf("cannot read kubeConfig from path: %s", kubeConfigPath)
4347
}
48+
4449
clientset, err := kubernetes.NewForConfig(config)
4550
if err != nil {
4651
log.Fatalf("cannot initialize k8s client: %s", err)

0 commit comments

Comments
 (0)