@@ -112,18 +112,20 @@ func main() {
112
112
setupLog .Error (nil , "namespace cannot be empty" )
113
113
os .Exit (1 )
114
114
}
115
+
115
116
if cfg .Manager .SecretsNamespace == "" {
116
117
setupLog .Error (nil , "secretsNamespace cannot be empty" )
117
118
os .Exit (1 )
118
119
}
119
120
120
121
mgr , err := ctrl .NewManager (ctrl .GetConfigOrDie (), ctrl.Options {
121
- Scheme : scheme ,
122
- MetricsBindAddress : cfg .Prometheus .Addr ,
123
- Port : 9443 ,
124
- HealthProbeBindAddress : cfg .Health .Addr ,
125
- LeaderElection : true ,
126
- LeaderElectionID : "ws-manager-mk2-leader.gitpod.io" ,
122
+ Scheme : scheme ,
123
+ MetricsBindAddress : cfg .Prometheus .Addr ,
124
+ Port : 9443 ,
125
+ HealthProbeBindAddress : cfg .Health .Addr ,
126
+ LeaderElection : true ,
127
+ LeaderElectionID : "ws-manager-mk2-leader.gitpod.io" ,
128
+ LeaderElectionReleaseOnCancel : true ,
127
129
NewCache : func (config * rest.Config , opts cache.Options ) (cache.Cache , error ) {
128
130
opts .Namespaces = []string {cfg .Manager .Namespace , cfg .Manager .SecretsNamespace }
129
131
return cache .New (config , opts )
@@ -134,53 +136,50 @@ func main() {
134
136
os .Exit (1 )
135
137
}
136
138
137
- go func () {
138
- <- mgr .Elected ()
139
-
140
- maintenanceReconciler , err := controllers .NewMaintenanceReconciler (mgr .GetClient ())
141
- if err != nil {
142
- setupLog .Error (err , "unable to create maintenance controller" , "controller" , "Maintenance" )
143
- os .Exit (1 )
144
- }
139
+ mgrCtx := ctrl .SetupSignalHandler ()
145
140
146
- workspaceReconciler , err := controllers .NewWorkspaceReconciler (
147
- mgr .GetClient (), mgr .GetScheme (), mgr .GetEventRecorderFor ("workspace" ), & cfg .Manager , metrics .Registry , maintenanceReconciler )
148
- if err != nil {
149
- setupLog .Error (err , "unable to create controller" , "controller" , "Workspace" )
150
- os .Exit (1 )
151
- }
141
+ maintenanceReconciler , err := controllers .NewMaintenanceReconciler (mgr .GetClient ())
142
+ if err != nil {
143
+ setupLog .Error (err , "unable to create maintenance controller" , "controller" , "Maintenance" )
144
+ os .Exit (1 )
145
+ }
152
146
153
- activity := activity .NewWorkspaceActivity ()
147
+ workspaceReconciler , err := controllers .NewWorkspaceReconciler (
148
+ mgr .GetClient (), mgr .GetScheme (), mgr .GetEventRecorderFor ("workspace" ), & cfg .Manager , metrics .Registry , maintenanceReconciler )
149
+ if err != nil {
150
+ setupLog .Error (err , "unable to create controller" , "controller" , "Workspace" )
151
+ os .Exit (1 )
152
+ }
154
153
155
- timeoutReconciler , err := controllers .NewTimeoutReconciler (mgr .GetClient (), mgr .GetEventRecorderFor ("workspace" ), cfg .Manager , activity , maintenanceReconciler )
156
- if err != nil {
157
- setupLog .Error (err , "unable to create timeout controller" , "controller" , "Timeout" )
158
- os .Exit (1 )
159
- }
154
+ activity := activity .NewWorkspaceActivity ()
160
155
161
- wsmanService , err := setupGRPCService ( cfg , mgr .GetClient () , activity , maintenanceReconciler )
162
- if err != nil {
163
- setupLog .Error (err , "unable to start manager service " )
164
- os .Exit (1 )
165
- }
156
+ timeoutReconciler , err := controllers . NewTimeoutReconciler ( mgr . GetClient () , mgr .GetEventRecorderFor ( "workspace" ), cfg . Manager , activity , maintenanceReconciler )
157
+ if err != nil {
158
+ setupLog .Error (err , "unable to create timeout controller" , "controller" , "Timeout " )
159
+ os .Exit (1 )
160
+ }
166
161
167
- workspaceReconciler .OnReconcile = wsmanService .OnWorkspaceReconcile
162
+ wsmanService , err := setupGRPCService (cfg , mgr .GetClient (), activity , maintenanceReconciler )
163
+ if err != nil {
164
+ setupLog .Error (err , "unable to start manager service" )
165
+ os .Exit (1 )
166
+ }
168
167
169
- if err = workspaceReconciler .SetupWithManager (mgr ); err != nil {
170
- setupLog .Error (err , "unable to setup workspace controller with manager" , "controller" , "Workspace" )
171
- os .Exit (1 )
172
- }
168
+ workspaceReconciler .OnReconcile = wsmanService .OnWorkspaceReconcile
169
+ if err = workspaceReconciler .SetupWithManager (mgr ); err != nil {
170
+ setupLog .Error (err , "unable to setup workspace controller with manager" , "controller" , "Workspace" )
171
+ os .Exit (1 )
172
+ }
173
173
174
- if err = timeoutReconciler .SetupWithManager (mgr ); err != nil {
175
- setupLog .Error (err , "unable to setup timeout controller with manager" , "controller" , "Timeout" )
176
- os .Exit (1 )
177
- }
174
+ if err = timeoutReconciler .SetupWithManager (mgr ); err != nil {
175
+ setupLog .Error (err , "unable to setup timeout controller with manager" , "controller" , "Timeout" )
176
+ os .Exit (1 )
177
+ }
178
178
179
- if err = maintenanceReconciler .SetupWithManager (mgr ); err != nil {
180
- setupLog .Error (err , "unable to setup maintenance controller with manager" , "controller" , "Maintenance" )
181
- os .Exit (1 )
182
- }
183
- }()
179
+ if err = maintenanceReconciler .SetupWithManager (mgrCtx , mgr ); err != nil {
180
+ setupLog .Error (err , "unable to setup maintenance controller with manager" , "controller" , "Maintenance" )
181
+ os .Exit (1 )
182
+ }
184
183
185
184
// if err = (&workspacev1.Workspace{}).SetupWebhookWithManager(mgr); err != nil {
186
185
// setupLog.Error(err, "unable to create webhook", "webhook", "Workspace")
@@ -199,7 +198,7 @@ func main() {
199
198
}
200
199
201
200
setupLog .Info ("starting manager" )
202
- if err := mgr .Start (ctrl . SetupSignalHandler () ); err != nil {
201
+ if err := mgr .Start (mgrCtx ); err != nil {
203
202
setupLog .Error (err , "problem running manager" )
204
203
os .Exit (1 )
205
204
}
0 commit comments