Browse Source

Switch to Broadcom docker proxy.

Closes #1822
pull/1825/head
Mark Paluch 2 years ago
parent
commit
13e5414123
No known key found for this signature in database
GPG Key ID: 55BC6374BAA9D973
  1. 6
      Jenkinsfile
  2. 8
      ci/accept-third-party-license.sh
  3. 7
      ci/pipeline.properties
  4. 19
      spring-data-relational/src/test/java/org/springframework/data/ProxyImageNameSubstitutor.java

6
Jenkinsfile vendored

@ -40,6 +40,7 @@ pipeline {
steps { steps {
script { script {
docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.docker']) { docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.docker']) {
sh "PROFILE=all-dbs JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh" sh "PROFILE=all-dbs JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh"
sh "JENKINS_USER_NAME=${p['jenkins.user.name']} ci/clean.sh" sh "JENKINS_USER_NAME=${p['jenkins.user.name']} ci/clean.sh"
@ -47,6 +48,7 @@ pipeline {
} }
} }
} }
}
stage("Test other configurations") { stage("Test other configurations") {
when { when {
@ -70,6 +72,7 @@ pipeline {
} }
steps { steps {
script { script {
docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
docker.image(p['docker.java.next.image']).inside(p['docker.java.inside.docker']) { docker.image(p['docker.java.next.image']).inside(p['docker.java.inside.docker']) {
sh "PROFILE=all-dbs JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh" sh "PROFILE=all-dbs JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh"
sh "JENKINS_USER_NAME=${p['jenkins.user.name']} ci/clean.sh" sh "JENKINS_USER_NAME=${p['jenkins.user.name']} ci/clean.sh"
@ -79,6 +82,7 @@ pipeline {
} }
} }
} }
}
stage('Release to artifactory') { stage('Release to artifactory') {
when { when {
@ -99,6 +103,7 @@ pipeline {
} }
steps { steps {
script { script {
docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) { docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' + sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' +
"DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR} " + "DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR} " +
@ -117,6 +122,7 @@ pipeline {
} }
} }
} }
}
post { post {
changed { changed {

8
ci/accept-third-party-license.sh

@ -3,13 +3,13 @@
{ {
echo "mcr.microsoft.com/mssql/server:2022-latest" echo "mcr.microsoft.com/mssql/server:2022-latest"
echo "ibmcom/db2:11.5.7.0a" echo "ibmcom/db2:11.5.7.0a"
echo "harbor-repo.vmware.com/mcr-proxy-cache/mssql/server:2022-latest" echo "docker-hub.usw1.packages.broadcom.com/mssql/server:2022-latest"
echo "harbor-repo.vmware.com/dockerhub-proxy-cache/ibmcom/db2:11.5.7.0a" echo "docker-hub.usw1.packages.broadcom.com/ibmcom/db2:11.5.7.0a"
} > spring-data-jdbc/src/test/resources/container-license-acceptance.txt } > spring-data-jdbc/src/test/resources/container-license-acceptance.txt
{ {
echo "mcr.microsoft.com/mssql/server:2022-latest" echo "mcr.microsoft.com/mssql/server:2022-latest"
echo "ibmcom/db2:11.5.7.0a" echo "ibmcom/db2:11.5.7.0a"
echo "harbor-repo.vmware.com/mcr-proxy-cache/mssql/server:2022-latest" echo "docker-hub.usw1.packages.broadcom.com/mssql/server:2022-latest"
echo "harbor-repo.vmware.com/dockerhub-proxy-cache/ibmcom/db2:11.5.7.0a" echo "docker-hub.usw1.packages.broadcom.com/ibmcom/db2:11.5.7.0a"
} > spring-data-r2dbc/src/test/resources/container-license-acceptance.txt } > spring-data-r2dbc/src/test/resources/container-license-acceptance.txt

7
ci/pipeline.properties

@ -3,8 +3,8 @@ java.main.tag=17.0.9_9-jdk-focal
java.next.tag=21.0.1_12-jdk-jammy java.next.tag=21.0.1_12-jdk-jammy
# Docker container images - standard # Docker container images - standard
docker.java.main.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.main.tag} docker.java.main.image=library/eclipse-temurin:${java.main.tag}
docker.java.next.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.next.tag} docker.java.next.image=library/eclipse-temurin:${java.next.tag}
# Supported versions of MongoDB # Supported versions of MongoDB
docker.mongodb.4.4.version=4.4.25 docker.mongodb.4.4.version=4.4.25
@ -14,6 +14,7 @@ docker.mongodb.7.0.version=7.0.2
# Supported versions of Redis # Supported versions of Redis
docker.redis.6.version=6.2.13 docker.redis.6.version=6.2.13
docker.redis.7.version=7.2.4
# Supported versions of Cassandra # Supported versions of Cassandra
docker.cassandra.3.version=3.11.16 docker.cassandra.3.version=3.11.16
@ -25,6 +26,8 @@ docker.java.inside.docker=-u root -v /var/run/docker.sock:/var/run/docker.sock -
# Credentials # Credentials
docker.registry= docker.registry=
docker.credentials=hub.docker.com-springbuildmaster docker.credentials=hub.docker.com-springbuildmaster
docker.proxy.registry=https://docker-hub.usw1.packages.broadcom.com
docker.proxy.credentials=usw1_packages_broadcom_com-jenkins-token
artifactory.credentials=02bd1690-b54f-4c9f-819d-a77cb7a9822c artifactory.credentials=02bd1690-b54f-4c9f-819d-a77cb7a9822c
artifactory.url=https://repo.spring.io artifactory.url=https://repo.spring.io
artifactory.repository.snapshot=libs-snapshot-local artifactory.repository.snapshot=libs-snapshot-local

19
spring-data-relational/src/test/java/org/springframework/data/ProxyImageNameSubstitutor.java

@ -37,14 +37,10 @@ public class ProxyImageNameSubstitutor extends ImageNameSubstitutor {
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 = "docker-hub.usw1.packages.broadcom.com/";
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) {
@ -62,13 +58,6 @@ 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;
} }
@ -92,10 +81,4 @@ public class ProxyImageNameSubstitutor extends ImageNameSubstitutor {
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());
}
} }

Loading…
Cancel
Save