|
|
|
@ -33,14 +33,18 @@ public class ProxyImageNameSubstitutor extends ImageNameSubstitutor { |
|
|
|
private static final Logger LOG = LoggerFactory.getLogger(ProxyImageNameSubstitutor.class); |
|
|
|
private static final Logger LOG = LoggerFactory.getLogger(ProxyImageNameSubstitutor.class); |
|
|
|
|
|
|
|
|
|
|
|
private static final List<String> NAMES_TO_PROXY_PREFIX = List.of("ryuk", "arm64v8/mariadb", "ibmcom/db2", |
|
|
|
private static final List<String> NAMES_TO_PROXY_PREFIX = List.of("ryuk", "arm64v8/mariadb", "ibmcom/db2", |
|
|
|
"gvenzl/oracle-free"); |
|
|
|
"gvenzl/oracle-free", "gvenzl/oracle-xe"); |
|
|
|
|
|
|
|
|
|
|
|
private static final List<String> NAMES_TO_LIBRARY_PROXY_PREFIX = List.of("mariadb", "mysql", "postgres"); |
|
|
|
private static final List<String> NAMES_TO_LIBRARY_PROXY_PREFIX = List.of("mariadb", "mysql", "postgres"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final List<String> NAMES_TO_MCR_PROXY_PREFIX = List.of("mcr.microsoft.com/mssql"); |
|
|
|
|
|
|
|
|
|
|
|
private static final String PROXY_PREFIX = "harbor-repo.vmware.com/dockerhub-proxy-cache/"; |
|
|
|
private static final String PROXY_PREFIX = "harbor-repo.vmware.com/dockerhub-proxy-cache/"; |
|
|
|
|
|
|
|
|
|
|
|
private static final String LIBRARY_PROXY_PREFIX = PROXY_PREFIX + "library/"; |
|
|
|
private static final String LIBRARY_PROXY_PREFIX = PROXY_PREFIX + "library/"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final String MCR_PROXY_PREFIX = "harbor-repo.vmware.com/mcr-proxy-cache/"; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public DockerImageName apply(DockerImageName dockerImageName) { |
|
|
|
public DockerImageName apply(DockerImageName dockerImageName) { |
|
|
|
|
|
|
|
|
|
|
|
@ -58,6 +62,13 @@ public class ProxyImageNameSubstitutor extends ImageNameSubstitutor { |
|
|
|
return DockerImageName.parse(transformedName); |
|
|
|
return DockerImageName.parse(transformedName); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (NAMES_TO_MCR_PROXY_PREFIX.stream().anyMatch(s -> dockerImageName.asCanonicalNameString().contains(s))) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String transformedName = applyMcrProxyPrefix(dockerImageName.asCanonicalNameString()); |
|
|
|
|
|
|
|
LOG.info("Converting " + dockerImageName.asCanonicalNameString() + " to " + transformedName); |
|
|
|
|
|
|
|
return DockerImageName.parse(transformedName); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
LOG.info("Not changing " + dockerImageName.asCanonicalNameString() + "..."); |
|
|
|
LOG.info("Not changing " + dockerImageName.asCanonicalNameString() + "..."); |
|
|
|
return dockerImageName; |
|
|
|
return dockerImageName; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -80,4 +91,11 @@ public class ProxyImageNameSubstitutor extends ImageNameSubstitutor { |
|
|
|
private static String applyProxyAndLibraryPrefix(String imageName) { |
|
|
|
private static String applyProxyAndLibraryPrefix(String imageName) { |
|
|
|
return LIBRARY_PROXY_PREFIX + imageName; |
|
|
|
return LIBRARY_PROXY_PREFIX + imageName; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Apply an MCR-based prefix. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
private static String applyMcrProxyPrefix(String imageName) { |
|
|
|
|
|
|
|
return MCR_PROXY_PREFIX + imageName.substring("mcr.microsoft.com/".length()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|