Skip to content

Commit 1e36a2c

Browse files
committed
Add controller-runtime client example
Signed-off-by: kahirokunn <[email protected]>
1 parent 2e3fabb commit 1e36a2c

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

examples/controller-example/main.go

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@ import (
55
"flag"
66
"log"
77

8+
corev1 "k8s.io/api/core/v1"
89
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10+
"k8s.io/apimachinery/pkg/runtime"
911
k8sclient "k8s.io/client-go/kubernetes"
12+
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
1013
"k8s.io/client-go/tools/clientcmd"
1114
ciaclient "sigs.k8s.io/cluster-inventory-api/client/clientset/versioned"
1215
"sigs.k8s.io/cluster-inventory-api/pkg/credentials"
16+
crclient "sigs.k8s.io/controller-runtime/pkg/client"
1317
)
1418

1519
func main() {
@@ -52,7 +56,7 @@ func main() {
5256
log.Fatalf("Got error generating spoke rest.Config: %v", err)
5357
}
5458

55-
// Create a Kubernetes client for the spoke cluster and list pods
59+
// Example using client-go: Create a Kubernetes client for the spoke cluster and list pods
5660
mclient, err := k8sclient.NewForConfig(spokeConfig)
5761
if err != nil {
5862
log.Fatalf("failed to create spoke client: %v", err)
@@ -61,8 +65,26 @@ func main() {
6165
if err != nil {
6266
log.Fatalf("failed to list pods on spoke: %v", err)
6367
}
64-
log.Printf("Listed %d pods on spoke cluster", len(plist.Items))
68+
log.Printf("[client-go] Listed %d pods on spoke cluster", len(plist.Items))
6569
for _, p := range plist.Items {
66-
log.Printf("pod: %s/%s", p.Namespace, p.Name)
70+
log.Printf("[client-go] pod: %s/%s", p.Namespace, p.Name)
71+
}
72+
73+
// Example using controller-runtime client
74+
scheme := runtime.NewScheme()
75+
if err := clientgoscheme.AddToScheme(scheme); err != nil {
76+
log.Fatalf("failed to add core scheme: %v", err)
77+
}
78+
crc, err := crclient.New(spokeConfig, crclient.Options{Scheme: scheme})
79+
if err != nil {
80+
log.Fatalf("failed to create controller-runtime client: %v", err)
81+
}
82+
var crPodList corev1.PodList
83+
if err := crc.List(context.Background(), &crPodList); err != nil {
84+
log.Fatalf("failed to list pods with controller-runtime: %v", err)
85+
}
86+
log.Printf("[controller-runtime] Listed %d pods on spoke cluster", len(crPodList.Items))
87+
for _, p := range crPodList.Items {
88+
log.Printf("[controller-runtime] pod: %s/%s", p.Namespace, p.Name)
6789
}
6890
}

0 commit comments

Comments
 (0)