@@ -5,16 +5,20 @@ 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
1519func main () {
1620 // Flags
17- credentialsProviders := credentials .SetupProviderFileFlag ()
21+ accessProviders := credentials .SetupProviderFileFlag ()
1822 namespace := flag .String ("namespace" , "default" , "Namespace of the ClusterProfile on the hub cluster" )
1923 clusterProfileName := flag .String ("clusterprofile" , "" , "Name of the ClusterProfile to target (required)" )
2024 flag .Parse ()
@@ -24,7 +28,7 @@ func main() {
2428 }
2529
2630 // Load providers file
27- cpCreds , err := credentials .NewFromFile (* credentialsProviders )
31+ cpCreds , err := credentials .NewFromFile (* accessProviders )
2832 if err != nil {
2933 log .Fatalf ("Got error reading credentials providers: %v" , err )
3034 }
@@ -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