Skip to content

Commit 49b8515

Browse files
committed
Updated openshift-tests images to utilize mapped images from external binary
Currently, openshift-tests images cmd uses vendored GetMappedImageConfigs() function to map upstream images to mirrored ones. After this change, images cmd will parsed mapped images directly from outputs from the k8s-tests-ext binary. This prevents unexpected issues from imcompatible upstreams changes with vendored funcs. Signed-off-by: Vu Dinh <[email protected]>
1 parent da8a7f3 commit 49b8515

File tree

3 files changed

+37
-42
lines changed

3 files changed

+37
-42
lines changed

pkg/cmd/openshift-tests/images/images_command.go

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -113,37 +113,35 @@ type imagesOptions struct {
113113
func createImageMirrorForInternalImages(prefix string, ref reference.DockerImageReference, mirrored bool) ([]string, error) {
114114
source := ref.Exact()
115115

116-
initialImageSets := []extensions.ImageSet{
116+
originalImageSets := []extensions.ImageSet{
117117
k8simage.GetOriginalImageConfigs(),
118118
}
119-
120-
// If ENV is not set, the list of images should come from external binaries
121-
if len(os.Getenv("OPENSHIFT_SKIP_EXTERNAL_TESTS")) == 0 {
122-
// Extract all test binaries
123-
extractionContext, extractionContextCancel := context.WithTimeout(context.Background(), 30*time.Minute)
124-
defer extractionContextCancel()
125-
cleanUpFn, externalBinaries, err := extensions.ExtractAllTestBinaries(extractionContext, 10)
126-
if err != nil {
127-
return nil, err
128-
}
129-
defer cleanUpFn()
130-
131-
// List test images from all available binaries
132-
listContext, listContextCancel := context.WithTimeout(context.Background(), time.Minute)
133-
defer listContextCancel()
134-
imageSetsFromBinaries, err := externalBinaries.ListImages(listContext, 10)
135-
if err != nil {
136-
return nil, err
137-
}
138-
if len(imageSetsFromBinaries) == 0 {
139-
return nil, fmt.Errorf("no test images were reported by external binaries")
140-
}
141-
initialImageSets = imageSetsFromBinaries
119+
initialImageSets := []extensions.ImageSet{}
120+
121+
// Extract all test binaries
122+
extractionContext, extractionContextCancel := context.WithTimeout(context.Background(), 30*time.Minute)
123+
defer extractionContextCancel()
124+
cleanUpFn, externalBinaries, err := extensions.ExtractAllTestBinaries(extractionContext, 10)
125+
if err != nil {
126+
return nil, err
142127
}
128+
defer cleanUpFn()
129+
130+
// List test images from all available binaries
131+
listContext, listContextCancel := context.WithTimeout(context.Background(), time.Minute)
132+
defer listContextCancel()
133+
imageSetsFromBinaries, err := externalBinaries.ListImages(listContext, 10)
134+
if err != nil {
135+
return nil, err
136+
}
137+
if len(imageSetsFromBinaries) == 0 {
138+
return nil, fmt.Errorf("no test images were reported by external binaries")
139+
}
140+
initialImageSets = imageSetsFromBinaries
143141

144142
// Take the initial images coming from external binaries and remove any exceptions that might exist.
145143
exceptions := image.Exceptions.List()
146-
defaultImageSets := []extensions.ImageSet{}
144+
updatedImageSets := []extensions.ImageSet{}
147145
for i := range initialImageSets {
148146
filtered := extensions.ImageSet{}
149147
for imageID, imageConfig := range initialImageSets[i] {
@@ -154,16 +152,10 @@ func createImageMirrorForInternalImages(prefix string, ref reference.DockerImage
154152
}
155153
}
156154
if len(filtered) > 0 {
157-
defaultImageSets = append(defaultImageSets, filtered)
155+
updatedImageSets = append(updatedImageSets, filtered)
158156
}
159157
}
160158

161-
// Created a new slice with the updatedImageSets addresses for the images
162-
updatedImageSets := []extensions.ImageSet{}
163-
for i := range defaultImageSets {
164-
updatedImageSets = append(updatedImageSets, k8simage.GetMappedImageConfigs(defaultImageSets[i], ref.Exact()))
165-
}
166-
167159
openshiftDefaults := image.OriginalImages()
168160
openshiftUpdated := image.GetMappedImages(openshiftDefaults, imagesetup.DefaultTestImageMirrorLocation)
169161

@@ -178,9 +170,9 @@ func createImageMirrorForInternalImages(prefix string, ref reference.DockerImage
178170
covered := sets.NewString()
179171
for i := range updatedImageSets {
180172
for imageID, imageConfig := range updatedImageSets[i] {
181-
defaultConfig := defaultImageSets[i][imageID]
173+
originalConfig := originalImageSets[i][imageID]
182174
pullSpec := imageConfig.GetE2EImage()
183-
if pullSpec == defaultConfig.GetE2EImage() {
175+
if pullSpec == originalConfig.GetE2EImage() {
184176
continue
185177
}
186178
if covered.Has(pullSpec) {
@@ -197,7 +189,7 @@ func createImageMirrorForInternalImages(prefix string, ref reference.DockerImage
197189
imageConfig.SetRegistry(baseRef.Registry)
198190
imageConfig.SetName(baseRef.RepositoryName())
199191
imageConfig.SetVersion(e2eRef.Tag)
200-
defaultImageSets[i][imageID] = imageConfig
192+
originalImageSets[i][imageID] = imageConfig
201193
}
202194
}
203195

@@ -223,7 +215,7 @@ func createImageMirrorForInternalImages(prefix string, ref reference.DockerImage
223215
var lines []string
224216
for i := range updatedImageSets {
225217
for imageID := range updatedImageSets[i] {
226-
a, b := defaultImageSets[i][imageID], updatedImageSets[i][imageID]
218+
a, b := originalImageSets[i][imageID], updatedImageSets[i][imageID]
227219
from, to := a.GetE2EImage(), b.GetE2EImage()
228220
if from == to {
229221
continue

pkg/test/extensions/binary.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -408,19 +408,21 @@ func (b *TestBinary) ListImages(ctx context.Context) (ImageSet, error) {
408408
return nil, fmt.Errorf("failed running '%s list': %w\nOutput: %s", b.binaryPath, err, output)
409409
}
410410

411-
var images []Image
411+
var images []extension.Image
412412
err = json.Unmarshal(output, &images)
413413
if err != nil {
414414
return nil, err
415415
}
416416

417417
result := make(ImageSet, len(images))
418418
for _, image := range images {
419-
imageConfig := k8simage.Config{}
420-
imageConfig.SetName(image.Name)
421-
imageConfig.SetVersion(image.Version)
422-
imageConfig.SetRegistry(image.Registry)
423-
result[k8simage.ImageID(image.Index)] = imageConfig
419+
if image.Mapped != nil {
420+
imageConfig := k8simage.Config{}
421+
imageConfig.SetName(image.Mapped.Name)
422+
imageConfig.SetVersion(image.Mapped.Version)
423+
imageConfig.SetRegistry(image.Mapped.Registry)
424+
result[k8simage.ImageID(image.Mapped.Index)] = imageConfig
425+
}
424426
}
425427

426428
logrus.Infof("Listed %d test images for %q in %v", len(images), binName, time.Since(start))

vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/types.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)