Override the Default System YAML File in Helm Installation
Override system.yaml in Helm deployments using extraSystemYaml, extraEnvironmentVariables, or systemYamlOverride secret.
The system.yaml is one of the most important configuration files for JFrog products. The Helm charts populate it with default values you can modify in values.yaml, such as artifactory.database.maxOpenConnections.
In advanced cases, you may need values that values.yaml cannot set directly.
You can use the following methods to override the system.yaml in the order of preference:
- Using
extraSystemYaml - Using
extraEnvironmentVariables - Using External
system.yaml(systemYamlOverridesecret)
Using extraSystemYaml
Note
Starting from Artifactory version 107.84.x, use
extraSystemYamlto override thesystem.yamlfile.
Add the values to override in the following sections:
artifactory.extraSystemYamlfor Artifactoryxray.extraSystemYamlfor Xraydistribution.extraSystemYamlfor Distribution
The chart merges entries under extraSystemYaml with the system.yaml file at (files/system.yaml) to create the final system.yaml. Add values correctly — the product silently ignores typos and wrong keys:
Artifactory
artifactory:
extraSystemYaml:
shared:
security:
bootstrapKeysReadTimeoutSecs: 120Xray
xray:
extraSystemYaml:
shared:
security:
bootstrapKeysReadTimeoutSecs: 120Distribution
distribution:
extraSystemYaml:
shared:
security:
bootstrapKeysReadTimeoutSecs: 120Using extraEnvironmentVariables
You can also modify system.yaml parameters via environment variables. Variables must start with JF, use underscores between key segments, and use all-uppercase keys.
For example, the system.yaml parameter shared.security.bootstrapKeysReadTimeoutSecs=120 maps to the environment variable JF_SHARED_SECURITY_BOOTSTRAPKEYSREADTIMEOUTSECS.
Add the values to override in the following sections:
artifactory.extraEnvironmentVariablesfor Artifactoryxray.extraEnvironmentVariablesfor Xraydistribution.extraEnvironmentVariablesfor Distribution
Artifactory
artifactory:
extraEnvironmentVariables:
- name: JF_SHARED_SECURITY_BOOTSTRAPKEYSREADTIMEOUTSECS
value: "120"Xray
xray:
extraEnvironmentVariables:
- name: JF_SHARED_SECURITY_BOOTSTRAPKEYSREADTIMEOUTSECS
value: "120"Distribution
distribution:
extraEnvironmentVariables:
- name: JF_SHARED_SECURITY_BOOTSTRAPKEYSREADTIMEOUTSECS
value: "120"Using External System.yaml Secret
Warning
This method is not recommended because
system.yamlis already generated underfiles/system.yaml, by incorporating values fromvalues.yaml. Using this method forces you to managesystem.yamlmanually and should only be used for legacy regressions.
Follow these steps to create an external system.yaml as a Kubernetes secret:
-
Create an external
system.yamlfile for one of the services. For example, Xray, and create an externalsystem.yamlwith the filename (xray-cus-sy.yaml):configVersion: 1 shared: logging: consoleLog: enabled: true jfrogUrl: "http://artifactory-artifactory.rt:8082" database: type: "postgresql" driver: "org.postgresql.Driver" username: "xray" url: "postgres://xray-postgresql:5432/xraydb?sslmode=disable" server: mailServer: "" indexAllBuilds: "true" -
Create a Kubernetes secret for the external
system.yamlfile (xray-cus-sy.yaml):kubectl create secret generic sy --from-file ./xray-cus-sy.yaml -
Reference the secret and its key under the
systemYamlOverridesection. These steps are the same for Artifactory and Distribution charts:systemYamlOverride: existingSecret: sy dataKey: xray-cus-sy.yaml
Updated 13 days ago
