@@ -255,6 +255,7 @@ func (r *ReconcileWebSphereLiberty) deleteCompletedSemeruInstances(wlva *wlv1.We
255255}
256256
257257func  (r  * ReconcileWebSphereLiberty ) reconcileSemeruDeployment (wlva  * wlv1.WebSphereLibertyApplication , deploy  * appsv1.Deployment ) {
258+ 	var  port  int32  =  38400 
258259	deploy .Labels  =  getLabels (wlva )
259260	deploy .Spec .Strategy .Type  =  appsv1 .RecreateDeploymentStrategyType 
260261
@@ -276,11 +277,18 @@ func (r *ReconcileWebSphereLiberty) reconcileSemeruDeployment(wlva *wlv1.WebSphe
276277	limitsMemory  :=  getQuantityFromLimitsOrDefault (instanceResources , corev1 .ResourceMemory , "1200Mi" )
277278	limitsCPU  :=  getQuantityFromLimitsOrDefault (instanceResources , corev1 .ResourceCPU , "2000m" )
278279
280+ 	portNumber  :=  * semeruCloudCompiler .GetPort ()
281+ 	var  portIntOrStr  intstr.IntOrString 
282+ 	if  portNumber  ==  port  {
283+ 		portIntOrStr  =  intstr .FromInt32 (port )
284+ 	} else  {
285+ 		portIntOrStr  =  intstr .FromString (fmt .Sprintf ("%d-tcp" , port ))
286+ 	}
279287	// Liveness probe 
280288	livenessProbe  :=  corev1.Probe {
281289		ProbeHandler : corev1.ProbeHandler {
282290			TCPSocket : & corev1.TCPSocketAction {
283- 				Port : intstr . FromInt ( 38400 ) ,
291+ 				Port : portIntOrStr ,
284292			},
285293		},
286294		InitialDelaySeconds : 10 ,
@@ -291,7 +299,7 @@ func (r *ReconcileWebSphereLiberty) reconcileSemeruDeployment(wlva *wlv1.WebSphe
291299	readinessProbe  :=  corev1.Probe {
292300		ProbeHandler : corev1.ProbeHandler {
293301			TCPSocket : & corev1.TCPSocketAction {
294- 				Port : intstr . FromInt ( 38400 ) ,
302+ 				Port : portIntOrStr ,
295303			},
296304		},
297305		InitialDelaySeconds : 5 ,
@@ -301,6 +309,22 @@ func (r *ReconcileWebSphereLiberty) reconcileSemeruDeployment(wlva *wlv1.WebSphe
301309	semeruPodMatchLabels  :=  map [string ]string {
302310		"app.kubernetes.io/instance" : getSemeruCompilerNameWithGeneration (wlva ),
303311	}
312+ 	containerPorts  :=  make ([]corev1.ContainerPort , 0 )
313+ 	containerPorts  =  append (containerPorts , corev1.ContainerPort {
314+ 		ContainerPort : port ,
315+ 		Protocol :      corev1 .ProtocolTCP ,
316+ 	})
317+ 
318+ 	healthProbesFlag  :=  "" 
319+ 	if  portNumber  !=  port  {
320+ 		healthProbesFlag  =  " -XX:+JITServerHealthProbes"  +  fmt .Sprintf (" -XX:JITServerHealthProbePort=%d" , portNumber )
321+ 		containerPorts [0 ].Name  =  fmt .Sprintf ("%d-tcp" , port )
322+ 		containerPorts  =  append (containerPorts , corev1.ContainerPort {
323+ 			Name :          fmt .Sprintf ("%d-tcp" , portNumber ),
324+ 			ContainerPort : portNumber ,
325+ 			Protocol :      corev1 .ProtocolTCP ,
326+ 		})
327+ 	}
304328	deploy .Spec .Template  =  corev1.PodTemplateSpec {
305329		ObjectMeta : metav1.ObjectMeta {
306330			Labels :      getLabels (wlva ),
@@ -337,12 +361,7 @@ func (r *ReconcileWebSphereLiberty) reconcileSemeruDeployment(wlva *wlv1.WebSphe
337361					Image :           wlva .Status .GetImageReference (),
338362					ImagePullPolicy : * wlva .GetPullPolicy (),
339363					Command :         []string {"jitserver" },
340- 					Ports : []corev1.ContainerPort {
341- 						{
342- 							ContainerPort : 38400 ,
343- 							Protocol :      corev1 .ProtocolTCP ,
344- 						},
345- 					},
364+ 					Ports :           containerPorts ,
346365					Resources : corev1.ResourceRequirements {
347366						Requests : corev1.ResourceList {
348367							corev1 .ResourceMemory : requestsMemory ,
@@ -356,6 +375,7 @@ func (r *ReconcileWebSphereLiberty) reconcileSemeruDeployment(wlva *wlv1.WebSphe
356375					Env : []corev1.EnvVar {
357376						{Name : "OPENJ9_JAVA_OPTIONS" , Value : "-XX:+JITServerLogConnections"  + 
358377							" -XX:+JITServerShareROMClasses"  + 
378+ 							healthProbesFlag  + 
359379							" -XX:JITServerSSLKey=/etc/x509/certs/tls.key"  + 
360380							" -XX:JITServerSSLCert=/etc/x509/certs/tls.crt" },
361381					},
@@ -417,12 +437,26 @@ func reconcileSemeruService(svc *corev1.Service, wlva *wlv1.WebSphereLibertyAppl
417437	svc .Labels  =  getLabels (wlva )
418438	svc .Spec .Selector  =  getSelectors (wlva )
419439	utils .CustomizeServiceAnnotations (svc )
420- 	if  len (svc .Spec .Ports ) ==  0  {
440+ 	numPorts  :=  len (svc .Spec .Ports )
441+ 	if  numPorts  ==  0  {
421442		svc .Spec .Ports  =  append (svc .Spec .Ports , corev1.ServicePort {})
422443	}
423444	svc .Spec .Ports [0 ].Protocol  =  corev1 .ProtocolTCP 
424445	svc .Spec .Ports [0 ].Port  =  port 
425446	svc .Spec .Ports [0 ].TargetPort  =  intstr .FromInt (int (port ))
447+ 	portNumber  :=  * wlva .GetSemeruCloudCompiler ().GetPort ()
448+ 	if  portNumber  !=  port  {
449+ 		numPorts  =  len (svc .Spec .Ports )
450+ 		if  numPorts  ==  1  {
451+ 			svc .Spec .Ports  =  append (svc .Spec .Ports , corev1.ServicePort {})
452+ 		}
453+ 		svc .Spec .Ports [0 ].Name  =  fmt .Sprintf ("%d-tcp" , port )
454+ 		svc .Spec .Ports [0 ].TargetPort  =  intstr .FromString (fmt .Sprintf ("%d-tcp" , port ))
455+ 		svc .Spec .Ports [1 ].Name  =  fmt .Sprintf ("%d-tcp" , portNumber )
456+ 		svc .Spec .Ports [1 ].Protocol  =  corev1 .ProtocolTCP 
457+ 		svc .Spec .Ports [1 ].Port  =  portNumber 
458+ 		svc .Spec .Ports [1 ].TargetPort  =  intstr .FromString (fmt .Sprintf ("%d-tcp" , portNumber ))
459+ 	}
426460	svc .Spec .SessionAffinity  =  corev1 .ServiceAffinityClientIP 
427461	svc .Spec .SessionAffinityConfig  =  & corev1.SessionAffinityConfig {
428462		ClientIP : & corev1.ClientIPConfig {
@@ -585,14 +619,13 @@ func (r *ReconcileWebSphereLiberty) getSemeruJavaOptions(instance *wlv1.WebSpher
585619			certificateLocation  =  "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" 
586620		}
587621		jitServerAddress  :=  instance .Status .SemeruCompiler .ServiceHostname 
588- 		jitSeverOptions  :=  fmt .Sprintf ("-XX:+UseJITServer -XX:+JITServerLogConnections -XX:JITServerAddress=%v -XX:JITServerSSLRootCerts=%v" ,
589- 			jitServerAddress , certificateLocation )
622+ 		jitServerOptions  :=  fmt .Sprintf ("-XX:+UseJITServer -XX:+JITServerLogConnections -XX:JITServerAddress=%v -XX:JITServerSSLRootCerts=%v" , jitServerAddress , certificateLocation )
590623
591624		args  :=  []string {
592625			"/bin/bash" ,
593626			"-c" ,
594- 			"export OPENJ9_JAVA_OPTIONS=\" $OPENJ9_JAVA_OPTIONS "  +  jitSeverOptions  + 
595- 				"\"  && export OPENJ9_RESTORE_JAVA_OPTIONS=\" $OPENJ9_RESTORE_JAVA_OPTIONS "  +  jitSeverOptions  + 
627+ 			"export OPENJ9_JAVA_OPTIONS=\" $OPENJ9_JAVA_OPTIONS "  +  jitServerOptions  + 
628+ 				"\"  && export OPENJ9_RESTORE_JAVA_OPTIONS=\" $OPENJ9_RESTORE_JAVA_OPTIONS "  +  jitServerOptions  + 
596629				"\"  && server run" ,
597630		}
598631		return  args 
0 commit comments