Skip to content

Commit a1d91d3

Browse files
committed
✨ (kubernetes): Add support for colon-separated paths in KUBECONFIG
1 parent 6167220 commit a1d91d3

File tree

2 files changed

+11
-13
lines changed

2 files changed

+11
-13
lines changed

internal/config/flags/kubernetes.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/spf13/cobra"
77
"github.com/spf13/viper"
88
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9+
"k8s.io/client-go/tools/clientcmd"
910
"os"
1011
"path/filepath"
1112
)
@@ -33,7 +34,11 @@ func Context(cmd *cobra.Command) {
3334
if err != nil {
3435
panic(err)
3536
}
36-
conf, err := kubernetes.RawConfig(kubeconfig)
37+
configLoader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
38+
&clientcmd.ClientConfigLoadingRules{Precedence: filepath.SplitList(kubeconfig)},
39+
nil,
40+
)
41+
conf, err := configLoader.RawConfig()
3742
if err != nil {
3843
return nil, cobra.ShellCompDirectiveNoFileComp
3944
}

internal/kubernetes/client.go

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
v1 "k8s.io/client-go/kubernetes/typed/core/v1"
77
"k8s.io/client-go/rest"
88
"k8s.io/client-go/tools/clientcmd"
9-
"k8s.io/client-go/tools/clientcmd/api"
9+
"path/filepath"
1010
)
1111

1212
type KubeClient struct {
@@ -27,20 +27,20 @@ func (client KubeClient) Secrets() v1.SecretInterface {
2727
return client.ClientSet.CoreV1().Secrets(client.Namespace)
2828
}
2929

30-
func NewConfigLoader(kubeconfigPath, context string) clientcmd.ClientConfig {
30+
func NewConfigLoader(kubeconfig, context string) clientcmd.ClientConfig {
3131
var overrides *clientcmd.ConfigOverrides
3232
if context != "" {
3333
overrides = &clientcmd.ConfigOverrides{CurrentContext: context}
3434
}
3535

3636
return clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
37-
&clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath},
37+
&clientcmd.ClientConfigLoadingRules{Precedence: filepath.SplitList(kubeconfig)},
3838
overrides,
3939
)
4040
}
4141

42-
func NewClient(kubeconfigPath, context, namespace string) (config KubeClient, err error) {
43-
configLoader := NewConfigLoader(kubeconfigPath, context)
42+
func NewClient(kubeconfig, context, namespace string) (config KubeClient, err error) {
43+
configLoader := NewConfigLoader(kubeconfig, context)
4444

4545
config.ClientConfig, err = configLoader.ClientConfig()
4646
if err != nil {
@@ -82,10 +82,3 @@ func NewClientFromCmd(cmd *cobra.Command) (KubeClient, error) {
8282

8383
return NewClient(kubeconfig, context, namespace)
8484
}
85-
86-
func RawConfig(kubeconfigPath string) (api.Config, error) {
87-
configLoader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
88-
&clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath}, nil,
89-
)
90-
return configLoader.RawConfig()
91-
}

0 commit comments

Comments
 (0)