Configuration Reference
This page contains all available configuration options built into the reference Helm Charts for Merative Social Program Management (SPM). The published charts are intended to be a starting point for you to tailor the charts to your own environment and requirements.
The following tables list the configurable parameters of the spm
chart and their default values.
- Global properties
- Liberty runtime
- Batch jobs
- IBM MQ
- Static Content Server
- XML Server
- Universal Access React App - optional
Global properties
Parameter | Description | Default |
---|---|---|
global.license | Set to accept to accept the terms of the IBM license | '' |
global.images.imageLibrary | Namespace in the image registry containing your SPM images | '' |
global.images.imageTag | Image tag of all SPM images to be used for deployment | latest |
global.images.registry | Private image registry hosting your SPM images | minikube.local:5000 |
global.imagePullSecret.secretName | Name of a pre-created secret containing the credentials for connecting to your private image registry - if left blank, will attempt unauthenticated connection | '' |
global.hubPullSecret.secretName | Name of a pre-created secret containing the credentials for connecting to the docker hub - if left blank, will attempt unauthenticated connection | '' |
global.database.type | Database type (Valid values: DB2 or ORA ) | DB2 |
global.database.credsSecretName | Name of a pre-created secret containing the database credentials (see Handling Secrets topic for expected secret content) | '' |
global.database.dbName | Database name | DATABASE |
global.database.serviceName | The Oracle database service name | '' |
global.database.hostname | Database server hostname (required) | '' |
global.database.port | Database server TCP/IP port | 50000 |
global.database.ssl.enabled | Use Secure (TLS) connection to the database | false |
global.database.ssl.secretKey | The key in the secret containing the TLS certificate for the secure connection to the database | db2admin.arm |
global.database.ssl.secretName | Name of a pre-created secret containing the TLS certificate for the secure connection to the database | '' |
global.apps.common.persistence.enabled | Use persistent storage for logs | false |
global.apps.common.persistence.credentials | Credentials in the form of a list of key/value to authenticate with the object storage (contains any keys, but values are to be encoded in Base64) | '' |
global.apps.common.persistence.storageClassName | Name of the Storage Class to use | '' |
global.apps.common.persistence.storageCapacity | Capacity of the storage to request | '' |
global.apps.common.persistence.properties | Porperties to include in the creation of the Persistent Volume | '' |
global.apps.common.persistence.mountPoint | Path, where the Persistent Volume should be mounted in pods | '' |
global.apps.config.<applicationID>.enabled | Enable/disable SPM applications in the Helm release, where applicationID is the lower-cased name of the EAR file deployed | true for curam , false for all others |
global.ingress.enabled | Toggle creation of Ingress/Route resources | false |
global.ingress.generateCert | Create a self-signed certificate for use in Ingress definitions | false |
global.ingress.hostname | Hostname for use in Ingress/Route definition | '' |
global.ingress.tlsSecretName | Name of a pre-created secret containing TLS key and certificate files | '' |
global.timezone | Timezone* to be set in all deployed pods - this should be aligned with the underlying infrastructure | UTC |
global.useBetaFeatures | Use Beta features | false |
Liberty runtime
In the following properties, <applicationID>
is a placeholder for the name of SPM applications in lower case (e.g. curam
, citizenportal
, rest
, etc).
Parameter | Description | Default |
---|---|---|
global.apps.config.<applicationID>.jvm | Array of JVM options to be passed to Liberty | Varies by application (see values.yaml ) |
global.apps.config.<applicationID>.mqConnectionNameList | Connection list when IBM MQ is running in HA mode outside Kubernets (e.g. mqHost1(1414),mqHost2(1414) ) | '' |
global.apps.config.<applicationID>.consumerTuning | Dictionary of tuning values specific to the consumer pods (valid keys: jvm , replicaCount , resources , any keys from apps.tuningDefaults ) | {} |
global.apps.config.<applicationID>.producerTuning | Dictionary of tuning values specific to the producer pods (valid keys: jvm , replicaCount , resources , any keys from apps.tuningDefaults ) | {} |
global.apps.config.<applicationID>.producerTuning.maxEndPoints_DPEnactmentAS | Sets maximum concurrent endpoints for the DPEnactment JMS queue in the producer | Default derived from maxThreads |
global.apps.config.<applicationID>.producerTuning.maxEndPoints_WorkflowActivityAS | Sets maximum concurrent endpoints for the WorkflowActivity JMS queue in the producer | Default derived from maxThreads |
global.apps.config.<applicationID>.producerTuning.maxEndPoints_WorkflowEnactmentAS | Sets maximum concurrent endpoints for the WorkflowEnactment JMS queue in the producer | Default derived from maxThreads |
global.apps.config.<applicationID>.consumerTuning.maxEndPoints_DPEnactmentAS | Sets maximum concurrent endpoints for the DPEnactment JMS queue in the consumer | Default derived from maxThreads |
global.apps.config.<applicationID>.consumerTuning.maxEndPoints_WorkflowActivityAS | Sets maximum concurrent endpoints for the WorkflowActivity JMS queue in the consumer | Default derived from maxThreads |
global.apps.config.<applicationID>.consumerTuning.maxEndPoints_WorkflowEnactmentAS | Sets maximum concurrent endpoints for the WorkflowEnactment JMS queue in the consumer | Default derived from maxThreads |
global.apps.config.<applicationID>.replicaCount | Number of replicas of the application to be deployed | 1 |
global.apps.config.<applicationID>.resources | Pod resources definition | Varies by application (see values.yaml ) |
apps.initialDelaySeconds | Time in seconds before commencing application readiness probes | 150 |
apps.jwtConfig.issuerIdentifier | JSON Web Token issuer identity, matching the curam.watson.assistant.issuer database property | spm |
apps.jwtConfig.secretName | Name of a pre-created secret containing signing certificate for JSON Web Tokens (see Handling Secrets topic for expected secret content) | '' |
apps.loginConfig.identityOnly | Use LDAP authentication in Identity-Only mode | false |
apps.loginConfig.trace | Debug authentication process by printing tracing information on invocation of the login module | false |
apps.replicaCount | Default number of replicas, if global.apps.config.<applicationID>.replicaCount is not specified | 1 |
apps.sessionConfig.maxInMemorySessionCount | Maximum number of sessions to maintain in memory for each web module | 1000 |
apps.sessionConfig.sessionTimeout | Amount of time a session can go unused before it is no longer valid | 30m |
apps.sessionConfig.transactionTimeout | Maximum time allowed for transactions started on this server to complete. Any such transactions that do not complete before this timeout occurs are rolled back. | 3m |
apps.systemUser.credsSecretName | Name of a pre-created secret containing credentials of the system user (see Handling Secrets topic for expected secret content) | SYSTEM |
apps.tuningDefaults.coreThreads | Minimum number of threads to associate with the executor | 4 |
apps.tuningDefaults.maxThreads | Maximum number of threads that can be associated with the executor | 4 |
apps.tuningDefaults.curamdb_maxPoolSize | Maximum number of physical connections for a pool on the curamdb database | 8 |
apps.tuningDefaults.curamtimerdb_maxPoolSize | Maximum number of physical connections for a pool on the curamtimerdb database | 8 |
apps.tuningDefaults.curamsessdb_maxPoolSize | Maximum number of physical connections for a pool on the curamsessdb database | 8 |
apps.tuningDefaults.curamdb_numConnectionsPerThreadLocal | Number of connections to the curamdb database to be cached for each thread | 2 |
apps.tuningDefaults.curamtimerdb_numConnectionsPerThreadLocal | Number of connections to the curamtimerdb database to be cached for each thread | 2 |
apps.tuningDefaults.curamsessdb_numConnectionsPerThreadLocal | Number of connections to the curamsessdb database to be cached for each thread | 2 |
apps.tuningDefaults.curamdb_purgePolicy | Specifies which connections on curamdb to destroy when a stale connection is detected in a pool | EntirePool |
apps.tuningDefaults.curamtimerdb_purgePolicy | Specifies which connections on curamtimerdb to destroy when a stale connection is detected in a pool | EntirePool |
apps.tuningDefaults.curamsessdb_purgePolicy | Specifies which connections on curamsessdb to destroy when a stale connection is detected in a pool | EntirePool |
apps.tuningDefaults.curamdb_statementCacheSize | Maximum number of cached statements per connection on curamdb database | 1000 |
apps.tuningDefaults.curamtimerdb_statementCacheSize | Maximum number of cached statements per connection on curamtimerdb database | 1000 |
apps.tuningDefaults.curamsessdb_statementCacheSize | Maximum number of cached statements per connection on curamsessdb | 1000 |
apps.tuningDefaults.maxJMSConnectionsPerThread | Limits the number of open JMS connections on each thread. | 2 |
apps.tuningDefaults.mqMaxPoolSize | Maximum number of physical connections for a pool. A value of 0 means unlimited. | 12 |
apps.tuningDefaults.mqMinPoolSize | Minimum number of physical connections for a pool. A value of 0 means unlimited. | 12 |
apps.tuningDefaults.mqNumConnectionsPerThreadLocal | Caches the specified number of connections for each thread. | 2 |
apps.tuningDefaults.maxEndPoints_DPErrorAS | Sets maximum concurrent endpoints for the DPError JMS queue | 1 |
apps.tuningDefaults.maxEndPoints_WorkflowErrorAS | Sets maximum concurrent endpoints for the WorkflowError JMS queue | 1 |
apps.tuningDefaults.maxEndPoints_CuramDeadMessageQueueAS | Sets maximum concurrent endpoints for the CuramDeadMessageQueue JMS queue | 1 |
apps.tuningDefaults.resources | yaml stanza to allow fine tuning of resource config for an app. Overrides global.apps.config.APPLICATION_NAME.resources if set | '' |
apps.wlpAdmin.secretName | Name of a pre-created secret containing WebSphere Liberty administration credentials (see Handling Secrets topic for expected secret content) | '' |
apps.wlpAdmin.enableAdminCenter | Toggle whether the WebSphere Liberty Admin Center should be enabled | false |
apps.podAnnotations | Annotations to be applied during deployment | {} |
apps.persistenTimers.missedPersistentTimerAction | How missed timer actions are handled when no server is available. (Valid values: ONCE or ALL ) | ONCE |
apps.persistenTimers.lateTimerThreshold | How long before a warning is logged by Liberty when a timer is missed. (Valid value range: 0 (off) - 90m ) | 5m |
apps.persistenTimers.missedTaskThreshold | Maximum amount of time to allow for successful completion of a timer execution. (Valid value range: 100s - 9000s ) | 120s |
apps.persistenTimers.pollInterval | How often the database tables are checked for tasks. (Minimum valid value: 100s ) | 120s |
apps.persistenTimers.initialPollDelay | Delay before Liberty begins polling for timer tasks. (Valid values: 0 or positive integer followed by the unit of time, s (seconds)) | 0 |
apps.persistenTimers.pollSize | Maximum number of task entries to find when polling the persistent store. (Valid values: no value (no limit), integer 1 or greater) | "" |
apps.properties | Applications properties to be set during deployment | {} |
Batch jobs
In the following properties, <progID>
is a placeholder for the name of the batch program - this must be a valid YAML term (lower case, alphanumerical plus hypens, must begin with a letter), but does not need to match the Batch process class.
Parameter | Description | Default |
---|---|---|
batch.backoffLimit | Number of retries for failed Batch executions | 1 |
batch.javaOptions | Default Java Heap options for all programs | -Xms1g -Xmx1g |
batch.successfulJobsHistoryLimit | Number of successful batch executions to keep | 3 |
batch.jmxExporter.enabled | Enable the Prometheus JMX Exporter for the Batch server metrics | false |
batch.jmxExporter.port | The port to monitor the XML server JVM metrics | 8080 |
--------- | ----------- | ------- |
batch.programs.<progID>.activeDeadlineSeconds | Number of seconds within which the job is expected to complete. If this time is exceeded, the job is terminated. Blank value denoted no limit. | '' |
batch.programs.<progID>.className | Java class for the batch process (-Dbatch.program= ) | '' |
batch.programs.<progID>.javaOptions | Java options to be injected via ANT_OPTS | '' |
batch.programs.<progID>.parameters | Parameters, if any, to be passed to the batch process (-Dbatch.parameters= ) | '' |
batch.programs.<progID>.resources | Pod resources definition | '' |
batch.programs.<progID>.username | SPM username for the execution of the batch progress (-Dbatch.username= ) | '' |
batch.programs.<progID>.schedule | Different schedules can be specified for different batch jobs. The default schedule applies to any jobs queued in the system. | */30 * * * * |
--------- | ----------- | ------- |
batch.streamed.<progID>.activeDeadlineSeconds | Number of seconds within which the job is expected to complete. If this time is exceeded, the job is terminated. Blank value denoted no limit. | '' |
batch.streamed.<progID>.schedule | Different schedules can be specified for different batch jobs. The default schedule applies to any jobs queued in the system. | */30 * * * * |
batch.streamed.<progID>.chunker.className | Java class for the batch chunker (-Dbatch.program= ) | '' |
batch.streamed.<progID>.chunker.javaOptions | Java options to be injected via ANT_OPTS | '' |
batch.streamed.<progID>.chunker.parameters | Parameters, if any, to be passed to the batch chunker (-Dbatch.parameters= ) | '' |
batch.streamed.<progID>.chunker.replicaCount | Number of replicas of chunker to launch | '' |
batch.streamed.<progID>.chunker.resources | Pod resources definition | '' |
batch.streamed.<progID>.chunker.username | SPM username for the execution of the batch chunker (-Dbatch.username= ) | '' |
--------- | ----------- | ------- |
batch.streamed.<progID>.stream.className | Java class for the batch stream (-Dbatch.program= ) | '' |
batch.streamed.<progID>.stream.javaOptions | Java options to be injected via ANT_OPTS | '' |
batch.streamed.<progID>.stream.parameters | Parameters, if any, to be passed to the batch stream (-Dbatch.parameters= ) | '' |
batch.streamed.<progID>.stream.replicaCount | Number of replicas of stream to launch | '' |
batch.streamed.<progID>.stream.resources | Pod resources definition | '' |
batch.streamed.<progID>.stream.username | SPM username for the execution of the batch stream (-Dbatch.username= ) | '' |
The default batch configuration runs any queued jobs every 30 minutes (equivalent of running build.sh runbatch
without any parameters).
Additional batch jobs may be added with additional keys under batch.programs
.
For more information about batch examples, see bulk reassessment of all open integrated cases in the Social Program Management Health Care Reform Developer Guide.
The following batch.programs
example adds the bulk reassessment of all open integrated cases batch job to be run at 2AM every Sunday night.
batch:programs:queued:schedule: "*/30 * * * *"reassessment:className: curam.healthcare.sl.intf.BulkICReassessment.processjavaOptions: "-Xms2g -Xmx2g -Xgcpolicy:gencon"parameters: "evidenceMigrationDetails=CASE|DET0026071;DET0026027|CT26301"username: system
IBM MQ
Parameter | Description | Default |
---|---|---|
global.mq.version | Version of IBM MQ to deploy | 9.2.2.0-r1 |
global.mq.useConnectionNameList | Indicator if IBM MQ is running in HA mode outside the cluster | false |
global.mq.tlsSecretName | Name of a pre-created Secret containing TLS certificates for IBM MQ (required if running MQ outside the cluster, optional for MQ containers - certificates are auto-generated if not provided) | '' |
global.mq.queueManager.name | Name of the queue manager to be created in the MQ container | QM1 |
global.mq.queueManager.secret.name | Name of a pre-created secret containing credentials of the MQ client and admin users (see Handling Secrets topic) | '' |
global.mq.queueManager.secret.adminPasswordKey | The key in the Kubernetes Secret containing the password for the MQ admin user | adminPasswordKey |
global.mq.queueManager.secret.appUsernameKey | The key in the Kubernetes Secret containing the username for the MQ client user | appUsername |
global.mq.queueManager.secret.appPasswordKey | The key in the Kubernetes Secret containing the password for the MQ client user | appPasswordKey |
global.mq.availabilityType | Availability type to be used for deployments (alternatives: SingleInstance or MultiInstance ). Only available with stateful MQ Operators | SingleInstance |
global.mq.storageType | Storage type to be used (alternatives: ephemeral or persistent-claim ) | ephemeral |
global.mq.storageClassName | Storage class used for dynamic provisioning by the provisioner | '' |
global.mq.security.context.fsGroup | Primary user group for any filesystem mounts, if required by the storage provisioner | '' |
global.mq.security.context.supplementalGroups | Supplemental user groups for any filesystem mounts, if required by the storage provisioner | [] |
global.mq.security.initVolumeAsRoot | Initialise storage volume as root user | false |
mqserver.podAnnotations | Annotations to be applied during deployment | {} |
MQ Metrics (optional)
Parameter | Description | Default |
---|---|---|
global.mq.metrics.enabled | Enable/disable the MQ metrics | false |
global.mq.metrics.additionalMetrics | Enable/disable the IBM MQ Queue Depth Events metrics (only valid if global.mq.metrics.enabled is set to true ) | false |
mqserver.metricsImage.library | Namespace in the image registry containing your IBM MQ Queue Depth Events image | {} |
mqserver.metricsImage.name | Name of your IBM MQ Queue Depth Events image to be used | {} |
mqserver.metricsImage.tag | Image tag of your IBM MQ Queue Depth Events image to be used | {} |
MQ tuning (optional)
Parameter | Description | Default |
---|---|---|
global.apps.config.<applicationID>.mqTuning | MQ Pod resources definition per application | Varies by application (see values.yaml ) |
Static Content Server
Parameter | Description | Default |
---|---|---|
web.ingressPath | Static content Ingress/Route path without a trailing forward slash (must match what had been defined when the application was built) | /CuramStatic |
web.readinessProbe.path | Path for the pod readiness probe (should be same as ingressPath except with the trailing forward slash) | /CuramStatic/ |
web.replicaCount | Number of replicas to be deployed | 1 |
web.resources | Pod resources definition | Varies by application (see values.yaml ) |
web.tuning | Tuning values for Apache HTTP server of web component. Multiple values can be configured, each in the form “key value” e.g “ThreadLimit 2” | '' |
XML Server
Parameter | Description | Default |
---|---|---|
xmlserver.replicaCount | Number of replicas to be deployed | 1 |
xmlserver.resources | Pod resources definition | Varies by application (see values.yaml ) |
xmlserver.serverPort | The port that the XML server (its service) listens on (see note below) | 1800 |
xmlserver.jvm.maxMemory | The maximum Java heap for the XML server | 768m |
xmlserver.jvm.threadStackSize | The Java thread stack size for the XML server | -Xss4m |
xmlserver.jvm.jvmOptions | Options to be passed to the JVM; for example, the minimum heap size: -Xms1024m | '' |
xmlserver.config.threadPoolSize | The XML server thread pool size | 5 |
xmlserver.config.threadPoolQueueSize | The XML server thread pool queue size | 200 |
xmlserver.config.socketTimeout | The XML server socket timeout (milliseconds) | 60000 |
xmlserver.metrics.enabled | Enable sending XML server statistics (stats/ThreadPoolWorker-* file contents) to Prometheus | false |
xmlserver.metrics.port | The port to monitor the XML server statistics | 8080 |
xmlserver.startOptions | XML server start option; specifically for specifying -forcestatswrite | '' |
xmlserver.jvmStats.enabled | Enable the Prometheus JMX Exporter for the XML server JVM metrics | false |
xmlserver.jvmStats.port | The port to monitor the XML server JVM metrics | 8083 |
xmlserver.jvmStats.configYaml | The Prometheus JMX Exporter configuration YAML string | '' |
xmlserver.readinessProbe.enabled | Enable XML server readinessProbe described in XML server health checks | false |
xmlserver.readinessProbe.initialDelaySeconds | Configure the number of seconds after container startup to initiate the probe | 15 |
xmlserver.readinessProbe.periodSeconds | Configure the number of seconds between probe invocations | 60 |
xmlserver.livenessProbe.enabled | Enable XML server livenessProbe described in XML server health checks | false |
xmlserver.livenessProbe.initialDelaySeconds | Configure the number of seconds after container startup to initiate the probe | 60 |
xmlserver.livenessProbe.periodSeconds | Configure the number of seconds between probe invocations | 120 |
xmlserver.livenessProbe.timeoutSeconds | Configure the number of seconds before the probe times out | 30 |
Universal Access React App - optional
Parameter | Description | Default |
---|---|---|
uawebapp.imageConfig.library | Namespace in the image registry containing your Univeral Access image | '' |
uawebapp.imageConfig.name | Name of your Univeral Access image to be used | '' |
uawebapp.imageConfig.tag | Image tag of your Univeral Access image to be used | latest |
uawebapp.ingressPath | Static content Ingress/Route path without a trailing forward slash (must match the PUBLIC_URL variable when the application was built) | /universal |
uawebapp.readinessProbe.path | Path for the pod readiness probe (should be same as ingressPath except with the trailing forward slash) | /universal/ |
uawebapp.replicaCount | Number of replicas to be deployed | 1 |
uawebapp.resources | Pod resources definition | Varies by application (see values.yaml ) |
uawebapp.tuning | Tuning values for Apache HTTP server of UAWebApp component. Multiple values can be configured, each in the form “key value” e.g “ThreadLimit 2” | '' |