Skip to content

Commit f996070

Browse files
committed
intial change for voyager-java-integ-test
1 parent 26aeef7 commit f996070

File tree

4 files changed

+130
-4
lines changed

4 files changed

+130
-4
lines changed

integration-tests/src/test/java/oracle/kubernetes/operator/ITOperator.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,13 @@ public class ITOperator extends BaseTest {
5555
private static boolean SMOKETEST;
5656
private static boolean JENKINS;
5757
private static boolean INGRESSPERDOMAIN = true;
58+
private static boolean VOYAGER;
5859

5960
// Set QUICKTEST env var to true to run a small subset of tests.
6061
// Set SMOKETEST env var to true to run an even smaller subset
6162
// of tests, plus leave domain1 up and running when the test completes.
6263
// set INGRESSPERDOMAIN to false to create LB's ingress by kubectl yaml file
64+
// set VOYAGER to true to use it as loadBalancer
6365
static {
6466
QUICKTEST =
6567
System.getenv("QUICKTEST") != null && System.getenv("QUICKTEST").equalsIgnoreCase("true");
@@ -72,6 +74,7 @@ public class ITOperator extends BaseTest {
7274
if (System.getenv("INGRESSPERDOMAIN") != null) {
7375
INGRESSPERDOMAIN = new Boolean(System.getenv("INGRESSPERDOMAIN")).booleanValue();
7476
}
77+
VOYAGER = System.getenv("VOYAGER") != null && System.getenv("VOYAGER").equalsIgnoreCase("true");
7578
}
7679

7780
/**
@@ -236,6 +239,10 @@ public void testTwoDomainsManagedByTwoOperators() throws Exception {
236239
wlstDomainMap.put("domainUID", "domain1onpvwlst");
237240
wlstDomainMap.put("adminNodePort", new Integer("30702"));
238241
wlstDomainMap.put("t3ChannelPort", new Integer("30031"));
242+
if (VOYAGER) {
243+
wlstDomainMap.put("loadBalancer", "VOYAGER");
244+
logger.info("domain1onpvwlst loadBalancer is set to: " + wlstDomainMap.get("loadBalancer"));
245+
}
239246
if (!INGRESSPERDOMAIN) {
240247
wlstDomainMap.put("ingressPerDomain", new Boolean("false"));
241248
logger.info(
@@ -257,6 +264,15 @@ public void testTwoDomainsManagedByTwoOperators() throws Exception {
257264
wdtDomainMap.put("adminNodePort", new Integer("30703"));
258265
wdtDomainMap.put("t3ChannelPort", new Integer("30041"));
259266
// wdtDomainMap.put("clusterType", "Configured");
267+
if (VOYAGER) {
268+
wdtDomainMap.put("loadBalancer", "VOYAGER");
269+
wdtDomainMap.put("loadBalancerWebPort", new Integer("30306"));
270+
logger.info(
271+
"domain2onpvwdt loadBalancer is set to: "
272+
+ wdtDomainMap.get("loadBalancer")
273+
+ " with loadBalancerWebPort:"
274+
+ wdtDomainMap.get("loadBalancerWebPort"));
275+
}
260276
if (!INGRESSPERDOMAIN) {
261277
wdtDomainMap.put("ingressPerDomain", new Boolean("false"));
262278
logger.info(

integration-tests/src/test/java/oracle/kubernetes/operator/utils/Domain.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -810,15 +810,20 @@ private void createLoadBalancer() throws Exception {
810810
lbMap.put("serviceName", domainUid + "-cluster-" + domainMap.get("clusterName"));
811811
lbMap.put("loadBalancer", domainMap.getOrDefault("loadBalancer", loadBalancer));
812812
lbMap.put("ingressPerDomain", domainMap.getOrDefault("ingressPerDomain", ingressPerDomain));
813+
lbMap.put(
814+
"loadBalancerWebPort", domainMap.getOrDefault("loadBalancerWebPort", loadBalancerWebPort));
813815
lbMap.put("clusterName", domainMap.get("clusterName"));
814816

815817
loadBalancer = (String) lbMap.get("loadBalancer");
818+
loadBalancerWebPort = ((Integer) lbMap.get("loadBalancerWebPort")).intValue();
816819
ingressPerDomain = ((Boolean) lbMap.get("ingressPerDomain")).booleanValue();
817820
logger.info(
818821
"For this domain loadBalancer is: "
819822
+ loadBalancer
820823
+ " ingressPerDomain is: "
821-
+ ingressPerDomain);
824+
+ ingressPerDomain
825+
+ " loadBalancerWebPort is: "
826+
+ loadBalancerWebPort);
822827

823828
if (loadBalancer.equals("TRAEFIK") && !ingressPerDomain) {
824829
lbMap.put("name", "traefik-hostrouting-" + domainUid);
@@ -828,6 +833,10 @@ private void createLoadBalancer() throws Exception {
828833
lbMap.put("name", "traefik-ingress-" + domainUid);
829834
}
830835

836+
if (loadBalancer.equals("VOYAGER") && ingressPerDomain) {
837+
lbMap.put("name", "voyager-ingress-" + domainUid);
838+
}
839+
831840
if (loadBalancer.equals("APACHE")) {
832841
/* lbMap.put("loadBalancerAppPrepath", "/weblogic");
833842
lbMap.put("loadBalancerExposeAdminPort", new Boolean(true)); */
@@ -926,11 +935,11 @@ private void callWebAppAndCheckForServerNameInResponse(
926935
+ " \n "
927936
+ result.stdout());
928937
} else {
929-
logger.info("webapp invoked successfully");
938+
logger.info("webapp invoked successfully for curlCmd:" + curlCmd);
930939
}
931940
if (verifyLoadBalancing) {
932941
String response = result.stdout().trim();
933-
// logger.info("response "+ response);
942+
logger.info("response: " + response); // TODO remove later!
934943
for (String key : managedServers.keySet()) {
935944
if (response.contains(key)) {
936945
managedServers.put(key, new Boolean(true));
@@ -943,6 +952,7 @@ private void callWebAppAndCheckForServerNameInResponse(
943952
// error if any managedserver value is false
944953
if (verifyLoadBalancing) {
945954
for (Map.Entry<String, Boolean> entry : managedServers.entrySet()) {
955+
logger.info("Load balancer will try to reach server " + entry.getKey());
946956
if (!entry.getValue().booleanValue()) {
947957
throw new RuntimeException(
948958
"FAILURE: Load balancer can not reach server " + entry.getKey());

integration-tests/src/test/java/oracle/kubernetes/operator/utils/LoadBalancer.java

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,22 @@ public LoadBalancer(Map lbMap) throws Exception {
4242
createTraefikIngressPerDomain();
4343
}
4444
}
45+
46+
if (lbMap.get("loadBalancer").equals("VOYAGER")) {
47+
String cmdLb = "helm list voyager-operator | grep DEPLOYED";
48+
logger.info("Executing cmd " + cmdLb);
49+
ExecResult result = ExecCommand.exec(cmdLb);
50+
if (result.exitValue() != 0) {
51+
createVoyagerLoadBalancer();
52+
logger.info("Sleeping for 30 seconds to ensure voyager to be ready");
53+
Thread.sleep(30 * 1000);
54+
}
55+
56+
if (((Boolean) lbMap.get("ingressPerDomain")).booleanValue()) {
57+
logger.info("Is going to createVoyagerIngressPerDomain");
58+
createVoyagerIngressPerDomain();
59+
}
60+
}
4561
}
4662

4763
public void createTraefikLoadBalancer() throws Exception {
@@ -148,6 +164,90 @@ private void createTraefikIngress() throws Exception {
148164
logger.info("Command returned " + outputStr);
149165
}
150166

167+
public void createVoyagerLoadBalancer() throws Exception {
168+
169+
String cmd1 = "helm repo add appscode https://charts.appscode.com/stable/";
170+
logger.info("Executing Add Appscode Chart Repository cmd " + cmd1);
171+
172+
executeHelmCommand(cmd1);
173+
174+
String cmd2 = "helm repo update";
175+
logger.info("Executing Appscode Chart Repository upgrade cmd " + cmd2);
176+
177+
executeHelmCommand(cmd2);
178+
179+
String cmd3 =
180+
"helm install appscode/voyager --name voyager-operator --version 7.4.0 --namespace voyage "
181+
+ "--set cloudProvider=baremetal --set apiserver.enableValidatingWebhook=false";
182+
logger.info("Executing Install voyager operator cmd " + cmd3);
183+
184+
executeHelmCommand(cmd3);
185+
}
186+
187+
private void createVoyagerIngressPerDomain() throws Exception {
188+
upgradeVoyagerNamespace();
189+
logger.info("Sleeping for 20 seconds after upgradeVoyagerNamespace ");
190+
Thread.sleep(20 * 1000);
191+
createVoyagerIngress();
192+
logger.info("Sleeping for 20 seconds after createVoyagerIngress ");
193+
Thread.sleep(20 * 1000);
194+
}
195+
196+
private void upgradeVoyagerNamespace() throws Exception {
197+
198+
StringBuffer cmd = new StringBuffer("helm upgrade ");
199+
cmd.append("--reuse-values ")
200+
.append("--set ")
201+
.append("\"")
202+
.append("kubernetes.namespaces={voyager,")
203+
.append(lbMap.get("namespace"))
204+
.append("}")
205+
.append("\"")
206+
.append(" --version 7.4.0")
207+
.append(" --set cloudProvider=baremetal")
208+
.append(" --set apiserver.enableValidatingWebhook=false")
209+
.append(" voyager-operator")
210+
.append(" appscode/voyager");
211+
212+
logger.info(" upgradeVoyagerNamespace() Running " + cmd.toString());
213+
executeHelmCommand(cmd.toString());
214+
}
215+
216+
private void createVoyagerIngress() throws Exception {
217+
218+
String chartDir = BaseTest.getProjectRoot() + "/integration-tests/src/test/resources/charts";
219+
220+
StringBuffer cmd = new StringBuffer("cd ");
221+
cmd.append(chartDir).append(" && helm install ingress-per-domain ");
222+
cmd.append(" --name ")
223+
.append(lbMap.get("name"))
224+
.append(" --namespace ")
225+
.append(lbMap.get("namespace"))
226+
.append(" --set type=VOYAGER")
227+
.append(" --set ")
228+
.append("wlsDomain.domainUID=")
229+
.append(lbMap.get("domainUID"))
230+
.append(" --set ")
231+
.append("wlsDomain.clusterName=")
232+
.append(lbMap.get("clusterName"))
233+
.append(" --set ")
234+
.append("voyager.webPort=")
235+
.append(lbMap.get("loadBalancerWebPort"));
236+
237+
logger.info("createVoyagerIngress() Running " + cmd.toString());
238+
executeHelmCommand(cmd.toString());
239+
}
240+
241+
private void executeHelmCommand(String cmd) throws Exception {
242+
ExecResult result = ExecCommand.exec(cmd);
243+
if (result.exitValue() != 0) {
244+
logger.info("executeHelmCommand failed with " + cmd);
245+
reportHelmInstallFailure(cmd, result);
246+
}
247+
String outputStr = result.stdout().trim();
248+
logger.info("Command returned " + outputStr);
249+
}
250+
151251
private void reportHelmInstallFailure(String cmd, ExecResult result) throws Exception {
152252
throw new RuntimeException(getExecFailure(cmd, result));
153253
}

integration-tests/src/test/resources/charts/ingress-per-domain/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ voyager:
2424
# web port
2525
webPort: 30305
2626
# stats port
27-
statsPort: 30315
27+
#statsPort: 30315

0 commit comments

Comments
 (0)