```golang package main import ( "flag" "fmt" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/clientcmd" "time" ) func main() { kubeconfig := flag.String("kubeconfig", "/home/candide/.kube/config", "absolute path to the kubeconfig file") config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) if err != nil { fmt.Println("Error building config from flags:", err) } config.APIPath = "api" config.GroupVersion = &corev1.SchemeGroupVersion config.NegotiatedSerializer = scheme.Codecs clientSet, err := kubernetes.NewForConfig(config) if err != nil { fmt.Println("Error building clientSet from flags:", err) } informerFactory := informers.NewSharedInformerFactory(clientSet, time.Minute) deploymentInformer := informerFactory.Apps().V1().Deployments() informer := deploymentInformer.Informer() deployLister := deploymentInformer.Lister() informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { fmt.Println("Deployment Added") }, UpdateFunc: func(old, new interface{}) { fmt.Println("Deployment Updated") }, DeleteFunc: func(obj interface{}) { fmt.Println("Deployment Deleted") }, }) serviceInformer := informerFactory.Core().V1().Services() informer = serviceInformer.Informer() //serviceLister := serviceInformer.Lister() informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { fmt.Println("Service Added") }, UpdateFunc: func(old, new interface{}) { fmt.Println("Service Updated") }, DeleteFunc: func(obj interface{}) { fmt.Println("Service Deleted") }, }) stopper := make(chan struct{}) defer close(stopper) // Start informer, List & Watch informerFactory.Start(stopper) informerFactory.WaitForCacheSync(stopper) deployments, err := deployLister.Deployments("kube-system").List(labels.Everything()) if err != nil { fmt.Println("Error listing deployments:", err) } for idx, deploy := range deployments { fmt.Println(idx, deploy.Name) } <-stopper } ```