|
9 | 9 | "strings" |
10 | 10 |
|
11 | 11 | gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" |
| 12 | + "github.com/go-logr/logr" |
12 | 13 | . "github.com/onsi/ginkgo/v2" |
13 | 14 | . "github.com/onsi/gomega" |
14 | 15 | "github.com/opencontainers/image-spec/specs-go" |
@@ -59,7 +60,7 @@ var _ = Describe("OCISource", func() { |
59 | 60 | Registry: registryAddr, |
60 | 61 | Repository: "repo", |
61 | 62 | Parallel: 4, |
62 | | - }, true) |
| 63 | + }, true, logr.Discard()) |
63 | 64 | Expect(err).To(Succeed()) |
64 | 65 | versions, err := oci.GetVersions(ctx) |
65 | 66 | Expect(err).To(Succeed()) |
@@ -103,7 +104,7 @@ var _ = Describe("OCISource", func() { |
103 | 104 | Registry: registryAddr, |
104 | 105 | Repository: "repo-caps", |
105 | 106 | Parallel: 4, |
106 | | - }, true) |
| 107 | + }, true, logr.Discard()) |
107 | 108 | Expect(err).To(Succeed()) |
108 | 109 | versions, err := oci.GetVersions(ctx) |
109 | 110 | Expect(err).To(Succeed()) |
@@ -148,14 +149,64 @@ var _ = Describe("OCISource", func() { |
148 | 149 | Registry: registryAddr, |
149 | 150 | Repository: "repo-legacy", |
150 | 151 | Parallel: 4, |
151 | | - }, true) |
| 152 | + }, true, logr.Discard()) |
152 | 153 | Expect(err).To(Succeed()) |
153 | 154 | versions, err := oci.GetVersions(ctx) |
154 | 155 | Expect(err).To(Succeed()) |
155 | 156 | Expect(versions).To(HaveLen(1)) |
156 | 157 | Expect(versions[0].Capabilities).To(BeNil()) |
157 | 158 | }) |
158 | 159 |
|
| 160 | + It("skips tags without architecture annotation and returns remaining images", func(ctx SpecContext) { |
| 161 | + repo, err := remote.NewRepository(registryAddr + "/repo-missing-arch") |
| 162 | + Expect(err).To(Succeed()) |
| 163 | + repo.PlainHTTP = true |
| 164 | + |
| 165 | + withArch := ocispec.Index{ |
| 166 | + Versioned: specs.Versioned{SchemaVersion: 2}, |
| 167 | + Manifests: []ocispec.Descriptor{ |
| 168 | + {MediaType: ocispec.MediaTypeImageManifest, Size: 0, Digest: ocispec.DescriptorEmptyJSON.Digest}, |
| 169 | + }, |
| 170 | + Annotations: map[string]string{ |
| 171 | + "architecture": "amd64", |
| 172 | + }, |
| 173 | + } |
| 174 | + withArchBlob, err := json.Marshal(withArch) |
| 175 | + Expect(err).To(Succeed()) |
| 176 | + withArchDesc := content.NewDescriptorFromBytes(ocispec.MediaTypeImageIndex, withArchBlob) |
| 177 | + |
| 178 | + noArch := ocispec.Index{ |
| 179 | + Versioned: specs.Versioned{SchemaVersion: 2}, |
| 180 | + Manifests: []ocispec.Descriptor{ |
| 181 | + {MediaType: ocispec.MediaTypeImageManifest, Size: 0, Digest: ocispec.DescriptorEmptyJSON.Digest}, |
| 182 | + }, |
| 183 | + } |
| 184 | + noArchBlob, err := json.Marshal(noArch) |
| 185 | + Expect(err).To(Succeed()) |
| 186 | + noArchDesc := content.NewDescriptorFromBytes(ocispec.MediaTypeImageIndex, noArchBlob) |
| 187 | + |
| 188 | + err = repo.Push(ctx, ocispec.DescriptorEmptyJSON, strings.NewReader("{}")) |
| 189 | + Expect(err).To(Succeed()) |
| 190 | + err = repo.PushReference(ctx, withArchDesc, bytes.NewReader(withArchBlob), "1.0.0") |
| 191 | + Expect(err).To(Succeed()) |
| 192 | + err = repo.Push(ctx, ocispec.DescriptorEmptyJSON, strings.NewReader("{}")) |
| 193 | + Expect(err).To(Succeed()) |
| 194 | + err = repo.PushReference(ctx, noArchDesc, bytes.NewReader(noArchBlob), "1.0.1") |
| 195 | + Expect(err).To(Succeed()) |
| 196 | + |
| 197 | + oci, err := cloudprofilesync.NewOCI(cloudprofilesync.OCIParams{ |
| 198 | + Registry: registryAddr, |
| 199 | + Repository: "repo-missing-arch", |
| 200 | + Parallel: 4, |
| 201 | + }, true, logr.Discard()) |
| 202 | + Expect(err).To(Succeed()) |
| 203 | + versions, err := oci.GetVersions(ctx) |
| 204 | + Expect(err).To(Succeed()) |
| 205 | + Expect(versions).To(HaveLen(1)) |
| 206 | + Expect(versions[0].Version).To(Equal("1.0.0")) |
| 207 | + }) |
| 208 | + |
| 209 | + |
159 | 210 | It("leaves Capabilities nil when feature_set contains no valid values", func(ctx SpecContext) { |
160 | 211 | repo, err := remote.NewRepository(registryAddr + "/repo-no-valid-features") |
161 | 212 | Expect(err).To(Succeed()) |
@@ -185,7 +236,7 @@ var _ = Describe("OCISource", func() { |
185 | 236 | Registry: registryAddr, |
186 | 237 | Repository: "repo-no-valid-features", |
187 | 238 | Parallel: 4, |
188 | | - }, true) |
| 239 | + }, true, logr.Discard()) |
189 | 240 | Expect(err).To(Succeed()) |
190 | 241 | versions, err := oci.GetVersions(ctx) |
191 | 242 | Expect(err).To(Succeed()) |
|
0 commit comments