@@ -22,6 +22,7 @@ import (
2222
2323	"k8s.io/klog" 
2424	"sigs.k8s.io/controller-runtime/pkg/client/config" 
25+ 	"sigs.k8s.io/controller-runtime/pkg/healthz" 
2526	"sigs.k8s.io/controller-runtime/pkg/manager" 
2627	"sigs.k8s.io/controller-runtime/pkg/runtime/signals" 
2728
@@ -33,8 +34,14 @@ import (
3334	"sigs.k8s.io/cluster-api-provider-ibmcloud/pkg/record" 
3435)
3536
37+ var  (
38+ 	//flags 
39+ 	healthAddr  string 
40+ )
41+ 
3642func  main () {
3743	klog .InitFlags (nil )
44+ 	flag .StringVar (& healthAddr , "health-addr" , ":9440" , "The address the health endpoint binds to." )
3845	flag .Parse ()
3946
4047	klog .Info ("Starting controller of IBM cloud provider for cluster api" )
@@ -46,7 +53,8 @@ func main() {
4653
4754	// Setup a Manager 
4855	mgr , err  :=  manager .New (cfg , manager.Options {
49- 		LeaderElectionID : "controller-leader-election-cluster-api-provider-ibmcloud" ,
56+ 		LeaderElectionID :       "controller-leader-election-cluster-api-provider-ibmcloud" ,
57+ 		HealthProbeBindAddress : healthAddr ,
5058	})
5159	if  err  !=  nil  {
5260		klog .Fatalf ("unable to set up overall controller manager: %v" , err )
@@ -66,6 +74,14 @@ func main() {
6674		klog .Fatalf ("Error initializing controllers: %v" , err )
6775	}
6876
77+ 	if  err  :=  mgr .AddReadyzCheck ("ping" , healthz .Ping ); err  !=  nil  {
78+ 		klog .Fatalf ("unable to create health check: %v" , err )
79+ 	}
80+ 
81+ 	if  err  :=  mgr .AddHealthzCheck ("ping" , healthz .Ping ); err  !=  nil  {
82+ 		klog .Fatalf ("unable to create health check: %v" , err )
83+ 	}
84+ 
6985	if  err  :=  mgr .Start (signals .SetupSignalHandler ()); err  !=  nil  {
7086		klog .Fatalf ("Failed starting controller: %v" , err )
7187	}
0 commit comments