Skip to content

Commit 9d19612

Browse files
yevgeny-shnaidmank8s-ci-robot
authored andcommitted
Propagate PushBuiltImage flag from different controllers to Build object
Propagating the PushBuilt image to the MIC object and eventually to the MBSC object. Module/MCM reconcilers are setting it to true, Preflight is setting ti based on value of the PushBuiltImage in Preflight Spec
1 parent 8fcf282 commit 9d19612

12 files changed

+27
-22
lines changed

internal/controllers/hub/managedclustermodule_reconciler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ func (rh *managedClusterModuleReconcilerHelper) setMicAsDesired(ctx context.Cont
231231
micName := mcm.Name + "-" + clusterName
232232
micNamespace := rh.clusterAPI.GetDefaultArtifactsNamespace()
233233
if err := rh.micAPI.CreateOrPatch(ctx, micName, micNamespace, images, mcm.Spec.ModuleSpec.ImageRepoSecret,
234-
mcm.Spec.ModuleSpec.ModuleLoader.Container.ImagePullPolicy, mcm); err != nil {
234+
mcm.Spec.ModuleSpec.ModuleLoader.Container.ImagePullPolicy, true, mcm); err != nil {
235235
return fmt.Errorf("failed to createOrPatch MIC %s: %v", micName, err)
236236
}
237237

internal/controllers/hub/managedclustermodule_reconciler_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ var _ = Describe("managedClusterModuleReconcilerHelperAPI_setMicAsDesired", func
462462
gomock.InOrder(
463463
mockClusterAPI.EXPECT().GetModuleLoaderDataForKernel(mcm, kernelVersions[0]).Return(&api.ModuleLoaderData{}, nil),
464464
mockClusterAPI.EXPECT().GetDefaultArtifactsNamespace().Return(defaultNs),
465-
mockMIC.EXPECT().CreateOrPatch(ctx, micName, defaultNs, gomock.Any(), nil, v1.PullPolicy(""), mcm).
465+
mockMIC.EXPECT().CreateOrPatch(ctx, micName, defaultNs, gomock.Any(), nil, v1.PullPolicy(""), true, mcm).
466466
Return(errors.New("some error")),
467467
)
468468

@@ -500,7 +500,7 @@ var _ = Describe("managedClusterModuleReconcilerHelperAPI_setMicAsDesired", func
500500
mockClusterAPI.EXPECT().GetModuleLoaderDataForKernel(mcm, kernelVersions[0]).Return(nil, module.ErrNoMatchingKernelMapping),
501501
mockClusterAPI.EXPECT().GetModuleLoaderDataForKernel(mcm, kernelVersions[1]).Return(expectedMLD, nil),
502502
mockClusterAPI.EXPECT().GetDefaultArtifactsNamespace().Return(defaultNs),
503-
mockMIC.EXPECT().CreateOrPatch(ctx, micName, defaultNs, expectedImages, gomock.Any(), v1.PullPolicy(""), mcm).Return(nil),
503+
mockMIC.EXPECT().CreateOrPatch(ctx, micName, defaultNs, expectedImages, gomock.Any(), v1.PullPolicy(""), true, mcm).Return(nil),
504504
)
505505

506506
err := mcmReconHelperAPI.setMicAsDesired(ctx, mcm, clusterName, kernelVersions)
@@ -546,7 +546,7 @@ var _ = Describe("managedClusterModuleReconcilerHelperAPI_setMicAsDesired", func
546546
mockClusterAPI.EXPECT().GetModuleLoaderDataForKernel(mcm, kernelVersions[0]).Return(expectedMLDs[0], nil),
547547
mockClusterAPI.EXPECT().GetModuleLoaderDataForKernel(mcm, kernelVersions[1]).Return(expectedMLDs[1], nil),
548548
mockClusterAPI.EXPECT().GetDefaultArtifactsNamespace().Return(defaultNs),
549-
mockMIC.EXPECT().CreateOrPatch(ctx, micName, defaultNs, expectedImages, gomock.Any(), v1.PullPolicy(""), mcm).Return(nil),
549+
mockMIC.EXPECT().CreateOrPatch(ctx, micName, defaultNs, expectedImages, gomock.Any(), v1.PullPolicy(""), true, mcm).Return(nil),
550550
)
551551

552552
err := mcmReconHelperAPI.setMicAsDesired(ctx, mcm, clusterName, kernelVersions)

internal/controllers/mbsc_reconciler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ func (mrh *mbscReconcilerHelper) processImagesSpecs(ctx context.Context, mbscObj
144144
continue
145145
}
146146
mld := createMLD(mbscObj, &imageSpec.ModuleImageSpec)
147-
err := mrh.buildSignAPI.Sync(ctx, mld, true, imageSpec.Action, mbscObj)
147+
err := mrh.buildSignAPI.Sync(ctx, mld, mbscObj.Spec.PushBuiltImage, imageSpec.Action, mbscObj)
148148
if err != nil {
149149
errs = append(errs, err)
150150
logger.Info(utils.WarnString(fmt.Sprintf("sync for image %s, action %s failed: %v", imageSpec.Image, imageSpec.Action, err)))

internal/controllers/mbsc_reconciler_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ var _ = Describe("processImagesSpecs", func() {
196196
Action: kmmv1beta1.BuildImage,
197197
},
198198
},
199+
PushBuiltImage: true,
199200
},
200201
}
201202

internal/controllers/module_reconciler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ func (mrh *moduleReconcilerHelper) handleMIC(ctx context.Context, mod *kmmv1beta
377377
}
378378

379379
if err := mrh.micAPI.CreateOrPatch(ctx, mod.Name, mod.Namespace, images, mod.Spec.ImageRepoSecret,
380-
mod.Spec.ModuleLoader.Container.ImagePullPolicy, mod); err != nil {
380+
mod.Spec.ModuleLoader.Container.ImagePullPolicy, true, mod); err != nil {
381381
errs = append(errs, fmt.Errorf("failed to apply %s/%s MIC: %v", mod.Namespace, mod.Name, err))
382382
}
383383

internal/controllers/module_reconciler_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ var _ = Describe("handleMIC", func() {
458458
It("should return an error if we failed to get moduleLoaderData for kernel", func() {
459459

460460
mockKernelMapper.EXPECT().GetModuleLoaderDataForKernel(mod, gomock.Any()).Return(nil, errors.New("some error"))
461-
mockMICAPI.EXPECT().CreateOrPatch(ctx, mod.Name, mod.Namespace, gomock.Any(), mod.Spec.ImageRepoSecret, v1.PullPolicy(""), mod).Return(nil)
461+
mockMICAPI.EXPECT().CreateOrPatch(ctx, mod.Name, mod.Namespace, gomock.Any(), mod.Spec.ImageRepoSecret, v1.PullPolicy(""), true, mod).Return(nil)
462462

463463
err := mrh.handleMIC(ctx, mod, targetedNodes)
464464
Expect(err).To(HaveOccurred())
@@ -471,15 +471,15 @@ var _ = Describe("handleMIC", func() {
471471
mld := &api.ModuleLoaderData{ContainerImage: img}
472472
mockKernelMapper.EXPECT().GetModuleLoaderDataForKernel(mod, gomock.Any()).Return(mld, nil)
473473
mockMICAPI.EXPECT().CreateOrPatch(ctx, mod.Name, mod.Namespace, gomock.Any(), mod.Spec.ImageRepoSecret,
474-
v1.PullPolicy(""), mod).Return(errors.New("some error"))
474+
v1.PullPolicy(""), true, mod).Return(errors.New("some error"))
475475

476476
err := mrh.handleMIC(ctx, mod, targetedNodes)
477477
Expect(err).To(HaveOccurred())
478478
Expect(err.Error()).To(ContainSubstring("failed to apply"))
479479
})
480480

481481
It("should not do anything if targetedNodes is empty", func() {
482-
mockMICAPI.EXPECT().CreateOrPatch(ctx, mod.Name, mod.Namespace, gomock.Any(), mod.Spec.ImageRepoSecret, v1.PullPolicy(""), mod).Return(nil)
482+
mockMICAPI.EXPECT().CreateOrPatch(ctx, mod.Name, mod.Namespace, gomock.Any(), mod.Spec.ImageRepoSecret, v1.PullPolicy(""), true, mod).Return(nil)
483483
err := mrh.handleMIC(ctx, mod, []v1.Node{})
484484
Expect(err).NotTo(HaveOccurred())
485485
})
@@ -503,7 +503,7 @@ var _ = Describe("handleMIC", func() {
503503
}
504504
mockKernelMapper.EXPECT().GetModuleLoaderDataForKernel(mod, gomock.Any()).Return(mld, nil)
505505
mockMICAPI.EXPECT().CreateOrPatch(ctx, mod.Name, mod.Namespace, []kmmv1beta1.ModuleImageSpec{expectedSpec},
506-
mod.Spec.ImageRepoSecret, v1.PullPolicy(""), mod).Return(nil)
506+
mod.Spec.ImageRepoSecret, v1.PullPolicy(""), true, mod).Return(nil)
507507

508508
err := mrh.handleMIC(ctx, mod, targetedNodes)
509509
Expect(err).NotTo(HaveOccurred())

internal/controllers/preflightvalidation_reconciler.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ func (p *preflightReconcilerHelperImpl) processPreflightValidation(ctx context.C
230230
RegistryTLS: mod.RegistryTLS,
231231
}
232232
micName := mod.Name + "-preflight"
233-
err := p.micAPI.CreateOrPatch(ctx, micName, mod.Namespace, []kmmv1beta1.ModuleImageSpec{micObjSpec}, mod.ImageRepoSecret, mod.ImagePullPolicy, pv)
233+
err := p.micAPI.CreateOrPatch(ctx, micName, mod.Namespace, []kmmv1beta1.ModuleImageSpec{micObjSpec},
234+
mod.ImageRepoSecret, mod.ImagePullPolicy, pv.Spec.PushBuiltImage, pv)
234235
if err != nil {
235236
errs = append(errs, fmt.Errorf("failed to apply %s/%s MIC: %v", mod.Namespace, mod.Name, err))
236237
}

internal/controllers/preflightvalidation_reconciler_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,10 @@ var _ = Describe("processPreflightValidation", func() {
275275
mockPreflight.EXPECT().GetModuleStatus(pv, "mld namespace2", "mld name2").Return(v1beta2.VerificationFailure),
276276
mockPreflight.EXPECT().GetModuleStatus(pv, "mld namespace3", "mld name3").Return(v1beta2.VerificationInProgress),
277277
mockMic.EXPECT().CreateOrPatch(ctx, "mld name3-preflight", "mld namespace3", []kmmv1beta1.ModuleImageSpec{expectedMic3},
278-
nil, v1.PullPolicy(""), pv).Return(nil),
278+
nil, v1.PullPolicy(""), pv.Spec.PushBuiltImage, pv).Return(nil),
279279
mockPreflight.EXPECT().GetModuleStatus(pv, "mld namespace4", "mld name4").Return(""),
280280
mockMic.EXPECT().CreateOrPatch(ctx, "mld name4-preflight", "mld namespace4", []kmmv1beta1.ModuleImageSpec{expectedMic4},
281-
nil, v1.PullPolicy(""), pv).Return(nil),
281+
nil, v1.PullPolicy(""), pv.Spec.PushBuiltImage, pv).Return(nil),
282282
)
283283

284284
err := p.processPreflightValidation(ctx, modsWithMapping, pv)

internal/mbsc/mbsc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ func (m *mbsc) CreateOrPatch(ctx context.Context, micObj *kmmv1beta1.ModuleImage
5757
_, err := controllerutil.CreateOrPatch(ctx, m.client, mbscObj, func() error {
5858
setModuleImageSpec(mbscObj, moduleImageSpec, action)
5959
mbscObj.Spec.ImageRepoSecret = micObj.Spec.ImageRepoSecret
60+
mbscObj.Spec.PushBuiltImage = micObj.Spec.PushBuiltImage
6061
return controllerutil.SetControllerReference(micObj, mbscObj, m.scheme)
6162
})
6263
return err

internal/mic/mic.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919

2020
type MIC interface {
2121
CreateOrPatch(ctx context.Context, name, ns string, images []kmmv1beta1.ModuleImageSpec,
22-
imageRepoSecret *v1.LocalObjectReference, pullPolicy v1.PullPolicy, owner metav1.Object) error
22+
imageRepoSecret *v1.LocalObjectReference, pullPolicy v1.PullPolicy, pushBuiltImage bool, owner metav1.Object) error
2323
Get(ctx context.Context, name, ns string) (*kmmv1beta1.ModuleImagesConfig, error)
2424
GetModuleImageSpec(micObj *kmmv1beta1.ModuleImagesConfig, image string) *kmmv1beta1.ModuleImageSpec
2525
SetImageStatus(micObj *kmmv1beta1.ModuleImagesConfig, image string, status kmmv1beta1.ImageState)
@@ -40,7 +40,7 @@ func New(client client.Client, scheme *runtime.Scheme) MIC {
4040
}
4141

4242
func (mici *micImpl) CreateOrPatch(ctx context.Context, name, ns string, images []kmmv1beta1.ModuleImageSpec,
43-
imageRepoSecret *v1.LocalObjectReference, pullPolicy v1.PullPolicy, owner metav1.Object) error {
43+
imageRepoSecret *v1.LocalObjectReference, pullPolicy v1.PullPolicy, pushBuiltImage bool, owner metav1.Object) error {
4444

4545
logger := log.FromContext(ctx)
4646

@@ -59,6 +59,7 @@ func (mici *micImpl) CreateOrPatch(ctx context.Context, name, ns string, images
5959
Images: images,
6060
ImageRepoSecret: imageRepoSecret,
6161
ImagePullPolicy: pullPolicy,
62+
PushBuiltImage: pushBuiltImage,
6263
}
6364

6465
return controllerutil.SetControllerReference(owner, mic, mici.scheme)

0 commit comments

Comments
 (0)