The same XML is still used - it is delivered to the pods through a secret referenced from the custom resource, and the operator mounts it as 100Custom.xml on every workflow pod. Because it lives in the CR / secret, it survives pod restarts and operator upgrades.
# 1. write the file exactly as on traditional BAW
cat > 100Custom.xml <<'X'
<properties>
<server merge="mergeChildren">
<email merge="mergeChildren">
<mail-server-address merge="replace">smtp.example.com</mail-server-address>
<mail-server-port merge="replace">587</mail-server-port>
<default-from-address merge="replace">workflow@example.com</default-from-address>
</email>
<portal merge="mergeChildren"><max-search-results merge="replace">500</max-search-results></portal>
</server>
</properties>
X
# 2. store it in a secret (key name is fixed: sensitiveCustomConfig)
oc create secret generic baw-custom-xml --from-file=sensitiveCustomConfig=100Custom.xml -n cp4ba
# 3. reference it in the CR (workflow server section; the authoring section has the same field)
spec:
baw_configuration:
- name: bawins1
lombardi_custom_xml_secret_name: baw-custom-xml
# 4. the operator restarts the pods; verify inside a pod
oc exec <baw-server-pod> -- cat /opt/ibm/wlp/usr/servers/defaultServer/config/100Custom.xmlOther settings have their own CR fields and should not be put into the XML: JVM options (jvm_customize_options), heap and replicas (resources, replicas), database and LDAP (datasource_configuration, IAM), TLS trust (trusted_certificate_list), Liberty server.xml snippets (the custom Liberty configuration secret for data sources, JMS resources, mail sessions), environment-specific process app values (still Process Admin / Workflow Center per server: /ProcessAdmin is deployed on containers too). Changing the secret alone does not trigger a restart on every release - edit the CR (for example bump an annotation) or delete the pods to reload.
References