Skip to content

Instantly share code, notes, and snippets.

@ncdc
Created August 11, 2017 14:50
Show Gist options
  • Save ncdc/01b016928718569841000fdb48366eb3 to your computer and use it in GitHub Desktop.
Save ncdc/01b016928718569841000fdb48366eb3 to your computer and use it in GitHub Desktop.
Simple Kubernetes client-go example code
package main
import (
"flag"
"fmt"
"os"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)
func main() {
kubeconfig := ""
flag.StringVar(&kubeconfig, "kubeconfig", kubeconfig, "kubeconfig file")
flag.Parse()
if kubeconfig == "" {
kubeconfig = os.Getenv("KUBECONFIG")
}
var (
config *rest.Config
err error
)
if kubeconfig != "" {
config, err = clientcmd.BuildConfigFromFlags("", kubeconfig)
} else {
config, err = rest.InClusterConfig()
}
if err != nil {
fmt.Fprintf(os.Stderr, "error creating client: %v", err)
os.Exit(1)
}
client := kubernetes.NewForConfigOrDie(config)
list, err := client.CoreV1().Nodes().List(metav1.ListOptions{})
if err != nil {
fmt.Fprintf(os.Stderr, "error listing nodes: %v", err)
os.Exit(1)
}
for _, node := range list.Items {
fmt.Printf("Node: %s\n", node.Name)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment