@@ -30,6 +30,7 @@ import (
3030 _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
3131 ctrl "sigs.k8s.io/controller-runtime"
3232 "sigs.k8s.io/controller-runtime/pkg/client"
33+ "sigs.k8s.io/controller-runtime/pkg/healthz"
3334 "sigs.k8s.io/controller-runtime/pkg/log/zap"
3435 "sigs.k8s.io/controller-runtime/pkg/manager"
3536 metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
@@ -88,6 +89,7 @@ func main() {
8889 Metrics : metricsserver.Options {
8990 BindAddress : "0" , // disable metrics
9091 },
92+ HealthProbeBindAddress : ":8081" ,
9193 }
9294
9395 mgr , err := ctrl .NewManager (ctrl .GetConfigOrDie (), ctrlOptions )
@@ -96,6 +98,10 @@ func main() {
9698 os .Exit (1 )
9799 }
98100
101+ if err = setupHealthProbes (mgr ); err != nil {
102+ os .Exit (1 )
103+ }
104+
99105 err = setupOperatorController (mgr )
100106 if err != nil {
101107 setupLog .Error (err , "unable to setup controller" , "controller" , "NMState" )
@@ -146,3 +152,15 @@ func setProfiler() {
146152 }()
147153 }
148154}
155+
156+ func setupHealthProbes (mgr manager.Manager ) error {
157+ if err := mgr .AddHealthzCheck ("healthz" , healthz .Ping ); err != nil {
158+ setupLog .Error (err , "unable to set up healthz check" )
159+ return err
160+ }
161+ if err := mgr .AddReadyzCheck ("readyz" , healthz .Ping ); err != nil {
162+ setupLog .Error (err , "unable to set up readyz check" )
163+ return err
164+ }
165+ return nil
166+ }
0 commit comments