Skip to content

Commit 74eaa35

Browse files
marinakogrjeberhard
authored andcommitted
Added checks for created in OCI load balancers health state and delete it in the end of tests to avoid left overs after OKE cluster deletion
1 parent 834babb commit 74eaa35

File tree

8 files changed

+217
-32
lines changed

8 files changed

+217
-32
lines changed

Jenkinsfile.oke

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22
// Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
33
//
44

5+
56
CRON_SETTINGS_MAIN = '''H 3 * * 1-5 % MAVEN_PROFILE_NAME=oke-gate;CLUSTER_NAME=seqone;PARALLEL_RUN=false
67
H 2 * * 1-5 % MAVEN_PROFILE_NAME=oke-parallel;CLUSTER_NAME=parone;PARALLEL_RUN=true'''
78
CRON_SETTINGS_42 = '''H 1 * * 1-5 % MAVEN_PROFILE_NAME=oke-gate;CLUSTER_NAME=seq42one;PARALLEL_RUN=false
89
H 11 * * 1-5 % MAVEN_PROFILE_NAME=oke-sequential;CLUSTER_NAME=seq42two;PARALLEL_RUN=false
910
H 14 * * 1-5 % MAVEN_PROFILE_NAME=oke-parallel;CLUSTER_NAME=par42one;PARALLEL_RUN=true'''
1011

12+
13+
1114
CRON_SETTINGS = "${env.JOB_NAME == 'wko-oke-nightly' ? CRON_SETTINGS_MAIN : CRON_SETTINGS_42}"
1215

