Skip to content

Instantly share code, notes, and snippets.

@ks888
Created December 23, 2017 03:55
Show Gist options
  • Save ks888/bb5d9e49ffd1164956d489cb34e1e617 to your computer and use it in GitHub Desktop.
Save ks888/bb5d9e49ffd1164956d489cb34e1e617 to your computer and use it in GitHub Desktop.
Client-go usage example 2
package main
import (
"fmt"
"log"
"os"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
func main() {
contextName := ""
if len(os.Args) >= 2 {
contextName = os.Args[1]
}
client, err := newClient(contextName)
if err != nil {
log.Fatal(err)
}
pods, err := client.CoreV1().Pods("").List(meta_v1.ListOptions{})
if err != nil {
log.Fatal(err)
}
for _, pod := range pods.Items {
fmt.Println(pod.Name)
}
}
func newClient(contextName string) (kubernetes.Interface, error) {
configOverrides := &clientcmd.ConfigOverrides{CurrentContext: contextName}
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides).ClientConfig()
if err != nil {
return nil, err
}
return kubernetes.NewForConfig(config)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment