Skip to content

Commit 6856ef1

Browse files
UPSTREAM: <carry>: [DefaultCatalogTests]: Moving parse of ENVVAR to the caller (follow-up 345)
1 parent c08629c commit 6856ef1

File tree

2 files changed

+26
-23
lines changed

2 files changed

+26
-23
lines changed

openshift/default-catalog-consistency/pkg/extract/extract.go

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func (r *ExtractedImage) Cleanup() {
3939
}
4040

4141
// UnpackImage pulls the image, extracts it to disk, and opens it as an OCI store.
42-
func UnpackImage(ctx context.Context, imageRef, name string) (res *ExtractedImage, err error) {
42+
func UnpackImage(ctx context.Context, imageRef, name string, sysCtx *types.SystemContext) (res *ExtractedImage, err error) {
4343
tmpDir, err := os.MkdirTemp("", fmt.Sprintf("oci-%s-", name))
4444
if err != nil {
4545
return nil, fmt.Errorf("create temp dir: %w", err)
@@ -53,27 +53,6 @@ func UnpackImage(ctx context.Context, imageRef, name string) (res *ExtractedImag
5353
return nil, fmt.Errorf("parse image ref: %w", err)
5454
}
5555

56-
// Force image resolution to Linux to avoid OS mismatch errors on macOS,
57-
// like: "no image found for architecture 'arm64', OS 'darwin'".
58-
//
59-
// Setting OSChoice = "linux" ensures we always get a Linux image,
60-
// even when running on macOS.
61-
//
62-
// This skips the full multi-arch index and gives us just one manifest.
63-
// To check all supported architectures (e.g., amd64, arm64, ppc64le, s390x),
64-
// we’d need to avoid setting OSChoice and inspect the full index manually.
65-
//
66-
// TODO: Update this to support checking all architectures.
67-
// See: https://issues.redhat.com/browse/OPRUN-3793
68-
sysCtx := &types.SystemContext{
69-
OSChoice: "linux",
70-
}
71-
72-
if authPath := os.Getenv("REGISTRY_AUTH_FILE"); authPath != "" {
73-
fmt.Println("Using registry auth file:", authPath)
74-
sysCtx.AuthFilePath = authPath
75-
}
76-
7756
policyCtx, err := loadPolicyContext(sysCtx, imageRef)
7857
if err != nil {
7958
return nil, fmt.Errorf("create policy context: %w", err)

openshift/default-catalog-consistency/test/validate/suite_test.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package validate
33
import (
44
"context"
55
"fmt"
6+
"github.com/containers/image/v5/types"
7+
"os"
68
"testing"
79

810
. "github.com/onsi/ginkgo/v2"
@@ -27,14 +29,36 @@ var images = []string{
2729
}
2830

2931
var _ = Describe("Check Catalog Consistency", func() {
32+
authPath := os.Getenv("REGISTRY_AUTH_FILE")
33+
34+
// Force image resolution to Linux to avoid OS mismatch errors on macOS,
35+
// like: "no image found for architecture 'arm64', OS 'darwin'".
36+
//
37+
// Setting OSChoice = "linux" ensures we always get a Linux image,
38+
// even when running on macOS.
39+
//
40+
// This skips the full multi-arch index and gives us just one manifest.
41+
// To check all supported architectures (e.g., amd64, arm64, ppc64le, s390x),
42+
// we’d need to avoid setting OSChoice and inspect the full index manually.
43+
//
44+
// TODO: Update this to support checking all architectures.
45+
// See: https://issues.redhat.com/browse/OPRUN-3793
46+
sysCtx := &types.SystemContext{
47+
OSChoice: "linux",
48+
}
49+
if authPath != "" {
50+
fmt.Println("Using registry auth file:", authPath)
51+
sysCtx.AuthFilePath = authPath
52+
}
53+
3054
for _, url := range images {
3155
name := utils.ImageNameFromRef(url)
3256

3357
It(fmt.Sprintf("validates image: %s", name), func() {
3458
ctx := context.Background()
3559
By(fmt.Sprintf("Validating image: %s", url))
3660

37-
extractedImage, err := extract.UnpackImage(ctx, url, name)
61+
extractedImage, err := extract.UnpackImage(ctx, url, name, sysCtx)
3862
Expect(err).ToNot(HaveOccurred())
3963
Expect(check.Check(ctx, extractedImage, check.AllChecks())).To(Succeed())
4064
extractedImage.Cleanup()

0 commit comments

Comments
 (0)