1316
pipeline {
@@ -527,6 +530,8 @@ EOF
527530
export OCI_CLI_CONFIG_FILE=${jenkins_home_directory}/.oci/config
528531
export OCI_CLI_PROFILE=${oci_profile}
529532
compartment_ocid=${compartment_id}
533+
export COMPARTMENT_OCID=${compartment_id}
534+
echo "COMPARTMENT_OCID : ${COMPARTMENT_OCID}"
530535
mkdir -m777 -p "${WORKSPACE}/.mvn"
531536
touch ${WORKSPACE}/.mvn/maven.config
532537
export KUBECONFIG=${kubeconfig_file}
@@ -597,6 +602,7 @@ EOF
597602
echo "-Dwko.it.fmwinfra.image.tag=\"${FMWINFRA_IMAGE_TAG}\"" >> ${WORKSPACE}/.mvn/maven.config
598603
echo "-Dwko.it.db.image.name=\"${DB_IMAGE_NAME}\"" >> ${WORKSPACE}/.mvn/maven.config
599604
echo "-Dwko.it.db.image.tag=\"${DB_IMAGE_TAG}\"" >> ${WORKSPACE}/.mvn/maven.config
605+
echo "-Dwko.it.oci.compartment.ocid=\"${COMPARTMENT_OCID}\"" >> ${WORKSPACE}/.mvn/maven.config
600606
echo "-Dwko.it.monitoring.exporter.branch=\"${MONITORING_EXPORTER_BRANCH}\"" >> ${WORKSPACE}/.mvn/maven.config
601607
echo "-Dwko.it.monitoring.exporter.webapp.version=\"${MONITORING_EXPORTER_WEBAPP_VERSION}\"" >> ${WORKSPACE}/.mvn/maven.config
602608
echo "-Dwko.it.prometheus.chart.version=\"${PROMETHEUS_CHART_VERSION}\"" >> ${WORKSPACE}/.mvn/maven.config
@@ -618,6 +624,7 @@ EOF
618624
export PATH=${runtime_path}
619625
export OKE_CLUSTER="true"
620626
export OKE_CLUSTER_PRIVATEIP="true"
627+
export COMPARTMENT_OCID=${compartment_id}
621628
export OKD="false"
622629
export KUBECONFIG=${kubeconfig_file}
623630
export BASE_IMAGES_REPO_USERNAME="${OCIR_USER}"

integration-tests/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
<wko.it.grafana.chart.version>${env.GRAFANA_CHART_VERSION}</wko.it.grafana.chart.version>
4949
<wko.it.istio.version>${env.ISTIO_VERSION}</wko.it.istio.version>
5050
<wko.it.oke.cluster>${env.OKE_CLUSTER}</wko.it.oke.cluster>
51+
<wko.it.oci.compartment.ocid>${env.COMPARTMENT_OCID}</wko.it.oci.compartment.ocid>
5152
<wko.it.arm.cluster>${env.ARM}</wko.it.arm.cluster>
5253
<wko.it.oke.cluster.privateip>${env.OKE_CLUSTER_PRIVATEIP}</wko.it.oke.cluster.privateip>
5354
<wko.it.nfs.server>${env.NFS_SERVER}</wko.it.nfs.server>

integration-tests/src/test/java/oracle/weblogic/kubernetes/ItCrossDomainTransaction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ private static void createNginxIngressPathRoutingRules() {
693693
+ "/weblogic/ready --write-out %{http_code} -o /dev/null";
694694
if (OKE_CLUSTER) {
695695
try {
696-
if (!callWebAppAndWaitTillReady(curlCmd, 60)) {
696+
if (!callWebAppAndWaitTillReady(curlCmd, 20)) {
697697
ExecResult result = ExecCommand.exec(KUBERNETES_CLI + " get all -A");
698698
logger.info(result.stdout());
699699
//restart core-dns service
@@ -709,6 +709,6 @@ private static void createNginxIngressPathRoutingRules() {
709709
}
710710

711711
logger.info("Executing curl command {0}", curlCmd);
712-
assertTrue(callWebAppAndWaitTillReady(curlCmd, 60));
712+
assertTrue(callWebAppAndWaitTillReady(curlCmd, 20));
713713
}
714714
}

integration-tests/src/test/java/oracle/weblogic/kubernetes/ItOCILoadBalancer.java

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,8 @@
44
package oracle.weblogic.kubernetes;
55

66
import java.util.ArrayList;
7-
import java.util.HashMap;
87
import java.util.List;
9-
import java.util.Map;
108

11-
import io.kubernetes.client.openapi.models.V1LoadBalancerIngress;
12-
import io.kubernetes.client.openapi.models.V1Service;
139
import oracle.weblogic.kubernetes.actions.impl.primitive.Kubernetes;
1410
import oracle.weblogic.kubernetes.annotations.IntegrationTest;
1511
import oracle.weblogic.kubernetes.annotations.Namespaces;
@@ -25,10 +21,10 @@
2521
import static oracle.weblogic.kubernetes.TestConstants.MII_BASIC_IMAGE_NAME;
2622
import static oracle.weblogic.kubernetes.TestConstants.MII_BASIC_IMAGE_TAG;
2723
import static oracle.weblogic.kubernetes.TestConstants.SKIP_CLEANUP;
28-
import static oracle.weblogic.kubernetes.assertions.impl.Kubernetes.getService;
2924
import static oracle.weblogic.kubernetes.utils.ApplicationUtils.callWebAppAndCheckForServerNameInResponse;
3025
import static oracle.weblogic.kubernetes.utils.CommonMiiTestUtils.createMiiDomainAndVerify;
3126
import static oracle.weblogic.kubernetes.utils.ImageUtils.createTestRepoSecret;
27+
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.getLoadBalancerIP;
3228
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.installAndVerifyOCILoadBalancer;
3329
import static oracle.weblogic.kubernetes.utils.OperatorUtils.installAndVerifyOperator;
3430
import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger;
@@ -124,30 +120,6 @@ void testOCILoadBalancer() throws Exception {
124120
verifyWebAppAccessThroughOCILoadBalancer(loadBalancerIP, 2, clusterHttpPort);
125121
}
126122

127-
/**
128-
* Retreive external IP from OCI LoadBalancer.
129-
*/
130-
private static String getLoadBalancerIP(String namespace, String lbName) throws Exception {
131-
Map<String, String> labels = new HashMap<>();
132-
labels.put("loadbalancer", lbName);
133-
V1Service service = getService(lbName, labels, namespace);
134-
assertNotNull(service, "Can't find service with name " + lbName);
135-
logger.info("Found service with name {0} in {1} namespace ", lbName, namespace);
136-
assertNotNull(service.getStatus(), "service status is null");
137-
assertNotNull(service.getStatus().getLoadBalancer(), "service loadbalancer is null");
138-
List<V1LoadBalancerIngress> ingress = service.getStatus().getLoadBalancer().getIngress();
139-
if (ingress != null) {
140-
logger.info("LoadBalancer Ingress " + ingress.toString());
141-
V1LoadBalancerIngress lbIng =
142-
ingress.stream().filter(c -> c.getIp() != null && !c.getIp().equals("pending")).findAny().orElse(null);
143-
if (lbIng != null) {
144-
logger.info("OCI LoadBalancer is created with external ip" + lbIng.getIp());
145-
return lbIng.getIp();
146-
}
147-
}
148-
return null;
149-
}
150-
151123
/**
152124
* Verify the sample-app app can be accessed from all managed servers in the domain through OCI Load Balancer.
153125
*/

integration-tests/src/test/java/oracle/weblogic/kubernetes/TestConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,7 @@ public interface TestConstants {
370370
public static final String MYSQL_VERSION = "8.0.29";
371371

372372
//OKE constants
373+
public static final String COMPARTMENT_OCID = System.getProperty("wko.it.oci.compartment.ocid", "");
373374
public static final boolean OKE_CLUSTER =
374375
Boolean.parseBoolean(getNonEmptySystemProperty("wko.it.oke.cluster", "false"));
375376
public static final boolean OKE_CLUSTER_PRIVATEIP =

integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/InitializationTasks.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
import static oracle.weblogic.kubernetes.utils.FileUtils.cleanupDirectory;
114114
import static oracle.weblogic.kubernetes.utils.IstioUtils.installIstio;
115115
import static oracle.weblogic.kubernetes.utils.IstioUtils.uninstallIstio;
116+
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.deleteLoadBalancer;
116117
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.installAndVerifyTraefik;
117118
import static oracle.weblogic.kubernetes.utils.OperatorUtils.installAndVerifyOperator;
118119
import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger;
@@ -133,6 +134,7 @@ public class InitializationTasks implements BeforeAllCallback, ExtensionContext.
133134
private static String wdtBasicImage;
134135

135136
private static Collection<String> pushedImages = new ArrayList<>();
137+
private static Collection<String> lbIPs = new ArrayList<>();
136138
private static boolean isInitializationSuccessful = false;
137139

138140
ConditionFactory withVeryLongRetryPolicy
@@ -355,6 +357,15 @@ public static void registerPushedImage(String imageName) {
355357
pushedImages.add(imageName);
356358
}
357359

360+
/**
361+
* Called when load balancer is created in OCI, allowing conditional cleanup of load balancers.
362+
*
363+
* @param lbIP external IP of load balancer.
364+
*/
365+
public static void registerLoadBalancerExternalIP(String lbIP) {
366+
lbIPs.add(lbIP);
367+
}
368+
358369
@Override
359370
public void close() {
360371
LoggingFacade logger = getLogger();
@@ -395,6 +406,14 @@ public void close() {
395406
for (String image : pushedImages) {
396407
deleteImage(image);
397408
}
409+
410+
if (OKE_CLUSTER) {
411+
logger.info("Cleanup created in OCI load balancers after all test suites are run");
412+
// delete all load balancers in OCI
413+
for (String ip : lbIPs) {
414+
deleteLoadBalancer(ip);
415+
}
416+
}
398417
}
399418

400419
// delete images from TEST_IMAGES_REPO, if necessary

0 commit comments

Comments
 (0)