Skip to content

Commit ef2a105

Browse files
committed
Merge branch 'foroke' into 'main'
forward changes from 4.2. to main for Load Balancer tests See merge request weblogic-cloud/weblogic-kubernetes-operator!4883
2 parents f870072 + 954c087 commit ef2a105

9 files changed

+90
-12
lines changed

Jenkinsfile.oke

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

5-
CRON_SETTINGS = '''H 3 * * 6 % MAVEN_PROFILE_NAME=oke-weekly-sequential;CLUSTER_NAME=seqweek;PARALLEL_RUN=false
5+
CRON_SETTINGS = '''H 3 * * 5 % MAVEN_PROFILE_NAME=oke-weekly-sequential;CLUSTER_NAME=seqweek;PARALLEL_RUN=false
66
H 18 * * 0-4 % MAVEN_PROFILE_NAME=oke-sequential;CLUSTER_NAME=seqone;PARALLEL_RUN=false
77
H 12 * * 0-4 % MAVEN_PROFILE_NAME=oke-parallel;CLUSTER_NAME=parone;PARALLEL_RUN=true'''
88

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import oracle.weblogic.kubernetes.logging.LoggingFacade;
4545
import oracle.weblogic.kubernetes.utils.ExecResult;
4646
import oracle.weblogic.kubernetes.utils.OracleHttpClient;
47+
import org.junit.jupiter.api.AfterAll;
4748
import org.junit.jupiter.api.BeforeAll;
4849
import org.junit.jupiter.api.BeforeEach;
4950
import org.junit.jupiter.api.DisplayName;
@@ -67,6 +68,7 @@
6768
import static oracle.weblogic.kubernetes.actions.TestActions.createDomainCustomResource;
6869
import static oracle.weblogic.kubernetes.actions.TestActions.getServiceNodePort;
6970
import static oracle.weblogic.kubernetes.actions.TestActions.listIngresses;
71+
import static oracle.weblogic.kubernetes.actions.TestActions.uninstallNginx;
7072
import static oracle.weblogic.kubernetes.assertions.TestAssertions.domainExists;
7173
import static oracle.weblogic.kubernetes.utils.ApplicationUtils.callWebAppAndWaitTillReady;
7274
import static oracle.weblogic.kubernetes.utils.ApplicationUtils.checkAppIsActive;
@@ -224,6 +226,17 @@ public void beforeEach() {
224226
}
225227
}
226228

229+
@AfterAll
230+
public void tearDownAll() {
231+
232+
if (nginxHelmParams != null && OKE_CLUSTER) {
233+
assertThat(uninstallNginx(nginxHelmParams.getHelmParams()))
234+
.as("Test uninstallNginx returns true")
235+
.withFailMessage("uninstallNginx() did not return true")
236+
.isTrue();
237+
}
238+
}
239+
227240
private static void updatePropertyFile() {
228241
//create a temporary directory to copy and update the properties file
229242
Path target = Paths.get(PROPS_TEMP_DIR);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
@DisplayName("Test to a create MII domain and test autoscaling using HPA and"
114114
+ "custom metrics provided via use of monitoring exporter and prometheus and prometheus adapter")
115115
@IntegrationTest
116-
@Tag("oke-sequential")
116+
@Tag("oke-weekly-sequential")
117117
@Tag("kind-parallel")
118118
public class ItHorizontalPodAutoscalerCustomMetrics {
119119
private static final String MONEXP_MODEL_FILE = "model.monexp.custommetrics.yaml";

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import static oracle.weblogic.kubernetes.actions.TestActions.deletePersistentVolumeClaim;
5353
import static oracle.weblogic.kubernetes.actions.TestActions.getServiceNodePort;
5454
import static oracle.weblogic.kubernetes.actions.TestActions.listIngresses;
55+
import static oracle.weblogic.kubernetes.actions.TestActions.uninstallNginx;
5556
import static oracle.weblogic.kubernetes.utils.CommonLBTestUtils.buildAndDeployClusterviewApp;
5657
import static oracle.weblogic.kubernetes.utils.CommonLBTestUtils.checkIngressReady;
5758
import static oracle.weblogic.kubernetes.utils.CommonLBTestUtils.createMultipleDomainsSharingPVUsingWlstAndVerify;
@@ -266,6 +267,12 @@ public void tearDownAll() throws ApiException {
266267
deletePersistentVolume(pvPvcNamePair.get(0));
267268
}
268269
}
270+
if (nginxHelmParams != null && OKE_CLUSTER) {
271+
assertThat(uninstallNginx(nginxHelmParams.getHelmParams()))
272+
.as("Test uninstallNginx returns true")
273+
.withFailMessage("uninstallNginx() did not return true")
274+
.isTrue();
275+
}
269276
}
270277

271278
private static void createCertKeyFiles(String cn) {

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import static oracle.weblogic.kubernetes.TestConstants.KIND_CLUSTER;
3333
import static oracle.weblogic.kubernetes.TestConstants.KUBERNETES_CLI;
3434
import static oracle.weblogic.kubernetes.TestConstants.OCNE;
35+
import static oracle.weblogic.kubernetes.TestConstants.OKE_CLUSTER;
3536
import static oracle.weblogic.kubernetes.TestConstants.RESULTS_TEMPFILE_DIR;
3637
import static oracle.weblogic.kubernetes.TestConstants.SKIP_CLEANUP;
3738
import static oracle.weblogic.kubernetes.TestConstants.TRAEFIK_INGRESS_HTTPS_HOSTPORT;
@@ -43,6 +44,7 @@
4344
import static oracle.weblogic.kubernetes.actions.TestActions.deletePersistentVolume;
4445
import static oracle.weblogic.kubernetes.actions.TestActions.deletePersistentVolumeClaim;
4546
import static oracle.weblogic.kubernetes.actions.TestActions.getServiceNodePort;
47+
import static oracle.weblogic.kubernetes.actions.TestActions.uninstallTraefik;
4648
import static oracle.weblogic.kubernetes.utils.CommonLBTestUtils.buildAndDeployClusterviewApp;
4749
import static oracle.weblogic.kubernetes.utils.CommonLBTestUtils.createMultipleDomainsSharingPVUsingWlstAndVerify;
4850
import static oracle.weblogic.kubernetes.utils.CommonLBTestUtils.verifyAdminServerAccess;
@@ -53,6 +55,7 @@
5355
import static oracle.weblogic.kubernetes.utils.OperatorUtils.installAndVerifyOperator;
5456
import static oracle.weblogic.kubernetes.utils.SecretUtils.createSecretWithTLSCertKey;
5557
import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger;
58+
import static org.assertj.core.api.Assertions.assertThat;
5659
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
5760
import static org.junit.jupiter.api.Assertions.assertEquals;
5861
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -65,7 +68,7 @@
6568
@IntegrationTest
6669
@Tag("olcne-mrg")
6770
@Tag("kind-parallel")
68-
@Tag("oke-sequential")
71+
@Tag("oke-weekly-sequential")
6972
class ItLBTwoDomainsTraefik {
7073

7174
private static final int numberOfDomains = 2;
@@ -219,6 +222,13 @@ public void tearDownAll() throws ApiException {
219222
deletePersistentVolume(pvPvcNamePair.get(0));
220223
}
221224
}
225+
if (traefikHelmParams != null && OKE_CLUSTER) {
226+
227+
assertThat(uninstallTraefik(traefikHelmParams))
228+
.as("Test uninstallTraefik returns true")
229+
.withFailMessage("uninstallTraefik did not return true")
230+
.isTrue();
231+
}
222232
}
223233

224234
private static void createCertKeyFiles(String cn) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
+ "MonitoringExporter Side Car via Prometheus and Grafana")
102102
@IntegrationTest
103103
@Tag("olcne-mrg")
104-
@Tag("oke-sequential")
104+
@Tag("oke-weekly-sequential")
105105
@Tag("kind-parallel")
106106
@Tag("okd-wls-mrg")
107107
class ItMonitoringExporterSideCar {

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
import static oracle.weblogic.kubernetes.actions.TestActions.getServicePort;
6363
import static oracle.weblogic.kubernetes.actions.TestActions.installWlsRemoteConsole;
6464
import static oracle.weblogic.kubernetes.actions.TestActions.listIngresses;
65+
import static oracle.weblogic.kubernetes.actions.TestActions.uninstallNginx;
66+
import static oracle.weblogic.kubernetes.actions.TestActions.uninstallTraefik;
6567
import static oracle.weblogic.kubernetes.actions.impl.Service.getServiceNodePort;
6668
import static oracle.weblogic.kubernetes.utils.ApplicationUtils.callWebAppAndWaitTillReady;
6769
import static oracle.weblogic.kubernetes.utils.ApplicationUtils.callWebAppAndWaitTillReturnedCode;
@@ -96,7 +98,7 @@
9698
@DisabledOnSlimImage
9799
@Tag("olcne-mrg")
98100
@Tag("kind-parallel")
99-
@Tag("oke-parallel")
101+
@Tag("oke-weekly-sequential")
100102
class ItRemoteConsole {
101103

102104
private static String domainNamespace = null;
@@ -311,6 +313,19 @@ public void tearDownAll() {
311313
if (!SKIP_CLEANUP) {
312314
assertTrue(shutdownWlsRemoteConsole(), "Remote Console shutdown failed");
313315
}
316+
if (traefikHelmParams != null && OKE_CLUSTER) {
317+
318+
assertThat(uninstallTraefik(traefikHelmParams))
319+
.as("Test uninstallTraefik returns true")
320+
.withFailMessage("uninstallTraefik did not return true")
321+
.isTrue();
322+
}
323+
if (nginxHelmParams != null && OKE_CLUSTER) {
324+
assertThat(uninstallNginx(nginxHelmParams.getHelmParams()))
325+
.as("Test uninstallNginx returns true")
326+
.withFailMessage("uninstallNginx() did not return true")
327+
.isTrue();
328+
}
314329
}
315330

316331
private static void createTraefikIngressRoutingRules(String domainNamespace) {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -784,12 +784,12 @@ public static void verifyClusterLoadbalancing(String domainUid,
784784
+ "&password=" + ADMIN_PASSWORD_DEFAULT
785785
+ ((host != null) && host.contains(":") ? "&ipv6=true" : "&ipv6=false") + "\"";
786786
if (hostRouting) {
787-
curlRequest = OKE_CLUSTER_PRIVATEIP ? String.format("curl -g --show-error -ks --noproxy '*' "
787+
curlRequest = OKE_CLUSTER_PRIVATEIP ? String.format("curl -g --show-error -ks --noproxy '*' -v "
788788
+ "-H 'host: %s' %s://%s/" + uri, ingressHostName, protocol, host)
789789
: String.format("curl -g --show-error -ks --noproxy '*' "
790790
+ "-H 'host: %s' %s://%s/" + uri, ingressHostName, protocol, getHostAndPort(host, lbPort));
791791
} else {
792-
curlRequest = OKE_CLUSTER_PRIVATEIP ? String.format("curl -g --show-error -ks --noproxy '*' "
792+
curlRequest = OKE_CLUSTER_PRIVATEIP ? String.format("curl -g --show-error -ks --noproxy '*' -v "
793793
+ "%s://%s" + locationString + "/" + uri, protocol, host)
794794
: String.format("curl -g --show-error -ks --noproxy '*' "
795795
+ "%s://%s" + locationString + "/" + uri, protocol, getHostAndPort(host, lbPort));

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

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -386,10 +386,29 @@ public static String getLoadBalancerIP(String namespace, String lbName, boolean
386386
return null;
387387
}
388388

389-
private static boolean checkLoadBalancerHealthy(String namespace, String lbServiceName) {
389+
/**
390+
* Update NO_PROXY var with Load Balancer IP address.
391+
*
392+
* @param newEntry value to add for NO_PROXY
393+
* @throws Exception throws exception if failed to update
394+
*/
395+
public static void addNoProxyEntry(String newEntry) {
396+
String currentNoProxy = System.getenv("NO_PROXY");
397+
getLogger().info("Current NO_PROXY value is :" + currentNoProxy);
398+
399+
String updatedNoProxy = (currentNoProxy == null || currentNoProxy.isEmpty())
400+
? newEntry
401+
: currentNoProxy + ",10.196.0.0/24,10.196.1.0/24," + newEntry;
402+
403+
System.setProperty("NO_PROXY", updatedNoProxy);
404+
getLogger().info("Updated NO_PROXY: " + System.getProperty("NO_PROXY"));
405+
}
406+
407+
private static synchronized boolean checkLoadBalancerHealthy(String namespace, String lbServiceName) {
390408

391409
String lbPublicIP = assertDoesNotThrow(() -> getLoadBalancerIP(namespace, lbServiceName));
392410
InitializationTasks.registerLoadBalancerExternalIP(lbPublicIP);
411+
assertDoesNotThrow(() -> addNoProxyEntry(lbPublicIP));
393412
LoggingFacade logger = getLogger();
394413
String testcompartmentid = System.getProperty("wko.it.oci.compartment.ocid");
395414
logger.info("wko.it.oci.compartment.ocid property " + testcompartmentid);
@@ -453,9 +472,21 @@ private static boolean checkLoadBalancerHealthy(String namespace, String lbServi
453472
if (result == null || result.exitValue() != 0 || result.stdout() == null) {
454473
return false;
455474
}
475+
return (result.stdout().contains("OK") && isBackendHealthy(result.stdout()));
476+
}
456477

457-
return result.stdout().contains("OK");
458-
478+
private static boolean isBackendHealthy(String jsonResponse) {
479+
LoggingFacade logger = getLogger();
480+
// Check for any non-empty backend set names indicating a failure
481+
if (jsonResponse.contains("\"critical-state-backend-set-names\": []")
482+
&& jsonResponse.contains("\"unknown-state-backend-set-names\": []")
483+
&& jsonResponse.contains("\"warning-state-backend-set-names\": []")) {
484+
logger.info("All backends are healthy.");
485+
return true; // Healthy
486+
} else {
487+
logger.severe("Failure: There are issues with the backend(s)." + jsonResponse);
488+
return false; // Unhealthy
489+
}
459490
}
460491

461492
@Nullable
@@ -675,7 +706,8 @@ public static List<String> createIngressForDomainAndVerify(String domainUid,
675706
if (host.contains(":")) {
676707
host = "[" + host + "]";
677708
}
678-
String curlCmd = "curl -g --silent --show-error --noproxy '*' -H 'host: " + ingressHost
709+
String curlCmd = "curl -g --silent --show-error --noproxy '*' "
710+
+ " -v --max-time 60 -H 'host: " + ingressHost
679711
+ "' http://" + getHostAndPort(host, nodeport)
680712
+ "/weblogic/ready --write-out %{http_code} -o /dev/null";
681713

@@ -803,7 +835,8 @@ public static List<String> createTraefikIngressForDomainAndVerify(
803835
if (host.contains(":")) {
804836
host = "[" + host + "]";
805837
}
806-
String curlCmd = "curl -g --silent --show-error --noproxy '*' -H 'host: " + ingressHost
838+
String curlCmd = "curl -g --silent --show-error --noproxy '*' "
839+
+ " -v --max-time 60 -H 'host: " + ingressHost
807840
+ "' http://" + host + ":" + nodeport
808841
+ "/weblogic/ready --write-out %{http_code} -o /dev/null";
809842

0 commit comments

Comments
 (0)