1
0
Fork 0
mirror of https://github.com/imjasonh/client-go2 synced 2026-07-16 12:12:07 +00:00
client-go2/main.go

71 lines
1.7 KiB
Go
Raw Normal View History

2021-09-09 12:29:21 -04:00
package main
import (
"context"
"encoding/json"
2021-09-09 12:29:21 -04:00
"log"
"github.com/imjasonh/client-go2/generic"
2021-09-09 12:29:21 -04:00
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2021-09-10 13:56:24 -04:00
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/tools/clientcmd"
2021-09-09 12:29:21 -04:00
)
2021-09-10 13:56:24 -04:00
var (
podGVR = schema.GroupVersionResource{
Group: "",
Version: "v1",
Resource: "pods",
}
cmGVR = schema.GroupVersionResource{
Group: "",
Version: "v1",
Resource: "configmaps",
}
)
2021-09-09 12:29:21 -04:00
func main() {
// This is load bearing...
// Without this, while the client is in generic/, I get a mysterious compiler error:
// "internal compiler error: missing import reader for json.NewEncoder"
_ = json.NewEncoder(nil)
2021-09-09 12:29:21 -04:00
ctx := context.Background()
config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(clientcmd.NewDefaultClientConfigLoadingRules(), &clientcmd.ConfigOverrides{}).ClientConfig()
if err != nil {
log.Fatalf("ClientConfig: %v", err)
}
2021-09-09 13:13:19 -04:00
// List pods in kube-system.
2021-09-10 14:03:39 -04:00
pods, err := generic.NewClient[*corev1.Pod](podGVR, config).List(ctx, "kube-system")
if err != nil {
log.Fatal("listing pods:", err)
}
2021-09-09 12:29:21 -04:00
log.Println("PODS")
for _, p := range pods {
log.Println("-", p.Name)
}
2021-09-09 13:13:19 -04:00
// Create a ConfigMap, then list ConfigMaps.
2021-09-10 14:03:39 -04:00
cmc := generic.NewClient[*corev1.ConfigMap](cmGVR, config)
if err := cmc.Create(ctx, "kube-system", &corev1.ConfigMap{
2021-09-09 13:13:19 -04:00
ObjectMeta: metav1.ObjectMeta{
GenerateName: "foo-",
},
Data: map[string]string{
"hello": "world",
},
}); err != nil {
log.Fatal("creating configmap:", err)
}
cms, err := cmc.List(ctx, "kube-system")
if err != nil {
log.Fatal("listing configmaps:", err)
}
2021-09-09 12:29:21 -04:00
log.Println("CONFIGMAPS")
for _, cm := range cms {
log.Println("-", cm.Name)
}
}