Files

52 lines
1.3 KiB
Go

package main
import (
"context"
"flag"
"fmt"
"log"
"os"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
const DefaultKubeletConfigPath = "/var/lib/kubelet/kubeconfig"
func main() {
var namespace string
var secretName string
var kubeconfig string
flag.StringVar(&namespace, "namespace", "", "Namespace of the secret")
flag.StringVar(&secretName, "secret", "", "Name of the secret")
flag.StringVar(&kubeconfig, "kubeconfig", DefaultKubeletConfigPath, "Path to kubeconfig file")
flag.Parse()
if namespace == "" || secretName == "" {
fmt.Println("Usage: test-client --namespace <ns> --secret <name> [--kubeconfig <path>]")
os.Exit(1)
}
config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
if err != nil {
log.Fatalf("Failed to get node's kubelet config: %v", err)
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
log.Fatalf("Failed to create clientset: %v", err)
}
secret, err := clientset.CoreV1().Secrets(namespace).Get(context.TODO(), secretName, metav1.GetOptions{})
if err != nil {
log.Fatalf("Failed to get secret %s/%s: %v", namespace, secretName, err)
}
fmt.Printf("Successfully retrieved secret %s/%s\n", namespace, secretName)
for k, v := range secret.Data {
fmt.Printf("Key: %s, Value: %s\n", k, string(v))
}
}