diff --git a/cmd/manager/main.go b/cmd/manager/main.go index 8edb537db..02fa4ad17 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -16,6 +16,7 @@ import ( ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client/config" "sigs.k8s.io/controller-runtime/pkg/controller" + "sigs.k8s.io/controller-runtime/pkg/healthz" "sigs.k8s.io/controller-runtime/pkg/manager" ) @@ -24,7 +25,16 @@ func main() { flag.BoolVar(&printVersion, "version", false, "print version and exit") klog.InitFlags(nil) - watchNamespace := flag.String("namespace", "", "Namespace that the controller watches to reconcile machine-api objects. If unspecified, the controller watches for machine-api objects across all namespaces.") + watchNamespace := flag.String( + "namespace", + "", + "Namespace that the controller watches to reconcile machine-api objects. If unspecified, the controller watches for machine-api objects across all namespaces.", + ) + healthAddr := flag.String( + "health-addr", + ":9440", + "The address for health checking.", + ) flag.Set("logtostderr", "true") flag.Parse() @@ -37,7 +47,8 @@ func main() { opts := manager.Options{ // Disable metrics serving - MetricsBindAddress: "0", + MetricsBindAddress: "0", + HealthProbeBindAddress: *healthAddr, } if *watchNamespace != "" { opts.Namespace = *watchNamespace @@ -78,6 +89,14 @@ func main() { os.Exit(1) } + if err := mgr.AddReadyzCheck("ping", healthz.Ping); err != nil { + klog.Fatal(err) + } + + if err := mgr.AddHealthzCheck("ping", healthz.Ping); err != nil { + klog.Fatal(err) + } + if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil { klog.Fatalf("Failed to run manager: %v", err) }