Skip to content

Commit

Permalink
feat: add support for --context flag
Browse files Browse the repository at this point in the history
- add support for --context flag so that Kubernetes context can be passed as a parameter
  • Loading branch information
prit342 committed Sep 18, 2023
1 parent 6122399 commit 7da6054
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion pkg/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ var (
serializer *kjson.Serializer
scanTimeOut int
scanURL string
kubeContext string // kubernetes context to use that is present in the kubeconfig
)

func Execute() {
Expand All @@ -33,8 +34,11 @@ func Execute() {
rootCmd.PersistentFlags().IntVarP(&scanTimeOut, "timeout", "t", 120, "Scan timeout in seconds")
rootCmd.PersistentFlags().StringVarP(&scanURL, "url", "u", "https://v2.kubesec.io", "URL to send the request for scanning")
rootCmd.PersistentFlags().StringVarP(&kubeconfig, "kubeconfig", "k", "", "Path to kubeconfig, overrides KUBECONFIG environment variable")
rootCmd.PersistentFlags().StringVarP(&kubeContext, "context", "c", "", "kubernetes context to use in kubeconfig")

serializer = kjson.NewYAMLSerializer(kjson.DefaultMetaFactory, scheme.Scheme, scheme.Scheme)
serializer = kjson.NewSerializerWithOptions(kjson.DefaultMetaFactory, scheme.Scheme, scheme.Scheme, kjson.SerializerOptions{
Yaml: true,
})

// commands
rootCmd.AddCommand(versionCmd)
Expand All @@ -56,6 +60,7 @@ func newKubeClient(kubeconfig string) (*kubernetes.Clientset, error) {
}

clientset, err := kubernetes.NewForConfig(config)

if err != nil {
return nil, fmt.Errorf("Unable to create a new Clienset: %w", err)
}
Expand All @@ -73,6 +78,11 @@ func newClientConfig(kubeconfig string) (*rest.Config, error) {

configOverrides := &clientcmd.ConfigOverrides{}

// if kubeContext is not empty, it will override the current context
if kubeContext != "" {
configOverrides.CurrentContext = kubeContext
}

kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides)

config, err := kubeConfig.ClientConfig()
Expand Down

0 comments on commit 7da6054

Please sign in to comment.