@@ -19,22 +19,20 @@ package main
19
19
import (
20
20
"flag"
21
21
"fmt"
22
- "net/http"
23
22
"os"
24
23
25
- "k8s.io/apiserver/pkg/server/healthz"
26
24
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
27
25
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/apis"
28
26
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/controller"
29
27
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/webhook"
30
28
ctrl "sigs.k8s.io/controller-runtime"
31
29
"sigs.k8s.io/controller-runtime/pkg/client/config"
30
+ "sigs.k8s.io/controller-runtime/pkg/healthz"
32
31
logf "sigs.k8s.io/controller-runtime/pkg/log"
33
32
"sigs.k8s.io/controller-runtime/pkg/manager"
34
33
35
34
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/controller/constants"
36
35
logrutil "sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/controller/util/logr"
37
- vcmanager "sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/controller/vcmanager"
38
36
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/version"
39
37
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/version/verflag"
40
38
)
@@ -43,6 +41,7 @@ func main() {
43
41
var (
44
42
logFile string
45
43
metricsAddr string
44
+ healthAddr string
46
45
masterProvisioner string
47
46
leaderElection bool
48
47
leaderElectionCmName string
@@ -52,6 +51,7 @@ func main() {
52
51
enableWebhook bool
53
52
)
54
53
flag .StringVar (& metricsAddr , "metrics-addr" , ":0" , "The address the metric endpoint binds to." )
54
+ flag .StringVar (& healthAddr , "health-addr" , ":8080" , "The address of the healthz/readyz endpoint binds to." )
55
55
flag .StringVar (& masterProvisioner , "master-prov" , "native" ,
56
56
"The underlying platform that will provision master for virtualcluster." )
57
57
flag .BoolVar (& leaderElection , "leader-election" , true , "If enable leaderelection for vc-manager" )
@@ -90,18 +90,28 @@ func main() {
90
90
// Create a new Cmd to provide shared dependencies and start components
91
91
log .Info ("setting up manager" )
92
92
mgrOpt := manager.Options {
93
- MetricsBindAddress : metricsAddr ,
94
- LeaderElection : leaderElection ,
95
- LeaderElectionID : leaderElectionCmName ,
96
- CertDir : constants .VirtualClusterWebhookCertDir ,
97
- Port : constants .VirtualClusterWebhookPort ,
93
+ MetricsBindAddress : metricsAddr ,
94
+ LeaderElection : leaderElection ,
95
+ LeaderElectionID : leaderElectionCmName ,
96
+ CertDir : constants .VirtualClusterWebhookCertDir ,
97
+ Port : constants .VirtualClusterWebhookPort ,
98
+ HealthProbeBindAddress : healthAddr ,
98
99
}
99
- mgr , err := vcmanager . NewVirtualClusterManager (cfg , mgrOpt , maxConcurrentReconciles )
100
+ mgr , err := ctrl . NewManager (cfg , mgrOpt )
100
101
if err != nil {
101
102
log .Error (err , "unable to set up overall controller manager" )
102
103
os .Exit (1 )
103
104
}
104
105
106
+ if err := mgr .AddReadyzCheck ("ping" , healthz .Ping ); err != nil {
107
+ log .Error (err , "unable to create ready check" )
108
+ os .Exit (1 )
109
+ }
110
+ if err := mgr .AddHealthzCheck ("ping" , healthz .Ping ); err != nil {
111
+ log .Error (err , "unable to create health check" )
112
+ os .Exit (1 )
113
+ }
114
+
105
115
log .Info ("Registering Components." )
106
116
107
117
// Setup Scheme for all resources
@@ -113,7 +123,12 @@ func main() {
113
123
114
124
// Setup all Controllers
115
125
log .Info ("Setting up controller" )
116
- if err := controller .AddToManager (mgr , masterProvisioner ); err != nil {
126
+ if err := (& controller.Controllers {
127
+ Log : log .WithName ("Controllers" ),
128
+ Client : mgr .GetClient (),
129
+ ProvisionerName : masterProvisioner ,
130
+ MaxConcurrentReconciles : maxConcurrentReconciles ,
131
+ }).SetupWithManager (mgr ); err != nil {
117
132
log .Error (err , "unable to register controllers to the manager" )
118
133
os .Exit (1 )
119
134
}
@@ -126,17 +141,6 @@ func main() {
126
141
}
127
142
}
128
143
129
- go func () {
130
- // start a health http server.
131
- log .Info ("Starting a health http server" )
132
- mux := http .NewServeMux ()
133
- healthz .InstallHandler (mux )
134
- if err := http .ListenAndServe (":8080" , mux ); err != nil {
135
- log .Error (err , "unable to start health http server" )
136
- os .Exit (1 )
137
- }
138
- }()
139
-
140
144
// Start the Cmd
141
145
log .Info ("Starting the Cmd." )
142
146
if err := mgr .Start (ctrl .SetupSignalHandler ()); err != nil {
0 commit comments