@@ -66,11 +66,22 @@ private ServiceHelper() {}
6666 * @return Step for internal service creation
6767 */
6868 public static Step createForServerStep (Step next ) {
69- return new ForServerStep (next );
69+ return createForServerStep (false , next );
70+ }
71+
72+ /**
73+ * Create asynchronous step for internal cluster service.
74+ *
75+ * @param isPreserveServices true, if this service is for a placeholder service with no pod
76+ * @param next Next processing step
77+ * @return Step for internal service creation
78+ */
79+ public static Step createForServerStep (boolean isPreserveServices , Step next ) {
80+ return new ForServerStep (isPreserveServices , next );
7081 }
7182
7283 static V1Service createServerServiceModel (Packet packet ) {
73- return new ServerServiceStepContext (null , packet ).createModel ();
84+ return new ServerServiceStepContext (false , null , packet ).createModel ();
7485 }
7586
7687 public static void addToPresence (DomainPresenceInfo info , V1Service service ) {
@@ -125,13 +136,16 @@ private static String getSpecType(V1Service service) {
125136 }
126137
127138 private static class ForServerStep extends ServiceHelperStep {
128- ForServerStep (Step next ) {
139+ private final boolean isPreserveServices ;
140+
141+ ForServerStep (boolean isPreserveServices , Step next ) {
129142 super (next );
143+ this .isPreserveServices = isPreserveServices ;
130144 }
131145
132146 @ Override
133147 protected ServiceStepContext createContext (Packet packet ) {
134- return new ServerServiceStepContext (this , packet );
148+ return new ServerServiceStepContext (isPreserveServices , this , packet );
135149 }
136150 }
137151
@@ -153,13 +167,15 @@ private NextAction doVerifyService(Step next, Packet packet) {
153167 }
154168
155169 private static class ServerServiceStepContext extends ServiceStepContext {
170+ private final boolean isPreserveServices ;
156171 protected final String serverName ;
157172 protected final String clusterName ;
158173 protected final KubernetesVersion version ;
159174 final WlsServerConfig scan ;
160175
161- ServerServiceStepContext (Step conflictStep , Packet packet ) {
176+ ServerServiceStepContext (boolean isPreserveServices , Step conflictStep , Packet packet ) {
162177 super (conflictStep , packet , OperatorServiceType .SERVER );
178+ this .isPreserveServices = isPreserveServices ;
163179 serverName = (String ) packet .get (ProcessingConstants .SERVER_NAME );
164180 clusterName = (String ) packet .get (ProcessingConstants .CLUSTER_NAME );
165181 scan = (WlsServerConfig ) packet .get (ProcessingConstants .SERVER_SCAN );
@@ -170,7 +186,7 @@ private static class ServerServiceStepContext extends ServiceStepContext {
170186 protected V1ServiceSpec createServiceSpec () {
171187 V1ServiceSpec serviceSpec =
172188 super .createServiceSpec ()
173- .clusterIP ("None" )
189+ .clusterIP (isPreserveServices ? null : "None" )
174190 .ports (createServicePorts ())
175191 .putSelectorItem (LabelConstants .SERVERNAME_LABEL , getServerName ());
176192 if (isPublishNotReadyAddressesSupported ())
0 commit comments