Skip to content

Commit aba31b7

Browse files
authored
Merge pull request #11 from lpabon/kubecontext
Context for kubernetes
2 parents bcc2420 + b80e180 commit aba31b7

File tree

4 files changed

+23
-7
lines changed

4 files changed

+23
-7
lines changed

cmd/getPvc.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func getPvcExec(cmd *cobra.Command, args []string) error {
5454
defer conn.Close()
5555

5656
// Connect to kubernetes
57-
cc, kc, err := kubernetes.KubeConnect(GetConfigFile())
57+
cc, kc, err := KubeConnectDefault()
5858
if err != nil {
5959
return err
6060
}

cmd/getVolumes.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"strings"
2121

2222
api "github.com/libopenstorage/openstorage-sdk-clients/sdk/golang"
23-
"github.com/portworx/px/pkg/kubernetes"
2423
"github.com/portworx/px/pkg/util"
2524

2625
"google.golang.org/grpc"
@@ -62,7 +61,7 @@ func getVolumesExec(cmd *cobra.Command, args []string) error {
6261
var pods []v1.Pod
6362
showK8s, _ := cmd.Flags().GetBool("show-k8s-info")
6463
if showK8s {
65-
_, kc, err := kubernetes.KubeConnect(GetConfigFile())
64+
_, kc, err := KubeConnectDefault()
6665
if err != nil {
6766
return err
6867
}

cmd/root.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@ import (
2020
"os"
2121
"path"
2222

23-
homedir "github.com/mitchellh/go-homedir"
23+
"github.com/portworx/px/pkg/kubernetes"
2424
"github.com/portworx/px/pkg/plugin"
2525
"github.com/portworx/px/pkg/portworx"
2626
"github.com/portworx/px/pkg/util"
27+
28+
homedir "github.com/mitchellh/go-homedir"
2729
"github.com/spf13/cobra"
2830
"google.golang.org/grpc"
31+
kclikube "k8s.io/client-go/kubernetes"
32+
"k8s.io/client-go/tools/clientcmd"
2933
)
3034

3135
const (
@@ -121,3 +125,7 @@ func PxConnectDefault() (context.Context, *grpc.ClientConn, error) {
121125
return portworx.PxConnectNamed(cfgFile, cfgContext)
122126
}
123127
}
128+
129+
func KubeConnectDefault() (clientcmd.ClientConfig, *kclikube.Clientset, error) {
130+
return kubernetes.KubeConnect(cfgFile, cfgContext)
131+
}

pkg/kubernetes/connect.go

+12-3
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,18 @@ import (
3030
// set in the default context.
3131
// clientcmd.ClientConfig will allow the caller to call ClientConfig.Namespace() to get the namespace
3232
// set by the caller on their Kubeconfig.
33-
func KubeConnect(cfgFile string) (clientcmd.ClientConfig, *kubernetes.Clientset, error) {
34-
var kubeconfig string
35-
pxctx, err := contextconfig.NewConfigReference(cfgFile).GetCurrent()
33+
func KubeConnect(cfgFile, context string) (clientcmd.ClientConfig, *kubernetes.Clientset, error) {
34+
var (
35+
kubeconfig string
36+
pxctx *contextconfig.ClientContext
37+
err error
38+
)
39+
40+
if len(context) == 0 {
41+
pxctx, err = contextconfig.NewConfigReference(cfgFile).GetCurrent()
42+
} else {
43+
pxctx, err = contextconfig.NewConfigReference(cfgFile).GetNamedContext(context)
44+
}
3645
if err != nil {
3746
return nil, nil, err
3847
}

0 commit comments

Comments
 (0)