@@ -414,3 +414,84 @@ func buildIgnitionAssetDefaultDependencies() []asset.Asset {
414414 & tls.AdminKubeConfigClientCertKey {},
415415 }
416416}
417+
418+ func TestIgnition_getMirrorFromRelease (t * testing.T ) {
419+
420+ cases := []struct {
421+ name string
422+ release string
423+ registriesConf mirror.RegistriesConf
424+ expectedMirror string
425+ }{
426+ {
427+ name : "no-mirror" ,
428+ release : "registry.ci.openshift.org/ocp/release:latest" ,
429+ registriesConf : mirror.RegistriesConf {},
430+ expectedMirror : "" ,
431+ },
432+ {
433+ name : "mirror-no-match" ,
434+ release : "registry.ci.openshift.org/ocp/release:4.11.0-0.nightly-foo" ,
435+ registriesConf : mirror.RegistriesConf {
436+ File : & asset.File {
437+ Filename : "registries.conf" ,
438+ Data : []byte ("" ),
439+ },
440+ MirrorConfig : []mirror.RegistriesConfig {
441+ {
442+ Location : "some.registry.org/release" ,
443+ Mirror : "some.mirror.org" ,
444+ },
445+ },
446+ },
447+ expectedMirror : "" ,
448+ },
449+ {
450+ name : "mirror-match" ,
451+ release : "registry.ci.openshift.org/ocp/release:4.11.0-0.nightly-foo" ,
452+ registriesConf : mirror.RegistriesConf {
453+ File : & asset.File {
454+ Filename : "registries.conf" ,
455+ Data : []byte ("" ),
456+ },
457+ MirrorConfig : []mirror.RegistriesConfig {
458+ {
459+ Location : "registry.ci.openshift.org/ocp/release" ,
460+ Mirror : "virthost.ostest.test.metalkube.org:5000/localimages/local-release-image" ,
461+ },
462+ },
463+ },
464+ expectedMirror : "virthost.ostest.test.metalkube.org:5000/localimages/local-release-image:4.11.0-0.nightly-foo" ,
465+ },
466+ {
467+ name : "mirror-match-with-checksum" ,
468+ release : "quay.io/openshift-release-dev/ocp-release@sha256:300bce8246cf880e792e106607925de0a404484637627edf5f517375517d54a4" ,
469+ registriesConf : mirror.RegistriesConf {
470+ File : & asset.File {
471+ Filename : "registries.conf" ,
472+ Data : []byte ("" ),
473+ },
474+ MirrorConfig : []mirror.RegistriesConfig {
475+ {
476+ Location : "quay.io/openshift-release-dev/ocp-v4.0-art-dev" ,
477+ Mirror : "localhost:5000/openshift4/openshift/release" ,
478+ },
479+ {
480+ Location : "quay.io/openshift-release-dev/ocp-release" ,
481+ Mirror : "localhost:5000/openshift-release-dev/ocp-release" ,
482+ },
483+ },
484+ },
485+ expectedMirror : "localhost:5000/openshift-release-dev/ocp-release@sha256:300bce8246cf880e792e106607925de0a404484637627edf5f517375517d54a4" ,
486+ },
487+ }
488+ for _ , tc := range cases {
489+ t .Run (tc .name , func (t * testing.T ) {
490+
491+ mirror := getMirrorFromRelease (tc .release , & tc .registriesConf )
492+
493+ assert .Equal (t , tc .expectedMirror , mirror )
494+
495+ })
496+ }
497+ }
0 commit comments