Skip to content

Commit 09ddf1a

Browse files
committed
Create per-cluster Ingress following per-cluster Service
1 parent 411534b commit 09ddf1a

File tree

2 files changed

+60
-10
lines changed

2 files changed

+60
-10
lines changed

src/main/java/oracle/kubernetes/operator/Main.java

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,8 +1007,7 @@ private static Step checkServerServices(DomainPresenceInfo info, Step next) {
10071007
}
10081008
}
10091009

1010-
return new ManagedServerServicesStep(info, ssic,
1011-
IngressHelper.createClusterStep(next));
1010+
return new ManagedServerServicesStep(info, ssic, next);
10121011
}
10131012

10141013
private static class ManagedServerServicesStep extends Step {
@@ -1028,16 +1027,34 @@ public NextAction apply(Packet packet) {
10281027
for (ServerStartupInfo ssi : ssic) {
10291028
Packet p = packet.clone();
10301029
WlsServerConfig serverConfig = ssi.serverConfig;
1031-
ServerStartup ss = ssi.serverStartup;
1030+
ServerStartup serverStartup = ssi.serverStartup;
1031+
String serverName = serverConfig.getName();
10321032
p.put(ProcessingConstants.SERVER_SCAN, serverConfig);
10331033
p.put(ProcessingConstants.CLUSTER_SCAN, ssi.clusterConfig);
10341034
p.put(ProcessingConstants.ENVVARS, ssi.envVars);
1035+
1036+
DomainSpec spec = info.getDomain().getSpec();
10351037
Integer nodePort = null;
1036-
if (ss != null) {
1037-
nodePort = ss.getNodePort();
1038+
if (serverStartup == null) {
1039+
List<ServerStartup> ssl = spec.getServerStartup();
1040+
if (ssl != null) {
1041+
for (ServerStartup ss : ssl) {
1042+
if (serverName.equals(ss.getServerName())) {
1043+
serverStartup = ss;
1044+
break;
1045+
}
1046+
}
1047+
}
1048+
}
1049+
1050+
if (serverStartup != null) {
1051+
nodePort = serverStartup.getNodePort();
1052+
}
1053+
if (nodePort == null && serverName.equals(spec.getAsName())) {
1054+
nodePort = spec.getAsNodePort();
10381055
}
10391056

1040-
p.put(ProcessingConstants.SERVER_NAME, serverConfig.getName());
1057+
p.put(ProcessingConstants.SERVER_NAME, serverName);
10411058
if (ssi.clusterConfig != null) {
10421059
p.put(ProcessingConstants.CLUSTER_NAME, ssi.clusterConfig.getClusterName());
10431060
}
@@ -1060,7 +1077,9 @@ public NextAction apply(Packet packet) {
10601077
break;
10611078
}
10621079

1063-
startDetails.add(new StepAndPacket(ServiceHelper.createForClusterStep(null), p));
1080+
startDetails.add(new StepAndPacket(
1081+
ServiceHelper.createForClusterStep(
1082+
IngressHelper.createClusterStep(null)), p));
10641083
}
10651084
}
10661085

src/main/java/oracle/kubernetes/operator/helpers/ServiceHelper.java

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,12 @@ public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
119119
Map<String, List<String>> responseHeaders) {
120120
if (result == null) {
121121
Step create = CallBuilder.create().createServiceAsync(namespace, service, new ResponseStep<V1Service>(next) {
122+
@Override
123+
public NextAction onFailure(Packet packet, ApiException e, int statusCode,
124+
Map<String, List<String>> responseHeaders) {
125+
return super.onFailure(ForServerStep.this, packet, e, statusCode, responseHeaders);
126+
}
127+
122128
@Override
123129
public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
124130
Map<String, List<String>> responseHeaders) {
@@ -226,6 +232,12 @@ public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
226232
Map<String, List<String>> responseHeaders) {
227233
if (result == null) {
228234
Step create = CallBuilder.create().createServiceAsync(namespace, service, new ResponseStep<V1Service>(next) {
235+
@Override
236+
public NextAction onFailure(Packet packet, ApiException e, int statusCode,
237+
Map<String, List<String>> responseHeaders) {
238+
return super.onFailure(ForClusterStep.this, packet, e, statusCode, responseHeaders);
239+
}
240+
229241
@Override
230242
public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
231243
Map<String, List<String>> responseHeaders) {
@@ -245,20 +257,27 @@ public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
245257
return doNext(packet);
246258
} else {
247259
// we need to cycle the Service
260+
info.getClusters().remove(clusterName);
248261
Step delete = CallBuilder.create().deleteServiceAsync(namespace, name, new ResponseStep<V1Status>(next) {
249262
@Override
250263
public NextAction onFailure(Packet packet, ApiException e, int statusCode,
251264
Map<String, List<String>> responseHeaders) {
252265
if (statusCode == CallBuilder.NOT_FOUND) {
253266
return onSuccess(packet, null, statusCode, responseHeaders);
254267
}
255-
return super.onFailure(packet, e, statusCode, responseHeaders);
268+
return super.onFailure(ForClusterStep.this, packet, e, statusCode, responseHeaders);
256269
}
257270

258271
@Override
259272
public NextAction onSuccess(Packet packet, V1Status result, int statusCode,
260273
Map<String, List<String>> responseHeaders) {
261274
Step create = CallBuilder.create().createServiceAsync(namespace, service, new ResponseStep<V1Service>(next) {
275+
@Override
276+
public NextAction onFailure(Packet packet, ApiException e, int statusCode,
277+
Map<String, List<String>> responseHeaders) {
278+
return super.onFailure(ForClusterStep.this, packet, e, statusCode, responseHeaders);
279+
}
280+
262281
@Override
263282
public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
264283
Map<String, List<String>> responseHeaders) {
@@ -356,13 +375,19 @@ public NextAction onFailure(Packet packet, ApiException e, int statusCode,
356375
if (statusCode == CallBuilder.NOT_FOUND) {
357376
return onSuccess(packet, null, statusCode, responseHeaders);
358377
}
359-
return super.onFailure(packet, e, statusCode, responseHeaders);
378+
return super.onFailure(CycleServiceStep.this, packet, e, statusCode, responseHeaders);
360379
}
361380

362381
@Override
363382
public NextAction onSuccess(Packet packet, V1Status result, int statusCode,
364383
Map<String, List<String>> responseHeaders) {
365384
Step create = CallBuilder.create().createServiceAsync(namespace, newService, new ResponseStep<V1Service>(next) {
385+
@Override
386+
public NextAction onFailure(Packet packet, ApiException e, int statusCode,
387+
Map<String, List<String>> responseHeaders) {
388+
return super.onFailure(CycleServiceStep.this, packet, e, statusCode, responseHeaders);
389+
}
390+
366391
@Override
367392
public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
368393
Map<String, List<String>> responseHeaders) {
@@ -459,14 +484,20 @@ public NextAction onFailure(Packet packet, ApiException e, int statusCode,
459484
if (statusCode == CallBuilder.NOT_FOUND) {
460485
return onSuccess(packet, null, statusCode, responseHeaders);
461486
}
462-
return super.onFailure(packet, e, statusCode, responseHeaders);
487+
return super.onFailure(ForExternalChannelStep.this, packet, e, statusCode, responseHeaders);
463488
}
464489

465490
@Override
466491
public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
467492
Map<String, List<String>> responseHeaders) {
468493
if (result == null) {
469494
Step create = CallBuilder.create().createServiceAsync(namespace, service, new ResponseStep<V1Service>(next) {
495+
@Override
496+
public NextAction onFailure(Packet packet, ApiException e, int statusCode,
497+
Map<String, List<String>> responseHeaders) {
498+
return super.onFailure(ForExternalChannelStep.this, packet, e, statusCode, responseHeaders);
499+
}
500+
470501
@Override
471502
public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
472503
Map<String, List<String>> responseHeaders) {

0 commit comments

Comments
 (0)