Skip to content

Commit a83e2a6

Browse files
committed
update cli v1a2 controller to use v1a2
1 parent 64c7cae commit a83e2a6

File tree

10 files changed

+191
-64
lines changed

10 files changed

+191
-64
lines changed

controllers/contentlibrary/utils/controller_builder_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ import (
3535
"github.com/vmware-tanzu/vm-operator/test/builder"
3636
)
3737

38+
const (
39+
UpdatedSuffix = "-updated"
40+
)
41+
3842
var _ = Describe("AddToManager",
3943
Label(
4044
testlabels.Controller,
@@ -398,7 +402,7 @@ var _ = Describe("Reconcile",
398402
})
399403

400404
It("should update the existing image resource with the library item resource", func() {
401-
cliStatus.ContentVersion += "-updated"
405+
cliStatus.ContentVersion += UpdatedSuffix
402406
_, err := reconciler.Reconcile(context.Background(), req)
403407
Expect(err).ToNot(HaveOccurred())
404408
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)
@@ -663,7 +667,7 @@ var _ = Describe("Reconcile",
663667
})
664668
})
665669
It("should update the existing image resource with the library item resource", func() {
666-
cliStatus.ContentVersion += "-updated"
670+
cliStatus.ContentVersion += UpdatedSuffix
667671
_, err := reconciler.Reconcile(context.Background(), req)
668672
Expect(err).ToNot(HaveOccurred())
669673
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)

controllers/contentlibrary/utils/controller_builder_v1a2.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
"sigs.k8s.io/controller-runtime/pkg/handler"
2020
"sigs.k8s.io/controller-runtime/pkg/manager"
2121

22-
imgregv1a1 "github.com/vmware-tanzu/image-registry-operator-api/api/v1alpha1"
22+
imgregv1 "github.com/vmware-tanzu/image-registry-operator-api/api/v1alpha2"
2323

2424
vmopv1 "github.com/vmware-tanzu/vm-operator/api/v1alpha4"
2525
"github.com/vmware-tanzu/vm-operator/api/v1alpha4/common"
@@ -74,7 +74,7 @@ func AddToManagerV1A2(
7474
ctx,
7575
r.Logger.WithName("VirtualMachineImageCacheToItemMapper"),
7676
r.Client,
77-
imgregv1a1.GroupVersion,
77+
imgregv1.GroupVersion,
7878
controlledItemTypeName),
7979
))
8080
}
@@ -124,18 +124,18 @@ func (r *ReconcilerV1A2) Reconcile(
124124

125125
var (
126126
obj client.Object
127-
spec *imgregv1a1.ContentLibraryItemSpec
128-
status *imgregv1a1.ContentLibraryItemStatus
127+
spec *imgregv1.ContentLibraryItemSpec
128+
status *imgregv1.ContentLibraryItemStatus
129129
)
130130

131131
if req.Namespace != "" {
132-
var o imgregv1a1.ContentLibraryItem
132+
var o imgregv1.ContentLibraryItem
133133
if err := r.Get(ctx, req.NamespacedName, &o); err != nil {
134134
return ctrl.Result{}, client.IgnoreNotFound(err)
135135
}
136136
obj, spec, status = &o, &o.Spec, &o.Status
137137
} else {
138-
var o imgregv1a1.ClusterContentLibraryItem
138+
var o imgregv1.ClusterContentLibraryItem
139139
if err := r.Get(ctx, req.NamespacedName, &o); err != nil {
140140
return ctrl.Result{}, client.IgnoreNotFound(err)
141141
}
@@ -204,8 +204,8 @@ func (r *ReconcilerV1A2) ReconcileNormal(
204204
ctx context.Context,
205205
logger logr.Logger,
206206
cliObj client.Object,
207-
cliSpec *imgregv1a1.ContentLibraryItemSpec,
208-
cliStatus *imgregv1a1.ContentLibraryItemStatus,
207+
cliSpec *imgregv1.ContentLibraryItemSpec,
208+
cliStatus *imgregv1.ContentLibraryItemStatus,
209209
vmiName string) error {
210210

211211
finalizer, depFinalizer := GetAppropriateFinalizers(cliObj)
@@ -303,7 +303,7 @@ func (r *ReconcilerV1A2) ReconcileNormal(
303303

304304
// Check if the item is ready and skip the image content sync if
305305
// not.
306-
if !IsItemReady(cliStatus.Conditions) {
306+
if !IsV1A2ItemReady(cliStatus.Conditions) {
307307
pkgcnd.MarkFalse(
308308
vmiStatus,
309309
vmopv1.ReadyConditionType,
@@ -381,8 +381,8 @@ func (r *ReconcilerV1A2) ReconcileNormal(
381381
func (r *ReconcilerV1A2) setUpVMIFromCLItem(
382382
ctx context.Context,
383383
cliObj client.Object,
384-
cliSpec imgregv1a1.ContentLibraryItemSpec,
385-
cliStatus imgregv1a1.ContentLibraryItemStatus,
384+
cliSpec imgregv1.ContentLibraryItemSpec,
385+
cliStatus imgregv1.ContentLibraryItemStatus,
386386
vmiObj client.Object,
387387
vmiSpec *vmopv1.VirtualMachineImageSpec,
388388
vmiStatus *vmopv1.VirtualMachineImageStatus) error {
@@ -439,19 +439,19 @@ func (r *ReconcilerV1A2) setUpVMIFromCLItem(
439439
}
440440

441441
vmiStatus.Name = cliStatus.Name
442-
vmiStatus.ProviderItemID = string(cliSpec.UUID)
442+
vmiStatus.ProviderItemID = cliSpec.ID
443443
vmiStatus.Type = string(cliStatus.Type)
444444

445-
return AddContentLibraryRefToAnnotation(
446-
vmiObj, cliStatus.ContentLibraryRef)
445+
return AddV1A2ContentLibraryRefToAnnotation(
446+
vmiObj, vmiSpec.ProviderRef)
447447
}
448448

449449
// syncImageContent syncs the VirtualMachineImage content from the provider.
450450
// It skips syncing if the image content is already up-to-date.
451451
func (r *ReconcilerV1A2) syncImageContent(
452452
ctx context.Context,
453453
cliObj client.Object,
454-
cliStatus imgregv1a1.ContentLibraryItemStatus,
454+
cliStatus imgregv1.ContentLibraryItemStatus,
455455
vmiObj client.Object,
456456
vmiStatus *vmopv1.VirtualMachineImageStatus) error {
457457

controllers/contentlibrary/utils/controller_builder_v1a2_test.go

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ import (
1212
"github.com/go-logr/logr"
1313
. "github.com/onsi/ginkgo/v2"
1414
. "github.com/onsi/gomega"
15-
corev1 "k8s.io/api/core/v1"
1615
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1716
ctrl "sigs.k8s.io/controller-runtime"
1817
"sigs.k8s.io/controller-runtime/pkg/client"
1918
ctrlmgr "sigs.k8s.io/controller-runtime/pkg/manager"
2019

21-
imgregv1a1 "github.com/vmware-tanzu/image-registry-operator-api/api/v1alpha1"
20+
imgregv1 "github.com/vmware-tanzu/image-registry-operator-api/api/v1alpha2"
2221
vmopv1 "github.com/vmware-tanzu/vm-operator/api/v1alpha4"
2322
"github.com/vmware-tanzu/vm-operator/controllers/contentlibrary/utils"
2423
pkgcnd "github.com/vmware-tanzu/vm-operator/pkg/conditions"
@@ -55,7 +54,7 @@ var _ = Describe("AddToManagerV1A2",
5554
parentCtx,
5655
builder.VCSimTestConfig{},
5756
func(ctx *pkgctx.ControllerManagerContext, mgr ctrlmgr.Manager) error {
58-
return utils.AddToManager(ctx, mgr, &imgregv1a1.ContentLibraryItem{})
57+
return utils.AddToManagerV1A2(ctx, mgr, &imgregv1.ContentLibraryItem{})
5958
},
6059
func(ctx *pkgctx.ControllerManagerContext, _ ctrlmgr.Manager) error {
6160
return nil
@@ -96,8 +95,8 @@ var _ = Describe("Reconcile",
9695
fakeVMProvider *providerfake.VMProvider
9796

9897
cliObj client.Object
99-
cliSpec *imgregv1a1.ContentLibraryItemSpec
100-
cliStatus *imgregv1a1.ContentLibraryItemStatus
98+
cliSpec *imgregv1.ContentLibraryItemSpec
99+
cliStatus *imgregv1.ContentLibraryItemStatus
101100
req ctrl.Request
102101

103102
vmiName string
@@ -117,7 +116,7 @@ var _ = Describe("Reconcile",
117116
Expect(err).ToNot(HaveOccurred())
118117

119118
Expect(ctx.Client.Create(ctx, cliObj)).To(Succeed())
120-
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)
119+
cliObj, cliSpec, cliStatus = getV1A2CLI(ctx, req.Namespace, req.Name)
121120
})
122121

123122
AfterEach(func() {
@@ -151,11 +150,11 @@ var _ = Describe("Reconcile",
151150
return nil
152151
}
153152

154-
o := utils.DummyContentLibraryItem(
153+
o := utils.DummyV1A2ContentLibraryItem(
155154
utils.ItemFieldNamePrefix+"-dummy", "dummy-ns")
156155
cliObj, cliSpec, cliStatus = o, &o.Spec, &o.Status
157156
finalizer, _ = utils.GetAppropriateFinalizers(cliObj)
158-
vmicName = pkgutil.VMIName(string(cliSpec.UUID))
157+
vmicName = pkgutil.VMIName(cliSpec.ID)
159158

160159
// Add the finalizer so Reconcile does not return early.
161160
cliObj.SetFinalizers([]string{finalizer})
@@ -175,18 +174,18 @@ var _ = Describe("Reconcile",
175174
It("should add the finalizer", func() {
176175
_, err := reconciler.Reconcile(context.Background(), req)
177176
Expect(err).ToNot(HaveOccurred())
178-
cliObj, _, _ = getCLI(ctx, req.Namespace, req.Name)
177+
cliObj, _, _ = getV1A2CLI(ctx, req.Namespace, req.Name)
179178

180179
Expect(cliObj.GetFinalizers()).To(ContainElement(finalizer))
181180
})
182181
})
183182

184183
When("Library item resource is Not Ready", func() {
185184
BeforeEach(func() {
186-
cliStatus.Conditions = []imgregv1a1.Condition{
185+
cliStatus.Conditions = []metav1.Condition{
187186
{
188-
Type: imgregv1a1.ReadyCondition,
189-
Status: corev1.ConditionFalse,
187+
Type: imgregv1.ReadyCondition,
188+
Status: metav1.ConditionFalse,
190189
},
191190
}
192191
})
@@ -341,7 +340,7 @@ var _ = Describe("Reconcile",
341340
ExpectWithOffset(1, errors.As(err, &e)).To(BeTrue())
342341
ExpectWithOffset(1, e.Name).To(Equal(vmicName))
343342

344-
cliObj, _, _ = getCLI(ctx, req.Namespace, req.Name)
343+
cliObj, _, _ = getV1A2CLI(ctx, req.Namespace, req.Name)
345344
ExpectWithOffset(1, cliObj.GetLabels()).To(HaveKeyWithValue(
346345
pkgconst.VMICacheLabelKey, vmicName))
347346

@@ -356,16 +355,16 @@ var _ = Describe("Reconcile",
356355

357356
JustBeforeEach(func() {
358357
// The dummy library item should meet these requirements.
359-
var readyCond *imgregv1a1.Condition
358+
var readyCond *metav1.Condition
360359
for _, c := range cliStatus.Conditions {
361-
if c.Type == imgregv1a1.ReadyCondition {
360+
if c.Type == imgregv1.ReadyCondition {
362361
c := c
363362
readyCond = &c
364363
break
365364
}
366365
}
367366
Expect(readyCond).ToNot(BeNil())
368-
Expect(readyCond.Status).To(Equal(corev1.ConditionTrue))
367+
Expect(readyCond.Status).To(Equal(metav1.ConditionTrue))
369368

370369
Expect(cliStatus.SecurityCompliance).To(Equal(ptr.To(true)))
371370
})
@@ -375,10 +374,10 @@ var _ = Describe("Reconcile",
375374
It("should create a new image resource syncing up with the library item resource", func() {
376375
_, err := reconciler.Reconcile(context.Background(), req)
377376
Expect(err).ToNot(HaveOccurred())
378-
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)
377+
cliObj, cliSpec, cliStatus = getV1A2CLI(ctx, req.Namespace, req.Name)
379378

380379
vmiObj, vmiSpec, vmiStatus := getVMI(ctx, req.Namespace, vmiName)
381-
assertVMImageFromCLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
380+
assertVMImageFromV1A2CLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
382381
Expect(vmiStatus.Firmware).To(Equal(firmwareValue))
383382
})
384383
})
@@ -397,13 +396,13 @@ var _ = Describe("Reconcile",
397396
})
398397

399398
It("should update the existing image resource with the library item resource", func() {
400-
cliStatus.ContentVersion += "-updated"
399+
cliStatus.ContentVersion += UpdatedSuffix
401400
_, err := reconciler.Reconcile(context.Background(), req)
402401
Expect(err).ToNot(HaveOccurred())
403-
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)
402+
cliObj, cliSpec, cliStatus = getV1A2CLI(ctx, req.Namespace, req.Name)
404403

405404
vmiObj, vmiSpec, vmiStatus := getVMI(ctx, req.Namespace, vmiName)
406-
assertVMImageFromCLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
405+
assertVMImageFromV1A2CLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
407406
Expect(vmiStatus.Firmware).To(Equal(firmwareValue))
408407
})
409408
})
@@ -424,10 +423,10 @@ var _ = Describe("Reconcile",
424423
It("should still update the image resource status from the library item resource", func() {
425424
_, err := reconciler.Reconcile(context.Background(), req)
426425
Expect(err).ToNot(HaveOccurred())
427-
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)
426+
cliObj, cliSpec, cliStatus = getV1A2CLI(ctx, req.Namespace, req.Name)
428427

429428
vmiObj, vmiSpec, vmiStatus := getVMI(ctx, req.Namespace, vmiName)
430-
assertVMImageFromCLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
429+
assertVMImageFromV1A2CLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
431430
Expect(vmiStatus.Firmware).To(Equal(firmwareValue))
432431
})
433432
})
@@ -459,10 +458,10 @@ var _ = Describe("Reconcile",
459458
It("should skip updating the ClusterVirtualMachineImage with library item", func() {
460459
_, err := reconciler.Reconcile(context.Background(), req)
461460
Expect(err).ToNot(HaveOccurred())
462-
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)
461+
cliObj, cliSpec, cliStatus = getV1A2CLI(ctx, req.Namespace, req.Name)
463462

464463
vmiObj, vmiSpec, vmiStatus := getVMI(ctx, req.Namespace, vmiName)
465-
assertVMImageFromCLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
464+
assertVMImageFromV1A2CLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
466465
Expect(vmiStatus.Firmware).To(Equal("should-not-be-updated"))
467466
})
468467
})
@@ -502,7 +501,7 @@ var _ = Describe("Reconcile",
502501
return nil
503502
}
504503

505-
o := utils.DummyClusterContentLibraryItem(
504+
o := utils.DummyV1A2ClusterContentLibraryItem(
506505
utils.ItemFieldNamePrefix + "-dummy")
507506
cliObj, cliSpec, cliStatus = o, &o.Spec, &o.Status
508507
finalizer, _ = utils.GetAppropriateFinalizers(cliObj)
@@ -624,16 +623,16 @@ var _ = Describe("Reconcile",
624623
When("Library item resource is ready and security complaint", func() {
625624
JustBeforeEach(func() {
626625
// The dummy library item should meet these requirements.
627-
var readyCond *imgregv1a1.Condition
626+
var readyCond *metav1.Condition
628627
for _, c := range cliStatus.Conditions {
629-
if c.Type == imgregv1a1.ReadyCondition {
628+
if c.Type == imgregv1.ReadyCondition {
630629
c := c
631630
readyCond = &c
632631
break
633632
}
634633
}
635634
Expect(readyCond).ToNot(BeNil())
636-
Expect(readyCond.Status).To(Equal(corev1.ConditionTrue))
635+
Expect(readyCond.Status).To(Equal(metav1.ConditionTrue))
637636
Expect(cliStatus.SecurityCompliance).To(Equal(ptr.To(true)))
638637
})
639638

@@ -642,10 +641,10 @@ var _ = Describe("Reconcile",
642641
It("should create a new image resource syncing up with the library item resource", func() {
643642
_, err := reconciler.Reconcile(context.Background(), req)
644643
Expect(err).ToNot(HaveOccurred())
645-
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)
644+
cliObj, cliSpec, cliStatus = getV1A2CLI(ctx, req.Namespace, req.Name)
646645

647646
vmiObj, vmiSpec, vmiStatus := getVMI(ctx, req.Namespace, vmiName)
648-
assertVMImageFromCLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
647+
assertVMImageFromV1A2CLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
649648
Expect(vmiStatus.Firmware).To(Equal(firmwareValue))
650649
})
651650
})
@@ -662,13 +661,13 @@ var _ = Describe("Reconcile",
662661
})
663662
})
664663
It("should update the existing image resource with the library item resource", func() {
665-
cliStatus.ContentVersion += "-updated"
664+
cliStatus.ContentVersion += UpdatedSuffix
666665
_, err := reconciler.Reconcile(context.Background(), req)
667666
Expect(err).ToNot(HaveOccurred())
668-
cliObj, cliSpec, cliStatus = getCLI(ctx, req.Namespace, req.Name)
667+
cliObj, cliSpec, cliStatus = getV1A2CLI(ctx, req.Namespace, req.Name)
669668

670669
vmiObj, vmiSpec, vmiStatus := getVMI(ctx, req.Namespace, vmiName)
671-
assertVMImageFromCLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
670+
assertVMImageFromV1A2CLItem(cliObj, *cliSpec, *cliStatus, vmiObj, *vmiSpec, *vmiStatus)
672671
Expect(vmiStatus.Firmware).To(Equal(firmwareValue))
673672
})
674673
})
@@ -689,24 +688,24 @@ var _ = Describe("Reconcile",
689688

690689
func getV1A2CLI(
691690
ctx *builder.UnitTestContextForController,
692-
namespace, name string) (client.Object, *imgregv1a1.ContentLibraryItemSpec, *imgregv1a1.ContentLibraryItemStatus) {
691+
namespace, name string) (client.Object, *imgregv1.ContentLibraryItemSpec, *imgregv1.ContentLibraryItemStatus) {
693692

694693
var (
695694
obj client.Object
696-
spec *imgregv1a1.ContentLibraryItemSpec
697-
status *imgregv1a1.ContentLibraryItemStatus
695+
spec *imgregv1.ContentLibraryItemSpec
696+
status *imgregv1.ContentLibraryItemStatus
698697
key = client.ObjectKey{
699698
Namespace: namespace,
700699
Name: name,
701700
}
702701
)
703702

704703
if namespace != "" {
705-
var o imgregv1a1.ContentLibraryItem
704+
var o imgregv1.ContentLibraryItem
706705
ExpectWithOffset(1, ctx.Client.Get(ctx, key, &o)).To(Succeed())
707706
obj, spec, status = &o, &o.Spec, &o.Status
708707
} else {
709-
var o imgregv1a1.ClusterContentLibraryItem
708+
var o imgregv1.ClusterContentLibraryItem
710709
ExpectWithOffset(1, ctx.Client.Get(ctx, key, &o)).To(Succeed())
711710
obj, spec, status = &o, &o.Spec, &o.Status
712711
}
@@ -716,8 +715,8 @@ func getV1A2CLI(
716715

717716
func assertVMImageFromV1A2CLItem(
718717
cliObj client.Object,
719-
cliSpec imgregv1a1.ContentLibraryItemSpec,
720-
cliStatus imgregv1a1.ContentLibraryItemStatus,
718+
cliSpec imgregv1.ContentLibraryItemSpec,
719+
cliStatus imgregv1.ContentLibraryItemStatus,
721720
vmiObj client.Object,
722721
vmiSpec vmopv1.VirtualMachineImageSpec,
723722
vmiStatus vmopv1.VirtualMachineImageStatus) {
@@ -733,7 +732,7 @@ func assertVMImageFromV1A2CLItem(
733732

734733
By("Expected VMImage Status", func() {
735734
Expect(vmiStatus.Name).To(Equal(cliStatus.Name))
736-
Expect(vmiStatus.ProviderItemID).To(BeEquivalentTo(cliSpec.UUID))
735+
Expect(vmiStatus.ProviderItemID).To(BeEquivalentTo(cliSpec.ID))
737736
Expect(vmiStatus.ProviderContentVersion).To(Equal(cliStatus.ContentVersion))
738737
Expect(vmiStatus.Type).To(BeEquivalentTo(cliStatus.Type))
739738
Expect(pkgcnd.IsTrue(vmiStatus, vmopv1.ReadyConditionType)).To(BeTrue())

0 commit comments

Comments
 (0)