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. 44
      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

44
Jenkinsfile vendored

@ -40,9 +40,11 @@ pipeline {
steps { steps {
script { script {
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.docker']) { docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
sh "PROFILE=all-dbs JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh" docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.docker']) {
sh "JENKINS_USER_NAME=${p['jenkins.user.name']} ci/clean.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"
}
} }
} }
} }
@ -70,9 +72,11 @@ pipeline {
} }
steps { steps {
script { script {
docker.image(p['docker.java.next.image']).inside(p['docker.java.inside.docker']) { docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
sh "PROFILE=all-dbs JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh" docker.image(p['docker.java.next.image']).inside(p['docker.java.inside.docker']) {
sh "JENKINS_USER_NAME=${p['jenkins.user.name']} ci/clean.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"
}
} }
} }
} }
@ -99,19 +103,21 @@ pipeline {
} }
steps { steps {
script { script {
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) { docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' + docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
"DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR} " + sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' +
"DEVELOCITY_CACHE_PASSWORD=${DEVELOCITY_CACHE_PSW} " + "DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR} " +
"GRADLE_ENTERPRISE_ACCESS_KEY=${DEVELOCITY_ACCESS_KEY} " + "DEVELOCITY_CACHE_PASSWORD=${DEVELOCITY_CACHE_PSW} " +
"./mvnw -s settings.xml -Pci,artifactory " + "GRADLE_ENTERPRISE_ACCESS_KEY=${DEVELOCITY_ACCESS_KEY} " +
"-Dartifactory.server=${p['artifactory.url']} " + "./mvnw -s settings.xml -Pci,artifactory " +
"-Dartifactory.username=${ARTIFACTORY_USR} " + "-Dartifactory.server=${p['artifactory.url']} " +
"-Dartifactory.password=${ARTIFACTORY_PSW} " + "-Dartifactory.username=${ARTIFACTORY_USR} " +
"-Dartifactory.staging-repository=${p['artifactory.repository.snapshot']} " + "-Dartifactory.password=${ARTIFACTORY_PSW} " +
"-Dartifactory.build-name=spring-data-relational " + "-Dartifactory.staging-repository=${p['artifactory.repository.snapshot']} " +
"-Dartifactory.build-number=spring-data-relational-${BRANCH_NAME}-build-${BUILD_NUMBER} " + "-Dartifactory.build-name=spring-data-relational " +
"-Dmaven.test.skip=true clean deploy -U -B" "-Dartifactory.build-number=spring-data-relational-${BRANCH_NAME}-build-${BUILD_NUMBER} " +
"-Dmaven.test.skip=true clean deploy -U -B"
}
} }
} }
} }

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