Skip to content

Commit 5c8e31e

Browse files
committed
Merge branch 'oketest42lb' into 'release/4.2'
Added support to check health status and cleanup for istio created load balancers See merge request weblogic-cloud/weblogic-kubernetes-operator!4816
2 parents e1bd9ba + 5da9a07 commit 5c8e31e

File tree

4 files changed

+42
-7
lines changed

4 files changed

+42
-7
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import oracle.weblogic.kubernetes.actions.impl.primitive.Kubernetes;
1010
import oracle.weblogic.kubernetes.annotations.IntegrationTest;
1111
import oracle.weblogic.kubernetes.annotations.Namespaces;
12+
import oracle.weblogic.kubernetes.extensions.InitializationTasks;
1213
import oracle.weblogic.kubernetes.logging.LoggingFacade;
1314
import org.junit.jupiter.api.AfterAll;
1415
import org.junit.jupiter.api.BeforeAll;
@@ -24,6 +25,7 @@
2425
import static oracle.weblogic.kubernetes.utils.ApplicationUtils.callWebAppAndCheckForServerNameInResponse;
2526
import static oracle.weblogic.kubernetes.utils.CommonMiiTestUtils.createMiiDomainAndVerify;
2627
import static oracle.weblogic.kubernetes.utils.ImageUtils.createTestRepoSecret;
28+
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.deleteLoadBalancer;
2729
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.getLoadBalancerIP;
2830
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.installAndVerifyOCILoadBalancer;
2931
import static oracle.weblogic.kubernetes.utils.OperatorUtils.installAndVerifyOperator;
@@ -41,7 +43,7 @@
4143
+ "all managed servers in the domain through OCI Load Balancer")
4244
@IntegrationTest
4345
@Tag("oke-arm")
44-
@Tag("oke-parallel")
46+
@Tag("oke-gate")
4547
class ItOCILoadBalancer {
4648
// domain constants
4749
private static final int replicaCount = 2;
@@ -84,6 +86,7 @@ public void tearDownAll() {
8486
if (!SKIP_CLEANUP) {
8587
Kubernetes.deleteService(OCI_LB_NAME, domainNamespace);
8688
}
89+
deleteLoadBalancer(loadBalancerIP);
8790
}
8891

8992
/**
@@ -114,9 +117,10 @@ void testOCILoadBalancer() throws Exception {
114117
assertDoesNotThrow(() -> installAndVerifyOCILoadBalancer(domainNamespace,
115118
clusterHttpPort, clusterName, domainUid, OCI_LB_NAME),
116119
"Installation of OCI Load Balancer failed");
117-
loadBalancerIP = getLoadBalancerIP(domainNamespace,OCI_LB_NAME);
120+
loadBalancerIP = getLoadBalancerIP(domainNamespace,OCI_LB_NAME, true);
118121
assertNotNull(loadBalancerIP, "External IP for Load Balancer is undefined");
119122
logger.info("LoadBalancer IP is " + loadBalancerIP);
123+
InitializationTasks.registerLoadBalancerExternalIP(loadBalancerIP);
120124
verifyWebAppAccessThroughOCILoadBalancer(loadBalancerIP, 2, clusterHttpPort);
121125
}
122126

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
import java.util.Collection;
1212
import java.util.Collections;
1313
import java.util.HashMap;
14+
import java.util.HashSet;
1415
import java.util.Iterator;
1516
import java.util.List;
1617
import java.util.Map;
18+
import java.util.Set;
1719
import java.util.concurrent.Callable;
1820
import java.util.concurrent.CountDownLatch;
1921
import java.util.concurrent.atomic.AtomicBoolean;
@@ -134,7 +136,7 @@ public class InitializationTasks implements BeforeAllCallback, ExtensionContext.
134136
private static String wdtBasicImage;
135137

136138
private static Collection<String> pushedImages = new ArrayList<>();
137-
private static Collection<String> lbIPs = new ArrayList<>();
139+
private static Set<String> lbIPs = new HashSet<>();
138140
private static boolean isInitializationSuccessful = false;
139141

140142
ConditionFactory withVeryLongRetryPolicy

integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/IstioUtils.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import oracle.weblogic.domain.OnlineUpdate;
2525
import oracle.weblogic.domain.ServerPod;
2626
import oracle.weblogic.kubernetes.actions.impl.primitive.Command;
27+
import oracle.weblogic.kubernetes.extensions.InitializationTasks;
2728
import oracle.weblogic.kubernetes.logging.LoggingFacade;
2829
import oracle.weblogic.kubernetes.utils.SemanticVersion.Compatibility;
2930

@@ -37,6 +38,7 @@
3738
import static oracle.weblogic.kubernetes.TestConstants.ISTIO_VERSION;
3839
import static oracle.weblogic.kubernetes.TestConstants.KUBERNETES_CLI;
3940
import static oracle.weblogic.kubernetes.TestConstants.OCNE;
41+
import static oracle.weblogic.kubernetes.TestConstants.OKE_CLUSTER;
4042
import static oracle.weblogic.kubernetes.TestConstants.OKE_CLUSTER_PRIVATEIP;
4143
import static oracle.weblogic.kubernetes.TestConstants.PROMETHEUS_CONFIG_MAP_RELOAD_IMAGE_NAME;
4244
import static oracle.weblogic.kubernetes.TestConstants.PROMETHEUS_CONFIG_MAP_RELOAD_IMAGE_TAG;
@@ -51,9 +53,12 @@
5153
import static oracle.weblogic.kubernetes.utils.ClusterUtils.createClusterResourceAndAddReferenceToDomain;
5254
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.checkServiceExists;
5355
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.formatIPv6Host;
56+
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.getServiceExtIPAddrtOke;
57+
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.testUntil;
5458
import static oracle.weblogic.kubernetes.utils.ExecCommand.exec;
5559
import static oracle.weblogic.kubernetes.utils.FileUtils.generateFileFromTemplate;
5660
import static oracle.weblogic.kubernetes.utils.FileUtils.replaceStringInFile;
61+
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.isLoadBalancerHealthy;
5762
import static oracle.weblogic.kubernetes.utils.PodUtils.checkPodReady;
5863
import static oracle.weblogic.kubernetes.utils.PodUtils.setPodAntiAffinity;
5964
import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger;
@@ -113,6 +118,16 @@ public static void installIstio() {
113118
.command(command)
114119
.redirect(false))
115120
.execute());
121+
if (OKE_CLUSTER) {
122+
String loadBalancerIP = getServiceExtIPAddrtOke("istio-ingressgateway", "istio-system");
123+
testUntil(
124+
assertDoesNotThrow(() -> isLoadBalancerHealthy("istio-system", "istio-ingressgateway"),
125+
"isLoadBalancerHealthy failed with ApiException"),
126+
logger,
127+
"Istio LoadBalancer to be healthy in namespace {0}",
128+
"istio-system");
129+
InitializationTasks.registerLoadBalancerExternalIP(loadBalancerIP);
130+
}
116131
}
117132

118133
/**

integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/LoadBalancerUtils.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -350,9 +350,23 @@ public static Callable<Boolean> isLoadBalancerHealthy(String namespace, String n
350350
* @param lbName -loadbalancer service name
351351
*/
352352
public static String getLoadBalancerIP(String namespace, String lbName) throws Exception {
353-
Map<String, String> labels = new HashMap<>();
354-
labels.put("loadbalancer", lbName);
355-
V1Service service = getService(lbName, null, namespace);
353+
return getLoadBalancerIP(namespace, lbName, false);
354+
}
355+
356+
/**
357+
* Retreive external IP from OCI LoadBalancer.
358+
*
359+
* @param namespace - namespace
360+
* @param lbName -loadbalancer service name
361+
* @param addLabel search service with label
362+
*/
363+
public static String getLoadBalancerIP(String namespace, String lbName, boolean addLabel) throws Exception {
364+
Map<String, String> labels = null;
365+
if (addLabel) {
366+
labels = new HashMap<>();
367+
labels.put("loadbalancer", lbName);
368+
}
369+
V1Service service = getService(lbName, labels, namespace);
356370
assertNotNull(service, "Can't find service with name " + lbName);
357371
LoggingFacade logger = getLogger();
358372
logger.info("Found service with name {0} in {1} namespace ", lbName, namespace);
@@ -864,7 +878,7 @@ public static String getLbExternalIp(String lbrelname, String lbns) throws Excep
864878
* @param lbPublicIP public Load Balancer IP
865879
*/
866880
public static void deleteLoadBalancer(String lbPublicIP) {
867-
if (!lbPublicIP.isEmpty()) {
881+
if (lbPublicIP != null && !lbPublicIP.isEmpty()) {
868882
if (lbPublicIP.startsWith("[") && lbPublicIP.endsWith("]")) {
869883
// Remove the brackets and return the content inside
870884
lbPublicIP = lbPublicIP.substring(1, lbPublicIP.length() - 1);

0 commit comments

Comments
 (0)