@@ -12,6 +12,7 @@ import (
12
12
"github.com/canonical/k8s/pkg/k8sd/types"
13
13
"github.com/canonical/k8s/pkg/log"
14
14
"github.com/canonical/k8s/pkg/snap"
15
+ snaputil "github.com/canonical/k8s/pkg/snap/util"
15
16
"github.com/canonical/k8s/pkg/utils"
16
17
"k8s.io/client-go/rest"
17
18
"sigs.k8s.io/controller-runtime/pkg/cache"
@@ -25,28 +26,31 @@ type Coordinator struct {
25
26
snap snap.Snap
26
27
waitReady func ()
27
28
28
- // Upgrade controller
29
- disableUpgradeController bool
30
- upgradeControllerOpts upgrade.ControllerOptions
29
+ upgradeControllerOptions UpgradeControllerOptions
30
+ csrSigningControllerOptions CSRSigningControllerOptions
31
+ }
32
+
33
+ type UpgradeControllerOptions struct {
34
+ upgrade.ControllerOptions
35
+ Disable bool
36
+ }
31
37
32
- // CSR signing controller
33
- disableCSRSigningController bool
38
+ type CSRSigningControllerOptions struct {
39
+ Disable bool
34
40
}
35
41
36
42
// NewCoordinator creates a new Coordinator instance.
37
43
func NewCoordinator (
38
44
snap snap.Snap ,
39
45
waitReady func (),
40
- disableUpgradeController bool ,
41
- upgradeControllerOpts upgrade.ControllerOptions ,
42
- disableCSRSiningController bool ,
46
+ upgradeControllerOptions UpgradeControllerOptions ,
47
+ csrSigningControllerOptions CSRSigningControllerOptions ,
43
48
) * Coordinator {
44
49
return & Coordinator {
45
50
snap : snap ,
46
51
waitReady : waitReady ,
47
- disableUpgradeController : disableUpgradeController ,
48
- upgradeControllerOpts : upgradeControllerOpts ,
49
- disableCSRSigningController : disableCSRSiningController ,
52
+ upgradeControllerOptions : upgradeControllerOptions ,
53
+ csrSigningControllerOptions : csrSigningControllerOptions ,
50
54
}
51
55
}
52
56
@@ -56,6 +60,16 @@ func (c *Coordinator) Run(
56
60
getClusterConfig func (context.Context ) (types.ClusterConfig , error ),
57
61
) error {
58
62
logger := log .FromContext (ctx ).WithName ("controller-coordinator" )
63
+
64
+ isWorker , err := snaputil .IsWorker (c .snap )
65
+ if err != nil {
66
+ return fmt .Errorf ("failed to determine if snap is running as worker: %w" , err )
67
+ }
68
+ if isWorker {
69
+ logger .Info ("Skipping controller coordinator on worker node" )
70
+ return nil
71
+ }
72
+
59
73
ctrllog .SetLogger (logger )
60
74
ctx = log .NewContext (ctx , logger )
61
75
@@ -132,7 +146,7 @@ func (c *Coordinator) setupUpgradeController(
132
146
) error {
133
147
logger := mgr .GetLogger ()
134
148
135
- if c .disableUpgradeController {
149
+ if c .upgradeControllerOptions . Disable {
136
150
logger .Info ("Upgrade controller is disabled. Skipping setup." )
137
151
return nil
138
152
}
@@ -150,7 +164,7 @@ func (c *Coordinator) setupUpgradeController(
150
164
upgradeController := upgrade .NewController (
151
165
logger ,
152
166
mgr .GetClient (),
153
- c .upgradeControllerOpts ,
167
+ c .upgradeControllerOptions . ControllerOptions ,
154
168
)
155
169
156
170
if err := upgradeController .SetupWithManager (mgr ); err != nil {
@@ -166,7 +180,7 @@ func (c *Coordinator) setupCSRSigningController(
166
180
) error {
167
181
logger := mgr .GetLogger ()
168
182
169
- if c .disableCSRSigningController {
183
+ if c .csrSigningControllerOptions . Disable {
170
184
logger .Info ("CSR signing controller is disabled. Skipping setup." )
171
185
return nil
172
186
}
0 commit comments