Skip to content

Commit 1e82f4d

Browse files
authored
add integration tests for NAMESPACE_WAITING_STARTED and NAMESPACE_WATCHING_STOPPED events (#2322)
* add checks for StopManagingNamespace event * add parameterized test for enableClusterRoleBinding
1 parent a5c2c30 commit 1e82f4d

File tree

8 files changed

+478
-221
lines changed

8 files changed

+478
-221
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public static void initAll(@Namespaces(5) List<String> namespaces) {
125125

126126
opHelmParams = installAndVerifyOperator(opNamespace,
127127
domain1Namespace, domain2Namespace,
128-
domain3Namespace, domain4Namespace);
128+
domain3Namespace, domain4Namespace).getHelmParams();
129129

130130
// operator chart values to override
131131
OperatorParams opParams = new OperatorParams()

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

Lines changed: 243 additions & 64 deletions
Large diffs are not rendered by default.

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ public void testNameSpaceWithOperatorRbacFalse() {
344344
assertDoesNotThrow(() -> createNamespace(manageByLabelDomainNS));
345345
opHelmParams[2] = installAndVerifyOperator(OPERATOR_RELEASE_NAME,
346346
opNamespaces[3], "LabelSelector",
347-
"mytest4", false);
347+
"mytest4", false).getHelmParams();
348348
Map<String, String> labels = new HashMap<>();
349349
labels.put("mytest4", manageByLabelDomainUid);
350350
assertDoesNotThrow(() -> addLabelsToNamespace(manageByLabelDomainNS, labels));
@@ -408,7 +408,7 @@ private HelmParams installAndVerifyOperatorCanManageDomainBySelector(Map<String,
408408
// domainNamespaces value expected to be ignored
409409
HelmParams opHelmParam = installAndVerifyOperator(OPERATOR_RELEASE_NAME,
410410
opNamespace, selector,
411-
selectorValue, true, domainNamespacesValue);
411+
selectorValue, true, domainNamespacesValue).getHelmParams();
412412
managedDomains.forEach((domainNS, domainUid) -> {
413413
logger.info("Installing and verifying domain {0} in namespace {1}", domainUid, domainNS);
414414
createSecrets(domainNS);
@@ -474,7 +474,7 @@ private void checkSecondOperatorFailedToShareSameNS(String domainNamespace) {
474474
try {
475475
HelmParams opHelmParams2 = installAndVerifyOperator(OPERATOR_RELEASE_NAME,
476476
opNamespaces[2], "List",
477-
null, true, domainNamespace);
477+
null, true, domainNamespace).getHelmParams();
478478
assertNull(opHelmParams2, "Operator helm chart sharing same NS with other operator did not fail");
479479
} catch (org.opentest4j.AssertionFailedError ex) {
480480
//expecting to fail

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

Lines changed: 123 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,8 @@ public static void initAll(@Namespaces(7) List<String> namespaces) {
262262
nginxNamespace = namespaces.get(6);
263263

264264
// install and verify operator
265-
operatorHelmParams = installAndVerifyOperator(opNamespaces.get(0), domainNamespaces.get(0), defaultNamespace);
265+
operatorHelmParams =
266+
installAndVerifyOperator(opNamespaces.get(0), domainNamespaces.get(0), defaultNamespace).getHelmParams();
266267
installAndVerifyOperator(opNamespaces.get(1), domainNamespaces.get(1));
267268

268269
// initiate domainUid list for two domains
@@ -783,141 +784,145 @@ public void testTraefikTLSPathRoutingAcrossDomains() {
783784
*/
784785
@AfterAll
785786
public void tearDownAll() {
786-
// uninstall Traefik loadbalancer
787-
if (traefikHelmParams != null) {
788-
assertThat(uninstallTraefik(traefikHelmParams))
789-
.as("Test uninstallTraefik returns true")
790-
.withFailMessage("uninstallTraefik() did not return true")
791-
.isTrue();
792-
}
793-
794-
// uninstall Voyager
795-
if (voyagerHelmParams != null) {
796-
assertThat(uninstallVoyager(voyagerHelmParams))
797-
.as("Test uninstallVoyager returns true")
798-
.withFailMessage("uninstallVoyager() did not return true")
799-
.isTrue();
800-
}
787+
if (System.getenv("SKIP_CLEANUP") == null
788+
|| (System.getenv("SKIP_CLEANUP") != null
789+
&& System.getenv("SKIP_CLEANUP").equalsIgnoreCase("false"))) {
790+
// uninstall Traefik loadbalancer
791+
if (traefikHelmParams != null) {
792+
assertThat(uninstallTraefik(traefikHelmParams))
793+
.as("Test uninstallTraefik returns true")
794+
.withFailMessage("uninstallTraefik() did not return true")
795+
.isTrue();
796+
}
801797

802-
// uninstall Apache
803-
if (apacheHelmParams1 != null) {
804-
assertThat(uninstallApache(apacheHelmParams1))
805-
.as("Test whether uninstallApache in domain1Namespace returns true")
806-
.withFailMessage("uninstallApache() in domain1Namespace did not return true")
807-
.isTrue();
808-
}
798+
// uninstall Voyager
799+
if (voyagerHelmParams != null) {
800+
assertThat(uninstallVoyager(voyagerHelmParams))
801+
.as("Test uninstallVoyager returns true")
802+
.withFailMessage("uninstallVoyager() did not return true")
803+
.isTrue();
804+
}
809805

810-
if (apacheHelmParams2 != null) {
811-
assertThat(uninstallApache(apacheHelmParams2))
812-
.as("Test whether uninstallApache in default namespace returns true")
813-
.withFailMessage("uninstallApache() in default namespace did not return true")
814-
.isTrue();
815-
}
806+
// uninstall Apache
807+
if (apacheHelmParams1 != null) {
808+
assertThat(uninstallApache(apacheHelmParams1))
809+
.as("Test whether uninstallApache in domain1Namespace returns true")
810+
.withFailMessage("uninstallApache() in domain1Namespace did not return true")
811+
.isTrue();
812+
}
816813

817-
// uninstall NGINX
818-
if (nginxHelmParams != null) {
819-
assertThat(uninstallNginx(nginxHelmParams))
820-
.as("Test uninstallNginx returns true")
821-
.withFailMessage("uninstallNginx() did not return true")
822-
.isTrue();
823-
}
814+
if (apacheHelmParams2 != null) {
815+
assertThat(uninstallApache(apacheHelmParams2))
816+
.as("Test whether uninstallApache in default namespace returns true")
817+
.withFailMessage("uninstallApache() in default namespace did not return true")
818+
.isTrue();
819+
}
824820

825-
// uninstall operator which manages default namespace
826-
logger.info("uninstalling operator which manages default namespace");
827-
if (operatorHelmParams != null) {
828-
assertThat(uninstallOperator(operatorHelmParams))
829-
.as("Test uninstallOperator returns true")
830-
.withFailMessage("uninstallOperator() did not return true")
831-
.isTrue();
832-
}
821+
// uninstall NGINX
822+
if (nginxHelmParams != null) {
823+
assertThat(uninstallNginx(nginxHelmParams))
824+
.as("Test uninstallNginx returns true")
825+
.withFailMessage("uninstallNginx() did not return true")
826+
.isTrue();
827+
}
833828

834-
for (int i = 1; i <= numberOfDomains; i++) {
835-
String domainUid = domainUids.get(i - 1);
836-
// delete domain
837-
logger.info("deleting domain custom resource {0}", domainUid);
838-
assertTrue(deleteDomainCustomResource(domainUid, defaultNamespace));
829+
// uninstall operator which manages default namespace
830+
logger.info("uninstalling operator which manages default namespace");
831+
if (operatorHelmParams != null) {
832+
assertThat(uninstallOperator(operatorHelmParams))
833+
.as("Test uninstallOperator returns true")
834+
.withFailMessage("uninstallOperator() did not return true")
835+
.isTrue();
836+
}
839837

840-
// wait until domain was deleted
841-
withStandardRetryPolicy
842-
.conditionEvaluationListener(
843-
condition -> logger.info("Waiting for domain {0} to be created in namespace {1} "
844-
+ "(elapsed time {2}ms, remaining time {3}ms)",
845-
domainUid,
846-
defaultNamespace,
847-
condition.getElapsedTimeInMS(),
848-
condition.getRemainingTimeInMS()))
849-
.until(domainDoesNotExist(domainUid, DOMAIN_VERSION, defaultNamespace));
838+
for (int i = 1; i <= numberOfDomains; i++) {
839+
String domainUid = domainUids.get(i - 1);
840+
// delete domain
841+
logger.info("deleting domain custom resource {0}", domainUid);
842+
assertTrue(deleteDomainCustomResource(domainUid, defaultNamespace));
843+
844+
// wait until domain was deleted
845+
withStandardRetryPolicy
846+
.conditionEvaluationListener(
847+
condition -> logger.info("Waiting for domain {0} to be created in namespace {1} "
848+
+ "(elapsed time {2}ms, remaining time {3}ms)",
849+
domainUid,
850+
defaultNamespace,
851+
condition.getElapsedTimeInMS(),
852+
condition.getRemainingTimeInMS()))
853+
.until(domainDoesNotExist(domainUid, DOMAIN_VERSION, defaultNamespace));
854+
855+
// delete configMap in default namespace
856+
logger.info("deleting configMap {0}", "create-domain" + i + "-scripts-cm");
857+
assertTrue(deleteConfigMap("create-domain" + i + "-scripts-cm", defaultNamespace));
858+
}
850859

851-
// delete configMap in default namespace
852-
logger.info("deleting configMap {0}", "create-domain" + i + "-scripts-cm");
853-
assertTrue(deleteConfigMap("create-domain" + i + "-scripts-cm", defaultNamespace));
854-
}
860+
// delete configMap weblogic-scripts-cm in default namespace
861+
logger.info("deleting configMap weblogic-scripts-cm");
862+
assertTrue(deleteConfigMap("weblogic-scripts-cm", defaultNamespace));
855863

856-
// delete configMap weblogic-scripts-cm in default namespace
857-
logger.info("deleting configMap weblogic-scripts-cm");
858-
assertTrue(deleteConfigMap("weblogic-scripts-cm", defaultNamespace));
864+
// Delete jobs
865+
try {
866+
for (var item : listJobs(defaultNamespace).getItems()) {
867+
if (item.getMetadata() != null) {
868+
deleteJob(item.getMetadata().getName(), defaultNamespace);
869+
}
870+
}
859871

860-
// Delete jobs
861-
try {
862-
for (var item :listJobs(defaultNamespace).getItems()) {
863-
if (item.getMetadata() != null) {
864-
deleteJob(item.getMetadata().getName(), defaultNamespace);
872+
for (var item : listPods(defaultNamespace, null).getItems()) {
873+
if (item.getMetadata() != null) {
874+
deletePod(item.getMetadata().getName(), defaultNamespace);
875+
}
865876
}
877+
} catch (ApiException ex) {
878+
logger.warning(ex.getMessage());
879+
logger.warning("Failed to delete jobs");
866880
}
867881

868-
for (var item : listPods(defaultNamespace, null).getItems()) {
869-
if (item.getMetadata() != null) {
870-
deletePod(item.getMetadata().getName(), defaultNamespace);
882+
// delete pv and pvc in default namespace
883+
logger.info("deleting pvc {0}", defaultSharingPvcName);
884+
assertTrue(deletePersistentVolumeClaim(defaultSharingPvcName, defaultNamespace));
885+
logger.info("deleting pv {0}", defaultSharingPvName);
886+
assertTrue(deletePersistentVolume(defaultSharingPvName));
887+
logger.info("deleting pvc {0}", apachePvcName);
888+
assertTrue(deletePersistentVolumeClaim(apachePvcName, defaultNamespace));
889+
logger.info("deleting pv {0}", apachePvName);
890+
assertTrue(deletePersistentVolume(apachePvName));
891+
892+
// delete ingressroute in namespace
893+
if (dstFile != null) {
894+
String command = "kubectl delete" + " -f " + dstFile;
895+
896+
logger.info("Running {0}", command);
897+
try {
898+
ExecResult result = ExecCommand.exec(command, true);
899+
String response = result.stdout().trim();
900+
logger.info("exitCode: {0}, \nstdout: {1}, \nstderr: {2}",
901+
result.exitValue(), response, result.stderr());
902+
assertEquals(0, result.exitValue(), "Command didn't succeed");
903+
} catch (IOException | InterruptedException ex) {
904+
logger.severe(ex.getMessage());
871905
}
872906
}
873-
} catch (ApiException ex) {
874-
logger.warning(ex.getMessage());
875-
logger.warning("Failed to delete jobs");
876-
}
877907

878-
// delete pv and pvc in default namespace
879-
logger.info("deleting pvc {0}", defaultSharingPvcName);
880-
assertTrue(deletePersistentVolumeClaim(defaultSharingPvcName, defaultNamespace));
881-
logger.info("deleting pv {0}", defaultSharingPvName);
882-
assertTrue(deletePersistentVolume(defaultSharingPvName));
883-
logger.info("deleting pvc {0}", apachePvcName);
884-
assertTrue(deletePersistentVolumeClaim(apachePvcName, defaultNamespace));
885-
logger.info("deleting pv {0}", apachePvName);
886-
assertTrue(deletePersistentVolume(apachePvName));
887-
888-
// delete ingressroute in namespace
889-
if (dstFile != null) {
890-
String command = "kubectl delete" + " -f " + dstFile;
891-
892-
logger.info("Running {0}", command);
908+
// delete ingress in default namespace
893909
try {
894-
ExecResult result = ExecCommand.exec(command, true);
895-
String response = result.stdout().trim();
896-
logger.info("exitCode: {0}, \nstdout: {1}, \nstderr: {2}",
897-
result.exitValue(), response, result.stderr());
898-
assertEquals(0, result.exitValue(), "Command didn't succeed");
899-
} catch (IOException | InterruptedException ex) {
900-
logger.severe(ex.getMessage());
901-
}
902-
}
903-
904-
// delete ingress in default namespace
905-
try {
906-
for (String ingressname : listIngresses(defaultNamespace)) {
907-
logger.info("deleting ingress {0}", ingressname);
908-
deleteIngress(ingressname, defaultNamespace);
910+
for (String ingressname : listIngresses(defaultNamespace)) {
911+
logger.info("deleting ingress {0}", ingressname);
912+
deleteIngress(ingressname, defaultNamespace);
913+
}
914+
} catch (ApiException apiEx) {
915+
logger.severe(apiEx.getResponseBody());
909916
}
910-
} catch (ApiException apiEx) {
911-
logger.severe(apiEx.getResponseBody());
912-
}
913917

914-
// delete secret in default namespace
915-
for (V1Secret secret : listSecrets(defaultNamespace).getItems()) {
916-
if (secret.getMetadata() != null) {
917-
String secretName = secret.getMetadata().getName();
918-
if (secretName != null && !secretName.startsWith("default")) {
919-
logger.info("deleting secret {0}", secretName);
920-
assertTrue(deleteSecret(secretName, defaultNamespace));
918+
// delete secret in default namespace
919+
for (V1Secret secret : listSecrets(defaultNamespace).getItems()) {
920+
if (secret.getMetadata() != null) {
921+
String secretName = secret.getMetadata().getName();
922+
if (secretName != null && !secretName.startsWith("default")) {
923+
logger.info("deleting secret {0}", secretName);
924+
assertTrue(deleteSecret(secretName, defaultNamespace));
925+
}
921926
}
922927
}
923928
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ public void tearDownAll() {
197197
public void testDeleteOperatorButNotDomain() {
198198
// install and verify operator
199199
logger.info("Installing and verifying operator");
200-
HelmParams opHelmParams = installAndVerifyOperator(opNamespace, domain1Namespace);
200+
HelmParams opHelmParams = installAndVerifyOperator(opNamespace, domain1Namespace).getHelmParams();
201201
if (!isDomain1Running) {
202202
logger.info("Installing and verifying domain");
203203
assertTrue(createVerifyDomain(domain1Namespace, domain1Uid),
@@ -293,7 +293,7 @@ public void testCreateDeleteCreateOperatorButNotDomain() {
293293
// install operator
294294

295295
HelmParams opHelmParams = installAndVerifyOperator(opNamespace, opServiceAccount, true,
296-
0, op1HelmParams, domain1Namespace);
296+
0, op1HelmParams, domain1Namespace).getHelmParams();
297297
assertNotNull(opHelmParams, "Can't install operator");
298298

299299
if (!isDomain1Running) {
@@ -356,7 +356,7 @@ public void testAddRemoveDomainNameSpacesOnOperator() {
356356
// install operator
357357
String opServiceAccount = op2Namespace + "-sa";
358358
HelmParams opHelmParams = installAndVerifyOperator(op2Namespace, opServiceAccount, true,
359-
0, op1HelmParams, domain2Namespace);
359+
0, op1HelmParams, domain2Namespace).getHelmParams();
360360
assertNotNull(opHelmParams, "Can't install operator");
361361
int externalRestHttpsPort = getServiceNodePort(op2Namespace, "external-weblogic-operator-svc");
362362
assertTrue(externalRestHttpsPort != -1,
@@ -457,7 +457,7 @@ public void testAddRemoveDomainNameSpacesOnOperator() {
457457
@Test
458458
@DisplayName("Negative test to install two operators sharing the same namespace")
459459
public void testCreateSecondOperatorUsingSameOperatorNsNegativeInstall() {
460-
HelmParams opHelmParams = installAndVerifyOperator(opNamespace, domain1Namespace);
460+
HelmParams opHelmParams = installAndVerifyOperator(opNamespace, domain1Namespace).getHelmParams();
461461
if (!isDomain1Running) {
462462
logger.info("Installing and verifying domain");
463463
assertTrue(createVerifyDomain(domain1Namespace, domain1Uid),
@@ -501,7 +501,7 @@ public void testCreateSecondOperatorUsingSameOperatorNsNegativeInstall() {
501501
public void testSecondOpSharingSameDomainNamespacesNegativeInstall() {
502502
// install and verify operator1
503503
logger.info("Installing and verifying operator1");
504-
HelmParams opHelmParams = installAndVerifyOperator(opNamespace, domain2Namespace);
504+
HelmParams opHelmParams = installAndVerifyOperator(opNamespace, domain2Namespace).getHelmParams();
505505
if (!isDomain2Running) {
506506
logger.info("Installing and verifying domain");
507507
assertTrue(createVerifyDomain(domain2Namespace, domain2Uid),

integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/OperatorParams.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,14 @@ public Map<String, Object> getValues() {
173173
values.put(DOMAIN_NAMESPACES, domainNamespaces);
174174
values.put(IMAGE, image);
175175
values.put(SERVICE_ACCOUNT, serviceAccount);
176+
176177
values.put(EXTERNAL_REST_ENABLED, Boolean.valueOf(externalRestEnabled));
178+
values.put(EXTERNAL_REST_IDENTITY_SECRET, externalRestIdentitySecret);
179+
177180
if (externalRestHttpsPort >= 0) {
178181
values.put(EXTERNAL_REST_HTTPS_PORT, Integer.valueOf(externalRestHttpsPort));
179182
}
180-
values.put(EXTERNAL_REST_IDENTITY_SECRET, externalRestIdentitySecret);
183+
181184
values.put(IMAGE_PULL_POLICY, imagePullPolicy);
182185
values.put(IMAGE_PULL_SECRETS, imagePullSecrets);
183186
values.put(ELK_INTEGRATION_ENABLED, Boolean.valueOf(elkIntegrationEnabled));

0 commit comments

Comments
 (0)