diff --git a/pkg/steps/utils/image.go b/pkg/steps/utils/image.go index 4b10c3b987..2533a48fef 100644 --- a/pkg/steps/utils/image.go +++ b/pkg/steps/utils/image.go @@ -73,10 +73,10 @@ func FindSpecTag(is *imagev1.ImageStream, tag string) *coreapi.ObjectReference { // OfficialImageTagFrom returns an import source from spec, then status, then quay-proxy. func OfficialImageTagFrom(source *imagev1.ImageStream, base api.ImageStreamTagReference) *coreapi.ObjectReference { if source != nil { - if ref := FindSpecTag(source, base.Tag); ref != nil && ref.Name != "" { + if ref := FindSpecTag(source, base.Tag); ref != nil && ref.Name != "" && (ref.Kind != "DockerImage" || !strings.HasPrefix(ref.Name, api.ServiceDomainAPPCIRegistry+"/ocp/")) { return ref } - if ref, _ := FindStatusTag(source, base.Tag); ref != nil && ref.Name != "" { + if ref, _ := FindStatusTag(source, base.Tag); ref != nil && ref.Name != "" && (ref.Kind != "DockerImage" || !strings.HasPrefix(ref.Name, api.ServiceDomainAPPCIRegistry+"/ocp/")) { return ref } } diff --git a/pkg/steps/utils/image_test.go b/pkg/steps/utils/image_test.go index 4777b2ed4d..030b49b1b4 100644 --- a/pkg/steps/utils/image_test.go +++ b/pkg/steps/utils/image_test.go @@ -72,6 +72,19 @@ func TestResolveOfficialInputFrom(t *testing.T) { wantOK: true, wantFrom: &coreapi.ObjectReference{Kind: "DockerImage", Name: api.QuayImageReference(base)}, }, + { + name: "skip stale registry.ci ocp spec", + base: api.ImageStreamTagReference{Namespace: "ocp", Name: "4.16", Tag: "base-rhel9"}, + objects: []runtime.Object{&imagev1.ImageStream{ + ObjectMeta: metav1.ObjectMeta{Namespace: "ocp", Name: "4.16"}, + Spec: imagev1.ImageStreamSpec{Tags: []imagev1.TagReference{{ + Name: "base-rhel9", + From: &coreapi.ObjectReference{Kind: "DockerImage", Name: "registry.ci.openshift.org/ocp/4.16@sha256:dead"}, + }}}, + }}, + wantOK: true, + wantFrom: &coreapi.ObjectReference{Kind: "DockerImage", Name: api.QuayImageReference(api.ImageStreamTagReference{Namespace: "ocp", Name: "4.16", Tag: "base-rhel9"})}, + }, { name: "stable first", base: api.ImageStreamTagReference{Namespace: "ocp", Name: "4.22", Tag: "cli"},