Configuring deployed apps

All the apps have an extended set of configuration options which might need tuning based on different scenarios. These configurations are accepted in the HOCON format.

Adding ad-hoc configuration

Every app accepts extra configuration through environment variables. All the environment variables passed to the apps, that start with ADDITIONAL_CONFIG will be processed and the configuration will be applied when the app starts.

Note

Example env: ADDITIONAL_CONFIG_EXAMPLE=”canton.example.key=value”

The full configuration for each app can be observed in the scala code, with the configuration key being kebab case compared to the camel case in the scala code:

Furthermore, the participant and other synchronizer components can be configured independently as well. Further info on such configurations can be found in the daml docs.

Custom bootstrap scripts

Both Canton and splice support bootstrap scripts during initialization. While this usually should not be needed as the validator app takes care of initializing the node, in some scenarios it can be useful. To do so, you need to set the OVERRIDE_BOOTSTRAP_SCRIPT environment variable to the content of your bootstrap script. Note that the script must be wrapped in a main function, e.g.,

def main() {
  logger.info(s"Participant id from bootstrap script: ${participant.id}")
}

You can set this environment variable through additionalEnvVars as described below.

Note that this overwrites any bootstrap scripts baked into the container image. So if you added custom functionality there, you will need to replicate this in the overwrite.

Helm charts support

The helm charts can be configured through the value additionalEnvVars, which passes the values as environment variables to the apps.

additionalEnvVars:
    - name: ADDITIONAL_CONFIG_EXAMPLE
      value: canton.example.key=value

Comments