Skip to content

Commit 7ff4498

Browse files
committed
Fixes fabric8io#1187 Fix regression tests in order to get them working on Openshift 3.7
1 parent a7612de commit 7ff4498

9 files changed

+70
-15
lines changed

.travis.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ matrix:
1010
include:
1111
- env: OC_VERSION="v3.6.0" COMMIT_ID="c4dd4cf"
1212
- env: OC_VERSION="v3.6.1" COMMIT_ID="008f2d5"
13-
#- env: OC_VERSION="v3.7.0" COMMIT_ID="7ed6862"
13+
- env: OC_VERSION="v3.7.0" COMMIT_ID="7ed6862"
1414

1515
sudo: required
1616
dist: trusty
@@ -33,7 +33,7 @@ before_script: ./mvnw clean install -DskipTests
3333

3434
script:
3535
# Profile jacoco switches on jacoco coverages, regession-test for running regreesion tests on fabric8/OpenShift.io quickstart projects
36-
- ./mvnw -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B install -pl rt -P regression-test
36+
- travis_wait 180 ./mvnw -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B install -pl rt -P regression-test
3737
# Only build docs when commited on master and not a pull request.
3838
# See https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables
3939
# for more details about Travis default vars

rt/src/main/resources/scripts/prepare-test-environment.sh

+36
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,42 @@ curl -LO https://github.com/openshift/origin/releases/download/${OC_VERSION}/${o
1212
rm -rf ${oc_tool_version}.tar.gz
1313
echo "Installed OC CLI tool"
1414

