Configuring JVM parameters for Engineering Lifecycle Management instance

The Engineering Lifecycle Management operator allows passing of the JVM parameters to all Engineering Lifecycle Management applications web server (Liberty) processes and repotools shell scripts. The configuration also helps in passing the JVM properties through the config maps.

Procedure

  1. Create an app configuration JSON file as appconfig and save it in the local computer. Following is the example of the application configuration definition JSON with JVM properties.
    { 
    "common":{ 
        "security":{ 
            "SSL_PROTOCOL":"TLSv1.2,TLSv1.3", 
            "SSL_CIPHERS":"CIPHER1 CIPHER2"} 
        }, 
    "appSpecific":{ 
        "JTS":{ 
            "security":{ 
                "SSL_PROTOCOL":"TLSv1.2,TLSv1.3", 
                "SSL_ENABLED_CIPHERS":"CIPHER1 CIPHER2"}, 
            "jvmconfig":{ 
                "JVM_ARGS": "-Dcom.ibm.team.repository.servlet=false"}, 
            "repotoolconfig":{ 
                "REPOTOOLS_JVM_ARGS": "-Xgcpolicy:gencon"} 
         }, 
        "QM":{ 
            "security":{ 
                "SSL_PROTOCOL":"TLSv1.2,TLSv1.3", 
                "SSL_ENABLED_CIPHERS":"CIPHER1 CIPHER2"}
            }, 
    
        "RM":{ 
             "security":{ 
                "SSL_PROTOCOL":"TLSv1.2,TLSv1.3", 
                "SSL_ENABLED_CIPHERS":"CIPHER1 CIPHER2"} 
        }, 
         "CCM":{ 
            "security":{ 
                "SSL_PROTOCOL":"TLSv1.2,TLSv1.3", 
                "SSL_ENABLED_CIPHERS":"CIPHER1 CIPHER2"} 
        } 
    } 
    }
    Common > jvmconfig > JVM_ARGS

    The common JVM_ARGS applies for all Engineering Lifecycle Management applications.

    Note: Common > repotoolconfig > REPOTOOLS_JVM_ARGS are not supported as all Engineering Lifecycle Management applications do not support repotools.
    appSpecific > {app name} > jvmconfig > JVM_ARGS

    The JVM properties apply for a specific Engineering Lifecycle Management application only.

    appSpecific > {app name} > repotoolconfig > REPOTOOLS_JVM_ARGS

    The repotools JVM properties apply to jts, ccm, dcc, gc, qm, eni, rm applications only.

  2. Create the configmap by using the following command line. It creates the user defined configmap. Example elm-application-config in the project.  For more information, Click here
    Command for Red Hat OpenShift CLI
    oc create configmap elm-application-config --from-file=appconfig=<folder-path-for-elm-application-config.json>
    Command for Kubernetes CLI
    kubectl create configmap elm-application-config --from-file=appconfig=<folder-path-for-elm-application-config.json>
    For more information, see Example YAML configurations
  3. Define the configmap name in the Engineering Lifecycle Management CR yaml specification as following
    appConfigName: <ConfigMapName>
  4. The following are validations that are set in the background to allow passing the application configuration parameters:
    1. JVM properties for Engineering Lifecycle Management web server (Liberty) process jvmconfig > JVM_ARGS does not allow -X parameters to bar users from setting the memory-related properties.
    2. The operator in the background auto remediates the duplicate JVM_ARGS passed through appConfigName configmap.
    3. JVM properties for repotools shell scripts do not allow -Xmn , -Xmx, and -Xms parameters to bar users from setting the memory-related properties for repotools.