@@ -26,6 +26,7 @@ import (
26
26
27
27
"sigs.k8s.io/cluster-api-provider-openstack/pkg/record"
28
28
"sigs.k8s.io/controller-runtime/pkg/client/config"
29
+ "sigs.k8s.io/controller-runtime/pkg/healthz"
29
30
30
31
_ "net/http/pprof"
31
32
@@ -63,6 +64,7 @@ func main() {
63
64
openStackClusterConcurrency int
64
65
openStackMachineConcurrency int
65
66
syncPeriod time.Duration
67
+ healthAddr string
66
68
)
67
69
68
70
flag .StringVar (
@@ -111,6 +113,12 @@ func main() {
111
113
"The minimum interval at which watched resources are reconciled (e.g. 15m)" ,
112
114
)
113
115
116
+ flag .StringVar (& healthAddr ,
117
+ "health-addr" ,
118
+ ":9440" ,
119
+ "The address the health endpoint binds to." ,
120
+ )
121
+
114
122
flag .Parse ()
115
123
116
124
if watchNamespace != "" {
@@ -132,12 +140,13 @@ func main() {
132
140
}
133
141
134
142
mgr , err := ctrl .NewManager (cfg , ctrl.Options {
135
- Scheme : scheme ,
136
- MetricsBindAddress : metricsAddr ,
137
- LeaderElection : enableLeaderElection ,
138
- LeaderElectionID : "controller-leader-election-capo" ,
139
- SyncPeriod : & syncPeriod ,
140
- Namespace : watchNamespace ,
143
+ Scheme : scheme ,
144
+ MetricsBindAddress : metricsAddr ,
145
+ LeaderElection : enableLeaderElection ,
146
+ LeaderElectionID : "controller-leader-election-capo" ,
147
+ SyncPeriod : & syncPeriod ,
148
+ Namespace : watchNamespace ,
149
+ HealthProbeBindAddress : healthAddr ,
141
150
})
142
151
if err != nil {
143
152
setupLog .Error (err , "unable to start manager" )
@@ -165,6 +174,16 @@ func main() {
165
174
}
166
175
// +kubebuilder:scaffold:builder
167
176
177
+ if err := mgr .AddReadyzCheck ("ping" , healthz .Ping ); err != nil {
178
+ setupLog .Error (err , "unable to create ready check" )
179
+ os .Exit (1 )
180
+ }
181
+
182
+ if err := mgr .AddHealthzCheck ("ping" , healthz .Ping ); err != nil {
183
+ setupLog .Error (err , "unable to create health check" )
184
+ os .Exit (1 )
185
+ }
186
+
168
187
setupLog .Info ("starting manager" )
169
188
if err := mgr .Start (ctrl .SetupSignalHandler ()); err != nil {
170
189
setupLog .Error (err , "problem running manager" )
0 commit comments