Skip to content

Commit e1bd9ba

Browse files
committed
Merge branch 'oketest42lb' into 'release/4.2'
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 See merge request weblogic-cloud/weblogic-kubernetes-operator!4812
2 parents 834babb + 74eaa35 commit e1bd9ba

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)