Customizing an independent JMS server for Business Automation Workflow
You can deploy an independent Java Message Service (JMS) server instead of the
embedded JMS server.
About this task
The embedded JMS server, running on the Workflow server pod, is configured by default. You can update the custom resource (CR) file to deploy an independent JMS server.
Procedure
To deploy an independent JMS server:
-
Edit the CR and add
is_embedded: false
tobaw_configuration.jms
for IBM® Business Automation Workflow Runtime, as shown in the following example:baw_configuration: - name: instance1 jms: is_embedded: false
- You can customize the JMS parameters, edit the CR file, and add the customized parameters
to
baw_configuration.jms
, as shown in the following example:baw_configuration: - name: instance1 jms: is_embedded: false ## Enable/disable logging where logs can be sent to Elasticsearch, default is 'false' logging_enabled: false ## Specify the group which Kubernetes will change the permissions of all files in volumes to when volumes are mounted by a pod, which is specified on the pod level. With scc(on OCP) or psp(on Kubernetes), you need to map the service account to proper scc or psp, for example on OCP, use commnad line: `oc adm policy add-scc-to-user anyuid -z wfps-instance1-sa -n NAMESPACE` fs_group: "" image: ## Image name for Java Messaging Service container. repository: cp.icr.io/cp/cp4a/baw/jms ## Image tag for Java Messaging Service container. tag: "24.0.0" ## Pull policy for Java Messaging Service container. Default value is IfNotPresent. Possible values are IfNotPresent, Always. pull_policy: IfNotPresent tls: ## TLS secret name for Java Message Service (JMS) tls_secret_name: ibm-jms-tls-secret resources: limits: ## Memory limit for JMS configuration memory: "1Gi" ## CPU limit for JMS configuration cpu: "1000m" requests: ## Requested amount of memory for JMS configuration memory: "512Mi" ## Requested amount of CPU for JMS configuration cpu: "100m" storage: ## Whether to enable persistent storage for JMS persistent: true ## Size for JMS persistent storage size: "1Gi" ## Whether to enable dynamic provisioning for JMS persistent storage use_dynamic_provisioning: true ## Access modes for JMS persistent storage access_modes: - ReadWriteOnce ## Storage class name for JMS persistent storage storage_class: "{{ shared_configuration.storage_configuration.sc_fast_file_storage_classname }}" node_affinity: # Values in this field will be used as kubernetes.io/arch selector values. Default values are ['amd64','s390x','ppc64le'] deploy_arch: [] #------------------------------------- # custom_node_selector_match_expression will be added in node selector match expressions. # It accepts array list inputs. You can assign multiple selector match expressions except (kubernetes.io/arch) # Example input: # - key: kubernetes.io/hostname # operator: In # values: # - worker0 # - worker1 # - worker3 #------------------------------------- custom_node_selector_match_expression: [] # Values in this field will be used as annotations in all generated pods. # They must be valid annotation key-value pairs. # Example: # custom_annotations: # key1: value1 # key2: value2 custom_annotations: {} # Values in this field will be used as labels in all generated pods # It must be valid label key value pairs # Example: # custom_labels: # key1: value1 # key2: value2 custom_labels: {} ## JMS Server custom plain XML snippet ## custom_xml: |+ ## <server> ## <!-- custom propeties here --> ## </server> custom_xml: ## JMS custom XML secret name that contains custom configuration in Liberty server.xml, ## put the custom.xml in secret with key "sensitiveCustom.xml" ## kubectl create secret generic jms-custom-xml-secret --from-file=sensitiveCustom.xml=./custom.xml custom_secret_name:
- Apply the updated CR.