Skip to content

Commit bf14330

Browse files
Switching KMM to work with the new build/sign flow
changing the manager's main to use MIC and MBSC reconcilers instead of BuildSignReconciler
1 parent b252575 commit bf14330

File tree

5 files changed

+52
-35
lines changed

5 files changed

+52
-35
lines changed

cmd/manager/main.go

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,23 @@ import (
2222
"os"
2323
"strconv"
2424

25+
"github.com/kubernetes-sigs/kernel-module-management/internal/mbsc"
2526
"github.com/kubernetes-sigs/kernel-module-management/internal/mic"
2627
"github.com/kubernetes-sigs/kernel-module-management/internal/node"
2728
"github.com/kubernetes-sigs/kernel-module-management/internal/pod"
2829

2930
"github.com/kubernetes-sigs/kernel-module-management/api/v1beta1"
3031
"github.com/kubernetes-sigs/kernel-module-management/api/v1beta2"
31-
buildpod "github.com/kubernetes-sigs/kernel-module-management/internal/build/pod"
3232
"github.com/kubernetes-sigs/kernel-module-management/internal/buildsign"
3333
buildsignpod "github.com/kubernetes-sigs/kernel-module-management/internal/buildsign/pod"
3434
"github.com/kubernetes-sigs/kernel-module-management/internal/cmd"
3535
"github.com/kubernetes-sigs/kernel-module-management/internal/config"
36-
"github.com/kubernetes-sigs/kernel-module-management/internal/constants"
3736
"github.com/kubernetes-sigs/kernel-module-management/internal/controllers"
3837
"github.com/kubernetes-sigs/kernel-module-management/internal/filter"
3938
"github.com/kubernetes-sigs/kernel-module-management/internal/metrics"
4039
"github.com/kubernetes-sigs/kernel-module-management/internal/module"
4140
"github.com/kubernetes-sigs/kernel-module-management/internal/nmc"
42-
"github.com/kubernetes-sigs/kernel-module-management/internal/preflight"
4341
"github.com/kubernetes-sigs/kernel-module-management/internal/registry"
44-
signpod "github.com/kubernetes-sigs/kernel-module-management/internal/sign/pod"
4542

4643
"k8s.io/apimachinery/pkg/runtime"
4744
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
@@ -124,6 +121,8 @@ func main() {
124121
nodeAPI := node.NewNode(client)
125122
kernelAPI := module.NewKernelMapper(buildSignHelperAPI)
126123
micAPI := mic.New(client, scheme)
124+
mbscAPI := mbsc.New(client, scheme)
125+
imagePullerAPI := pod.NewImagePuller(client, scheme)
127126

128127
dpc := controllers.NewDevicePluginReconciler(
129128
client,
@@ -168,6 +167,10 @@ func main() {
168167
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.NodeLabelModuleVersionReconcilerName)
169168
}
170169

170+
if err = controllers.NewMICReconciler(client, micAPI, mbscAPI, imagePullerAPI, scheme).SetupWithManager(mgr); err != nil {
171+
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.MICReconcilerName)
172+
}
173+
171174
if managed {
172175
setupLogger.Info("Starting as managed")
173176

@@ -179,30 +182,38 @@ func main() {
179182
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.NodeKernelClusterClaimReconcilerName)
180183
}
181184
} else {
182-
buildSignPodAPI := buildsignpod.NewBuildSignPodManager(client)
183-
184-
buildAPI := buildpod.NewBuildManager(
185-
client,
186-
buildpod.NewMaker(client, buildSignHelperAPI, buildSignPodAPI, scheme),
187-
buildSignPodAPI,
188-
registryAPI,
189-
)
190-
191-
signAPI := signpod.NewSignPodManager(
192-
client,
193-
signpod.NewSigner(client, scheme, buildSignPodAPI),
194-
buildSignPodAPI,
195-
registryAPI,
196-
)
197-
bsc := controllers.NewBuildSignReconciler(
198-
client,
199-
buildAPI,
200-
signAPI,
201-
kernelAPI,
202-
filterAPI,
203-
nodeAPI)
204-
if err = bsc.SetupWithManager(mgr, constants.KernelLabel); err != nil {
205-
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.BuildSignReconcilerName)
185+
/*
186+
buildSignPodAPI := buildsignpod.NewBuildSignPodManager(client)
187+
188+
buildAPI := buildpod.NewBuildManager(
189+
client,
190+
buildpod.NewMaker(client, buildSignHelperAPI, buildSignPodAPI, scheme),
191+
buildSignPodAPI,
192+
registryAPI,
193+
)
194+
195+
signAPI := signpod.NewSignPodManager(
196+
client,
197+
signpod.NewSigner(client, scheme, buildSignPodAPI),
198+
buildSignPodAPI,
199+
registryAPI,
200+
)
201+
bsc := controllers.NewBuildSignReconciler(
202+
client,
203+
buildAPI,
204+
signAPI,
205+
kernelAPI,
206+
filterAPI,
207+
nodeAPI)
208+
if err = bsc.SetupWithManager(mgr, constants.KernelLabel); err != nil {
209+
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.BuildSignReconcilerName)
210+
}
211+
*/
212+
builSignAPI := buildsignpod.NewManager(client, buildSignHelperAPI, scheme)
213+
214+
mbscr := controllers.NewMBSCReconciler(client, builSignAPI, mbscAPI)
215+
if err = mbscr.SetupWithManager(mgr); err != nil {
216+
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.MBSCReconcilerName)
206217
}
207218

