Skip to content

Commit 7328c6e

Browse files
committed
test: add unit test for merging extended machineImages with capability flavors
1 parent 6cf9901 commit 7328c6e

2 files changed

Lines changed: 60 additions & 1 deletion

File tree

pkg/admission/mutator/namespacedcloudprofile_test.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,65 @@ var _ = Describe("NamespacedCloudProfile Mutator", func() {
110110
}),
111111
))
112112
})
113+
It("should correctly merge extended machineImages using capabilities ", func() {
114+
namespacedCloudProfile.Status.CloudProfileSpec.MachineCapabilities = []v1beta1.CapabilityDefinition{{
115+
Name: "architecture",
116+
Values: []string{"amd64", "armhf"},
117+
}}
118+
namespacedCloudProfile.Status.CloudProfileSpec.ProviderConfig = &runtime.RawExtension{Raw: []byte(`{
119+
"apiVersion":"aws.provider.extensions.gardener.cloud/v1alpha1",
120+
"kind":"CloudProfileConfig",
121+
"machineImages":[
122+
{"name":"image-1","versions":[{"version":"1.0","capabilityFlavors":[
123+
{"capabilities":{"architecture":["amd64"]},"regions":[{"name":"eu1","ami":"ami-123"}]}
124+
]}]}
125+
]}`)}
126+
namespacedCloudProfile.Spec.ProviderConfig = &runtime.RawExtension{Raw: []byte(`{
127+
"apiVersion":"aws.provider.extensions.gardener.cloud/v1alpha1",
128+
"kind":"CloudProfileConfig",
129+
"machineImages":[
130+
{"name":"image-1","versions":[{"version":"1.1","capabilityFlavors":[
131+
{"capabilities":{"architecture":["armhf"]},"regions":[{"name":"eu2","ami":"ami-124"}]}
132+
]}]},
133+
{"name":"image-2","versions":[{"version":"2.0","capabilityFlavors":[
134+
{"capabilities":{"architecture":["amd64"]},"regions":[{"name":"eu3","ami":"ami-125"}]}
135+
]}]}
136+
]}`)}
137+
138+
Expect(namespacedCloudProfileMutator.Mutate(ctx, namespacedCloudProfile, nil)).To(Succeed())
139+
140+
mergedConfig, err := decodeCloudProfileConfig(decoder, namespacedCloudProfile.Status.CloudProfileSpec.ProviderConfig)
141+
Expect(err).ToNot(HaveOccurred())
142+
Expect(mergedConfig.MachineImages).To(ConsistOf(
143+
MatchFields(IgnoreExtras, Fields{
144+
"Name": Equal("image-1"),
145+
"Versions": ContainElements(
146+
api.MachineImageVersion{Version: "1.0",
147+
CapabilityFlavors: []api.MachineImageFlavor{{
148+
Capabilities: v1beta1.Capabilities{"architecture": []string{"amd64"}},
149+
Regions: []api.RegionAMIMapping{{Name: "eu1", AMI: "ami-123", Architecture: ptr.To("ignore")}},
150+
}},
151+
},
152+
api.MachineImageVersion{Version: "1.1",
153+
CapabilityFlavors: []api.MachineImageFlavor{{
154+
Capabilities: v1beta1.Capabilities{"architecture": []string{"armhf"}},
155+
Regions: []api.RegionAMIMapping{{Name: "eu2", AMI: "ami-124", Architecture: ptr.To("ignore")}},
156+
}},
157+
},
158+
),
159+
}),
160+
MatchFields(IgnoreExtras, Fields{
161+
"Name": Equal("image-2"),
162+
"Versions": ContainElements(
163+
api.MachineImageVersion{Version: "2.0",
164+
CapabilityFlavors: []api.MachineImageFlavor{{
165+
Capabilities: v1beta1.Capabilities{"architecture": []string{"amd64"}},
166+
Regions: []api.RegionAMIMapping{{Name: "eu3", AMI: "ami-125", Architecture: ptr.To("ignore")}},
167+
}},
168+
}),
169+
}),
170+
))
171+
})
113172
})
114173
})
115174
})

pkg/admission/validator/namespacedcloudprofile_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ var _ = DescribeTableSubtree("NamespacedCloudProfile Validator", func(isCapabili
4646
BeforeEach(func() {
4747
if isCapabilitiesCloudProfile {
4848
capabilityDefinitions = []v1beta1.CapabilityDefinition{
49-
{Name: v1beta1constants.ArchitectureName, Values: []string{"am64"}},
49+
{Name: v1beta1constants.ArchitectureName, Values: []string{"amd64"}},
5050
}
5151
}
5252
scheme := runtime.NewScheme()

0 commit comments

Comments
 (0)