@@ -18,6 +18,7 @@ import (
18
18
"google.golang.org/grpc/credentials"
19
19
"google.golang.org/grpc/credentials/insecure"
20
20
_ "k8s.io/client-go/plugin/pkg/client/auth"
21
+ "k8s.io/client-go/rest"
21
22
22
23
"github.com/bombsimon/logrusr/v2"
23
24
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
@@ -123,52 +124,59 @@ func main() {
123
124
HealthProbeBindAddress : cfg .Health .Addr ,
124
125
LeaderElection : true ,
125
126
LeaderElectionID : "ws-manager-mk2-leader.gitpod.io" ,
126
- NewCache : cache .MultiNamespacedCacheBuilder ([]string {cfg .Manager .Namespace , cfg .Manager .SecretsNamespace }),
127
+ NewCache : func (config * rest.Config , opts cache.Options ) (cache.Cache , error ) {
128
+ opts .Namespaces = []string {cfg .Manager .Namespace , cfg .Manager .SecretsNamespace }
129
+ return cache .New (config , opts )
130
+ },
127
131
})
128
132
if err != nil {
129
133
setupLog .Error (err , "unable to start manager" )
130
134
os .Exit (1 )
131
135
}
132
136
133
- maintenanceReconciler , err := controllers .NewMaintenanceReconciler (mgr .GetClient ())
134
- if err != nil {
135
- setupLog .Error (err , "unable to create maintenance controller" , "controller" , "Maintenance" )
136
- os .Exit (1 )
137
- }
137
+ go func () {
138
+ <- mgr .Elected ()
138
139
139
- workspaceReconciler , err := controllers .NewWorkspaceReconciler (
140
- mgr .GetClient (), mgr .GetScheme (), mgr .GetEventRecorderFor ("workspace" ), & cfg .Manager , metrics .Registry , maintenanceReconciler )
141
- if err != nil {
142
- setupLog .Error (err , "unable to create controller" , "controller" , "Workspace" )
143
- os .Exit (1 )
144
- }
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
+ }
145
145
146
- activity := activity . NewWorkspaceActivity ()
147
- timeoutReconciler , err := controllers . NewTimeoutReconciler ( mgr .GetClient (), mgr .GetEventRecorderFor ("workspace" ), cfg .Manager , activity , maintenanceReconciler )
148
- if err != nil {
149
- setupLog .Error (err , "unable to create timeout controller" , "controller" , "Timeout " )
150
- os .Exit (1 )
151
- }
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
+ }
152
152
153
- wsmanService , err := setupGRPCService (cfg , mgr .GetClient (), activity , maintenanceReconciler )
154
- if err != nil {
155
- setupLog .Error (err , "unable to start manager service" )
156
- os .Exit (1 )
157
- }
153
+ activity := activity .NewWorkspaceActivity ()
154
+ timeoutReconciler , err := controllers .NewTimeoutReconciler (mgr .GetClient (), mgr .GetEventRecorderFor ("workspace" ), cfg .Manager , activity , maintenanceReconciler )
155
+ if err != nil {
156
+ setupLog .Error (err , "unable to create timeout controller" , "controller" , "Timeout" )
157
+ os .Exit (1 )
158
+ }
158
159
159
- workspaceReconciler .OnReconcile = wsmanService .OnWorkspaceReconcile
160
- if err = workspaceReconciler .SetupWithManager (mgr ); err != nil {
161
- setupLog .Error (err , "unable to setup workspace controller with manager" , "controller" , "Workspace" )
162
- os .Exit (1 )
163
- }
164
- if err = timeoutReconciler .SetupWithManager (mgr ); err != nil {
165
- setupLog .Error (err , "unable to setup timeout controller with manager" , "controller" , "Timeout" )
166
- os .Exit (1 )
167
- }
168
- if err = maintenanceReconciler .SetupWithManager (mgr ); err != nil {
169
- setupLog .Error (err , "unable to setup maintenance controller with manager" , "controller" , "Maintenance" )
170
- os .Exit (1 )
171
- }
160
+ wsmanService , err := setupGRPCService (cfg , mgr .GetClient (), activity , maintenanceReconciler )
161
+ if err != nil {
162
+ setupLog .Error (err , "unable to start manager service" )
163
+ os .Exit (1 )
164
+ }
165
+
166
+ workspaceReconciler .OnReconcile = wsmanService .OnWorkspaceReconcile
167
+ if err = workspaceReconciler .SetupWithManager (mgr ); err != nil {
168
+ setupLog .Error (err , "unable to setup workspace controller with manager" , "controller" , "Workspace" )
169
+ os .Exit (1 )
170
+ }
171
+ if err = timeoutReconciler .SetupWithManager (mgr ); err != nil {
172
+ setupLog .Error (err , "unable to setup timeout controller with manager" , "controller" , "Timeout" )
173
+ os .Exit (1 )
174
+ }
175
+ if err = maintenanceReconciler .SetupWithManager (mgr ); err != nil {
176
+ setupLog .Error (err , "unable to setup maintenance controller with manager" , "controller" , "Maintenance" )
177
+ os .Exit (1 )
178
+ }
179
+ }()
172
180
173
181
// if err = (&workspacev1.Workspace{}).SetupWebhookWithManager(mgr); err != nil {
174
182
// setupLog.Error(err, "unable to create webhook", "webhook", "Workspace")
0 commit comments