Skip to content

Commit f0ea10c

Browse files
committed
Fix ironcore provider adding duplicate images
1 parent bcc95b9 commit f0ea10c

2 files changed

Lines changed: 26 additions & 0 deletions

File tree

cloudprofilesync/provider.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,17 @@ func (p *IroncoreProvider) Configure(cloudProfile *v1beta1.CloudProfile, version
4040
imageIndex = len(cfg.MachineImages) - 1
4141
}
4242
image := &cfg.MachineImages[imageIndex]
43+
44+
existingRefs := map[string]struct{}{}
45+
for _, version := range image.Versions {
46+
existingRefs[version.Image] = struct{}{}
47+
}
48+
4349
for _, version := range versions {
4450
ref := p.Registry + "/" + p.Repository + ":" + version.Version
51+
if _, ok := existingRefs[ref]; ok {
52+
continue
53+
}
4554
for _, arch := range version.Architectures {
4655
image.Versions = append(image.Versions, v1alpha1.MachineImageVersion{
4756
Version: version.Version,

cloudprofilesync/provider_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,21 @@ var _ = Describe("IroncoreProvider", func() {
6565
}))
6666
})
6767

68+
It("should not add duplicate images", func() {
69+
var cloudProfile v1beta1.CloudProfile
70+
versions := []cloudprofilesync.SourceImage{
71+
{Version: "v1.0.0", Architectures: []string{"amd64"}},
72+
{Version: "v1.0.0", Architectures: []string{"arm64"}},
73+
}
74+
Expect(provider.Configure(&cloudProfile, versions)).To(Succeed())
75+
Expect(provider.Configure(&cloudProfile, versions)).To(Succeed())
76+
Expect(cloudProfile.Spec.ProviderConfig).ToNot(BeNil())
77+
78+
var providerConfig v1alpha1.CloudProfileConfig
79+
Expect(json.Unmarshal(cloudProfile.Spec.ProviderConfig.Raw, &providerConfig)).To(Succeed())
80+
Expect(providerConfig.MachineImages).To(HaveLen(1))
81+
Expect(providerConfig.MachineImages[0].Name).To(Equal("test"))
82+
Expect(providerConfig.MachineImages[0].Versions).To(HaveLen(2))
83+
})
84+
6885
})

0 commit comments

Comments
 (0)