15+
# OpenShift >= 3.7 requires nsenter
16+
if ! which nsenter > /dev/null; then
17+
echo "Did not find nsenter. Installing it."
18+
NSENTER_BUILD_DIR=$(mktemp -d /tmp/nsenter-build-XXXXXX)
19+
pushd ${NSENTER_BUILD_DIR}
20+
curl https://www.kernel.org/pub/linux/utils/util-linux/v2.31/util-linux-2.31.tar.gz | tar -zxf-
21+
cd util-linux-2.31
22+
./configure --without-ncurses
23+
make nsenter
24+
sudo cp nsenter /usr/local/bin
25+
rm -rf "${NSENTER_BUILD_DIR}"
26+
popd
27+
fi
28+
# OpenShift >= 3.7 requires systemd-run (but Ubuntu Trusty still uses Init)
29+
# Should be in Kubernetes to correctly detect if systemd-run is present -
30+
# Hack it till then
31+
if ! which systemd-run > /dev/null; then
32+
echo "Did not find systemd-run. Hacking it to work around Kubernetes calling it."
33+
echo '#!/bin/bash
34+
echo "all arguments: "$@
35+
while [[ $# -gt 0 ]]
36+
do
37+
key="$1"
38+
if [[ "${key}" != "--" ]]; then
39+
shift
40+
continue
41+
fi
42+
shift
43+
break
44+
done
45+
echo "remaining args: "$@
46+
exec $@' | sudo tee /usr/bin/systemd-run >/dev/null
47+
sudo chmod +x /usr/bin/systemd-run
48+
fi
49+
50+
1551
#add insecure docker registry
1652
tmp=`mktemp`
1753
echo 'DOCKER_OPTS="$DOCKER_OPTS --insecure-registry 172.30.0.0/16"' > ${tmp}

rt/src/test/java/io/fabric8/maven/rt/BaseBoosterIT.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ protected void waitTillApplicationPodStarts(String key, String value) throws Int
377377

378378
int nPolls = 0;
379379
// Keep polling till 5 minutes
380-
while (nPolls < 60) {
380+
while (nPolls < 120) {
381381
PodList podList = openShiftClient.pods().withLabel("app", testsuiteRepositoryArtifactId).list();
382382
for (Pod pod : podList.getItems()) {
383383
logger.info("waitTillApplicationPodStarts(" + key + ", " + value + ") -> Pod : "

rt/src/test/java/io/fabric8/maven/rt/SpringbootConfigmapBoosterIT.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class SpringbootConfigmapBoosterIT extends BaseBoosterIT {
3535

3636
private final String TESTSUITE_CONFIGMAP_NAME = "app-config";
3737

38-
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -DskipTests", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
38+
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -Dfabric8.openshift.trimImageInContainerSpec=true -DskipTests", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
3939

4040
private final String TEST_ENDPOINT = "/api/greeting";
4141

@@ -49,9 +49,11 @@ public void deploy_springboot_app_once() throws Exception {
4949

5050
createViewRoleToServiceAccount();
5151
createConfigMapResourceForApp(TESTSUITE_CONFIGMAP_NAME, "greeting.message: Hello World from a ConfigMap!");
52+
addRedeploymentAnnotations(testRepository, RELATIVE_POM_PATH, "deploymentType", "deployOnce", fmpConfigurationFile);
5253

5354
deploy(testRepository, EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL, EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE);
54-
waitAfterDeployment(false);
55+
waitTillApplicationPodStarts("deploymentType", "deployOnce");
56+
TimeUnit.SECONDS.sleep(20);
5557
assertApplication(false);
5658

5759
openShiftClient.configMaps().inNamespace(testsuiteNamespace).withName(TESTSUITE_CONFIGMAP_NAME).delete();

rt/src/test/java/io/fabric8/maven/rt/SpringbootCrudBoosterIT.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
public class SpringbootCrudBoosterIT extends BaseBoosterIT {
3232
private final String SPRING_BOOT_CRUD_BOOSTER_GIT = "https://github.com/snowdrop/spring-boot-crud-booster.git";
3333

34-
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -DskipTests", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
34+
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -Dfabric8.openshift.trimImageInContainerSpec=true -DskipTests", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
3535

3636
private final String TEST_ENDPOINT = "/api/fruits";
3737

@@ -46,8 +46,11 @@ public void deploy_springboot_app_once() throws Exception {
4646
Repository testRepository = setupSampleTestRepository(SPRING_BOOT_CRUD_BOOSTER_GIT, RELATIVE_POM_PATH);
4747
deployDatabaseUsingCLI();
4848

49+
addRedeploymentAnnotations(testRepository, RELATIVE_POM_PATH, "deploymentType", "deployOnce", fmpConfigurationFile);
50+
4951
deploy(testRepository, EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL, EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE);
50-
waitAfterDeployment(false);
52+
waitTillApplicationPodStarts("deploymentType", "deployOnce");
53+
TimeUnit.SECONDS.sleep(20);
5154
assertApplication();
5255
}
5356

rt/src/test/java/io/fabric8/maven/rt/SpringbootHttpBoosterIT.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import org.junit.After;
2323
import org.testng.annotations.Test;
2424

25+
import java.util.concurrent.TimeUnit;
26+
2527
import static io.fabric8.kubernetes.assertions.Assertions.assertThat;
2628

2729
/**
@@ -35,16 +37,19 @@ public class SpringbootHttpBoosterIT extends BaseBoosterIT {
3537

3638
private final String FMP_CONFIGURATION_FILE = "/fmp-plugin-config.xml";
3739

38-
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
40+
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -Dfabric8.openshift.trimImageInContainerSpec=true", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
3941

4042
private final String RELATIVE_POM_PATH = "/pom.xml";
4143

4244
@Test
4345
public void deploy_springboot_app_once() throws Exception {
4446
Repository testRepository = setupSampleTestRepository(SPRING_BOOT_HTTP_BOOSTER_GIT, RELATIVE_POM_PATH);
4547

48+
addRedeploymentAnnotations(testRepository, RELATIVE_POM_PATH, "deploymentType", "deployOnce", fmpConfigurationFile);
49+
4650
deploy(testRepository, EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL, EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE);
47-
waitUntilDeployment(false);
51+
waitTillApplicationPodStarts("deploymentType", "deployOnce");
52+
TimeUnit.SECONDS.sleep(20);
4853
assertApplication();
4954
}
5055

rt/src/test/java/io/fabric8/maven/rt/VertxConfigmapBoosterIT.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class VertxConfigmapBoosterIT extends BaseBoosterIT {
3636

3737
private final String TESTSUITE_CONFIGMAP_NAME = "app-config";
3838

39-
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -DskipTests", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
39+
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -Dfabric8.openshift.trimImageInContainerSpec=true -DskipTests", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
4040

4141
private final String TEST_ENDPOINT = "/api/greeting";
4242

@@ -52,8 +52,11 @@ public void deploy_vertx_app_once() throws Exception {
5252

5353
createViewRoleToServiceAccount();
5454
createConfigMapResourceForApp(TESTSUITE_CONFIGMAP_NAME);
55+
addRedeploymentAnnotations(testRepository, RELATIVE_POM_PATH, "deploymentType", "deployOnce", fmpConfigurationFile);
56+
5557
deploy(testRepository, EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL, EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE);
56-
waitAfterDeployment(false);
58+
waitTillApplicationPodStarts("deploymentType", "deployOnce");
59+
TimeUnit.SECONDS.sleep(20);
5760
assertDeployment(false);
5861

5962
openShiftClient.configMaps().inNamespace(testsuiteNamespace).withName(TESTSUITE_CONFIGMAP_NAME).delete();

rt/src/test/java/io/fabric8/maven/rt/VertxHealthchecksBooster.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
public class VertxHealthchecksBooster extends BaseBoosterIT {
3232
private final String SPRING_BOOT_HTTP_BOOSTER_GIT = "https://github.com/openshiftio-vertx-boosters/vertx-health-checks-booster.git";
3333

34-
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
34+
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -Dfabric8.openshift.trimImageInContainerSpec=true", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
3535

3636
private final String RELATIVE_POM_PATH = "/pom.xml";
3737

@@ -41,8 +41,11 @@ public class VertxHealthchecksBooster extends BaseBoosterIT {
4141
public void deploy_vertx_app_once() throws Exception {
4242
Repository testRepository = setupSampleTestRepository(SPRING_BOOT_HTTP_BOOSTER_GIT, RELATIVE_POM_PATH);
4343

44+
addRedeploymentAnnotations(testRepository, RELATIVE_POM_PATH, "deploymentType", "deployOnce", fmpConfigurationFile);
45+
4446
deploy(testRepository, EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL, EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE);
45-
waitAfterDeployment(false);
47+
waitTillApplicationPodStarts("deploymentType", "deployOnce");
48+
TimeUnit.SECONDS.sleep(20);
4649
assertDeployment();
4750
}
4851

rt/src/test/java/io/fabric8/maven/rt/VertxHttpBoosterIT.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
public class VertxHttpBoosterIT extends BaseBoosterIT {
3434
private final String SPRING_BOOT_HTTP_BOOSTER_GIT = "https://github.com/openshiftio-vertx-boosters/vertx-http-booster.git";
3535

36-
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
36+
private final String EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL = "fabric8:deploy -Dfabric8.openshift.trimImageInContainerSpec=true", EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE = "openshift";
3737

3838
private final String RELATIVE_POM_PATH = "/pom.xml";
3939

@@ -45,8 +45,11 @@ public class VertxHttpBoosterIT extends BaseBoosterIT {
4545
public void deploy_vertx_app_once() throws Exception {
4646
Repository testRepository = setupSampleTestRepository(SPRING_BOOT_HTTP_BOOSTER_GIT, RELATIVE_POM_PATH);
4747

48+
addRedeploymentAnnotations(testRepository, RELATIVE_POM_PATH, "deploymentType", "deployOnce", fmpConfigurationFile);
49+
4850
deploy(testRepository, EMBEDDED_MAVEN_FABRIC8_BUILD_GOAL, EMBEDDED_MAVEN_FABRIC8_BUILD_PROFILE);
49-
waitTillApplicationPodStarts();
51+
waitTillApplicationPodStarts("deploymentType", "deployOnce");
52+
TimeUnit.SECONDS.sleep(20);
5053
assertDeployment();
5154
}
5255

0 commit comments

Comments
 (0)