@@ -877,11 +877,18 @@ protected V1Pod computeManagedPodConfig(TuningParameters configMapHelper, Packet
877
877
// come for free with the WLS docker container with the correct values.
878
878
private static void overrideContainerWeblogicEnvVars (
879
879
DomainSpec spec , String serverName , V1Container container ) {
880
+ // get the EnvVar that are externally specified
881
+ List <V1EnvVar > envList = container .getEnv ();
882
+ String domainName = spec .getDomainName ();
883
+ String domainHome = "/shared/domain/" + domainName ;
884
+ String asName = spec .getAsName ();
885
+ String asPort = spec .getAsPort ().toString ();
886
+
880
887
// Override the domain name, domain directory, admin server name and admin server port.
881
- addEnvVar (container , "DOMAIN_NAME" , spec . getDomainName () );
882
- addEnvVar (container , "DOMAIN_HOME" , "/shared/domain/" + spec . getDomainName () );
883
- addEnvVar (container , "ADMIN_NAME" , spec . getAsName () );
884
- addEnvVar (container , "ADMIN_PORT" , spec . getAsPort (). toString () );
888
+ addEnvVar (container , "DOMAIN_NAME" , domainName );
889
+ addEnvVar (container , "DOMAIN_HOME" , domainHome );
890
+ addEnvVar (container , "ADMIN_NAME" , asName );
891
+ addEnvVar (container , "ADMIN_PORT" , asPort );
885
892
addEnvVar (container , "SERVER_NAME" , serverName );
886
893
// Hide the admin account's user name and password.
887
894
// Note: need to use null v.s. "" since if you upload a "" to kubectl then download it,
@@ -892,6 +899,18 @@ private static void overrideContainerWeblogicEnvVars(
892
899
// the default, e.g. 'weblogic' for the user name).
893
900
addEnvVar (container , "ADMIN_USERNAME" , null );
894
901
addEnvVar (container , "ADMIN_PASSWORD" , null );
902
+
903
+ // resolve tokens in externally specified env that refers to internal env via $(XXX)
904
+ for (V1EnvVar ev : envList ) {
905
+ String oldValue = ev .getValue ();
906
+ if (oldValue == null ) continue ;
907
+ String newValue = oldValue .replace ("$(DOMAIN_NAME)" , domainName );
908
+ newValue = newValue .replace ("$(DOMAIN_HOME)" , domainHome );
909
+ newValue = newValue .replace ("$(ADMIN_NAME)" , asName );
910
+ newValue = newValue .replace ("$(ADMIN_PORT)" , asPort );
911
+ newValue = newValue .replace ("$(SERVER_NAME)" , serverName );
912
+ if (!(oldValue .equals (newValue ))) ev .setValue (newValue );
913
+ }
895
914
}
896
915
897
916
// Add an environment variable to a container
0 commit comments