208219
helper := controllers.NewJobEventReconcilerHelper(client)
@@ -215,12 +226,15 @@ func main() {
215226
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.JobGCReconcilerName)
216227
}
217228

218-
preflightStatusUpdaterAPI := preflight.NewStatusUpdater(client)
219-
preflightAPI := preflight.NewPreflightAPI(client, buildAPI, signAPI, registryAPI, preflightStatusUpdaterAPI, kernelAPI)
229+
//[TODO] - update the preflight flow with the MIC/MBSC implementation and then uncomment the preflight conroller
230+
/*
231+
preflightStatusUpdaterAPI := preflight.NewStatusUpdater(client)
232+
preflightAPI := preflight.NewPreflightAPI(client, buildAPI, signAPI, registryAPI, preflightStatusUpdaterAPI, kernelAPI)
220233
221-
if err = controllers.NewPreflightValidationReconciler(client, filterAPI, metricsAPI, preflightStatusUpdaterAPI, preflightAPI).SetupWithManager(mgr); err != nil {
222-
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.PreflightValidationReconcilerName)
223-
}
234+
if err = controllers.NewPreflightValidationReconciler(client, filterAPI, metricsAPI, preflightStatusUpdaterAPI, preflightAPI).SetupWithManager(mgr); err != nil {
235+
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.PreflightValidationReconcilerName)
236+
}
237+
*/
224238
}
225239

226240
//+kubebuilder:scaffold:builder

config/rbac/role.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ rules:
8080
- kmm.sigs.x-k8s.io
8181
resources:
8282
- modulebuildsignconfigs/status
83+
- moduleimagesconfigs/status
8384
- modules/status
8485
- preflightvalidations/status
8586
verbs:

internal/controllers/mbsc_reconciler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func NewMBSCReconciler(
5353
}
5454

5555
// SetupWithManager sets up the controller with the Manager.
56-
func (r *mbscReconciler) SetupWithManager(mgr ctrl.Manager, kernelLabel string) error {
56+
func (r *mbscReconciler) SetupWithManager(mgr ctrl.Manager) error {
5757
return ctrl.NewControllerManagedBy(mgr).
5858
For(&kmmv1beta1.ModuleBuildSignConfig{}).
5959
Owns(&v1.Pod{}).

internal/controllers/mic_reconciler.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ func (r *micReconciler) SetupWithManager(mgr ctrl.Manager) error {
6363
)
6464
}
6565

66+
//+kubebuilder:rbac:groups=kmm.sigs.x-k8s.io,resources=moduleimagesconfigs,verbs=get;list;watch;patch;create;delete
67+
//+kubebuilder:rbac:groups=kmm.sigs.x-k8s.io,resources=moduleimagesconfigs/status,verbs=get;update;patch
68+
6669
func (r *micReconciler) Reconcile(ctx context.Context, micObj *kmmv1beta1.ModuleImagesConfig) (ctrl.Result, error) {
6770
res := ctrl.Result{}
6871
if micObj.GetDeletionTimestamp() != nil {

internal/controllers/module_reconciler.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import (
3535
//+kubebuilder:rbac:groups="core",resources=namespaces,verbs=get;list;patch;watch
3636
//+kubebuilder:rbac:groups="core",resources=nodes,verbs=get;watch
3737
//+kubebuilder:rbac:groups=kmm.sigs.x-k8s.io,resources=nodemodulesconfigs,verbs=get;list;watch;patch;create;delete
38-
//+kubebuilder:rbac:groups=kmm.sigs.x-k8s.io,resources=moduleimagesconfigs,verbs=get;list;watch;patch;create;delete
3938

4039
const (
4140
ModuleReconcilerName = "ModuleReconciler"

0 commit comments

Comments
 (0)