KubernetesのServiceを監視するコントローラ

やりたいことはclient-goというオフィシャルのKubernetesのクライアントを利用して、KubernetesのServiceの作成、削除、更新を監視することです。 ファイル名: watch_service.go package main import ( "flag" "fmt" "github.com/golang/glog" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/util/homedir" "path/filepath" "time" ) func main() { var kubeconfig *string home := homedir.HomeDir() kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "optional) absolute path to the kubeconfig file") flag.Parse() config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) if err != nil { glog.Fatal(err) } clientset, err := kubernetes.NewForConfig(config) if err != nil { glog.Fatal(err) } watchlist := cache.NewListWatchFromClient( clientset.CoreV1().RESTClient(), string(v1.ResourceServices), v1.