Configuration Properties and Environment Variables
- Docker image environment variables
- Console properties reference
- YAML Property Cases
- Environment Variable Conversion
- Support of shell expansion in the YAML configuration file
- Support of
*_FILE
environment variables - Global properties
- Database properties
- Session Lifetime Properties
- Local users properties
- Monitoring properties
- SSO properties
- Kafka clusters properties
- Kafka vendor specific properties
- Schema registry properties
- Kafka Connect properties
- ksqlDB properties
- Indexer properties
- AuditLog export properties
- Conduktor SQL properties
Docker image environment variables
Environment Variable | Description | Default Value | Since Version |
---|---|---|---|
Logs | |||
CDK_DEBUG | Enable Console debug logs (equivalent to CDK_ROOT_LOG_LEVEL=DEBUG ) | false | 1.0.0 |
CDK_ROOT_LOG_LEVEL | Set the Console global log level (one of DEBUG , INFO , WARN , ERROR ) | INFO | 1.11.0 |
CDK_ROOT_LOG_FORMAT | Set logs format (one of TEXT , JSON ) | TEXT | 1.26.0 |
CDK_ROOT_LOG_COLOR | Enable ANSI colors in logs | true | 1.11.0 |
CDK_LOG_TIMEZONE | Timezone for dates in logs (in Olson timezone ID format, e.g. Europe/Paris ) | TZ environment variable or UTC if TZ is not defined | 1.28.0 |
Proxy settings | |||
CDK_HTTP_PROXY_HOST | Proxy hostname | ∅ | 1.10.0 |
CDK_HTTP_PROXY_PORT | Proxy port | 80 | 1.10.0 |
CDK_HTTP_NON_PROXY_HOSTS | List of hosts that should be reached directly, bypassing the proxy. Hosts must be separated by | , end with a * for wildcards, and not contain any / . | ∅ | 1.10.0 |
CDK_HTTP_PROXY_USERNAME | Proxy username | ∅ | 1.10.0 |
CDK_HTTP_PROXY_PASSWORD | Proxy password | ∅ | 1.10.0 |
SSL | |||
CDK_SSL_TRUSTSTORE_PATH | Truststore file path used by Console for Kafka, SSO, S3,... clients SSL/TLS verification | ∅ | 1.5.0 |
CDK_SSL_TRUSTSTORE_PASSWORD | Truststore password (optional) | ∅ | 1.5.0 |
CDK_SSL_TRUSTSTORE_TYPE | Truststore type (optional) | jks | 1.5.0 |
CDK_SSL_DEBUG | Enable SSL/TLS debug logs | false | 1.9.0 |
Java | |||
CDK_GLOBAL_JAVA_OPTS | Custom JAVA_OPTS parameters passed to Console | ∅ | 1.10.0 |
CONSOLE_MEMORY_OPTS | Configure Java memory options | -XX:+UseContainerSupport -XX:MaxRAMPercentage=80 | 1.18.0 |
Console | |||
CDK_LISTENING_PORT | Console listening port | 8080 | 1.2.0 |
CDK_VOLUME_DIR | Volume directory where Console stores data | /var/conduktor | 1.0.2 |
CDK_IN_CONF_FILE | Console configuration file location | /opt/conduktor/default-platform-config.yaml | 1.0.2 |
CDK_PLUGINS_DIR | Volume directory for Custom Deserializers plugins | /opt/conduktor/plugins | 1.22.0 |
Nginx | |||
PROXY_BUFFER_SIZE | Tune internal Nginx proxy_buffer_size | 8k | 1.16.0 |
Console properties reference
You have multiple options to configure Console: either via environment variables, or via a YAML configuration file. You can find a mapping of the configuration fields in the platform-config.yaml
to environment variables below.
In case you set both environment variable and YAML value for a specific field, the environment variable will take precedence.
Lists start at index 0 and are provided using _idx_
syntax.
YAML Property Cases
YAML configuration supports multiple case formats (camelCase
/kebab-case
/lowercase
) for property fragments such as:
clusters[].schemaRegistry.ignoreUntrustedCertificate
clusters[].schema-registry.ignore-untrusted-certificate
clusters[].schemaregistry.ignoreuntrustedcertificate
All are valid and equivalent in YAML.
Environment Variable Conversion
At startup, Condutkor Console will merge environment variables and YAML based configuration files into one unified configuration. The conversion rules are as follows:
- Filter for environment variables that start with
CDK_
- Remove the
CDK_
prefix - Convert the variable name to lowercase
- Replace
_
with.
for nested properties - Replace
_[0-9]+_
with[0-9].
for list properties. (Lists start at index 0)
For example, the environment variables CDK_DATABASE_URL
will be converted to database.url
, or CDK_SSO_OAUTH2_0_OPENID_ISSUER
will be converted into sso.oauth2[0].openid.issuer
.
The YAML equivalent would be:
database:
url: "..."
sso:
oauth2:
- openid:
issuer: "..."
When converting environment variables to YAML configuration, environment variables in UPPER-KEBAB-CASE
will be converted to kebab-case
in the YAML configuration.
Conversion edge cases
Because of YAML multiple case formats support, the conversion rules have some edge cases when trying to mix environment variables and YAML configuration.
Extra rules when mixing environment variables and YAML configuration:
- Don't use
camelCase
in YAML configuration. Usekebab-case
orlowercase
- Stick to one compatible case format for a given property fragment using the following compatibility matrix
Compatibility matrix:
YAML\Environment | UPPER-KEBAB-CASE | UPPERCASE |
---|---|---|
kebab-case | ✅ | 🚫 |
lowercase | 🚫 | ✅ |
camelCase | 🚫 | 🚫 |
For example CDK_CLUSTERS_0_SCHEMAREGISTRY_IGNOREUNTRUSTEDCERTIFICATE
environment variable :
# Is equivalent to and compatible with
clusters:
- schemaregistry:
ignoreuntrustedcertificate: true
# but not with
clusters:
- schema-registry:
ignore-untrusted-certificate: true
And conversely, for CDK_CLUSTERS_0_SCHEMA-REGISTRY_IGNORE-UNTRUSTED-CERTIFICATE
environment variable.
That's why camelCase is not recommended in YAML configuration when mixing with environment variables.
Support of shell expansion in the YAML configuration file
Console supports shell expansion for environment variables and home tilde ~
.
This is useful if you have to use custom environment variables in your configuration.
For example, you can use the following syntax:
database:
url: "jdbc:postgresql://${DB_LOGIN}:${DB_PWD}@${DB_HOST}:${DB_PORT:-5432}/${DB_NAME}"
with the following environment variables:
Environment Variable | Value |
---|---|
DB_LOGIN | usr |
DB_PWD | pwd |
DB_HOST | some_host |
DB_NAME | cdk |
This will be expanded to:
database:
url: "jdbc:postgresql://usr:pwd@some_host:5432/cdk"
If you want to escape the shell expansion, you can use the following syntax: $$
.
For example, if you want admin.password
to be secret$123
, you should set admin.password: "secret$$123"
.
Support of *_FILE
environment variables
When an environment variable ending with _FILE
is set to a file path, its corresponding unprefixed environment variable will be replaced with the content of that file.
For instance, if you set CDK_LICENSE_FILE=/run/secrets/license
, the value of CDK_LICENSE
will be overridden by the content of the file located at /run/secrets/license
.
Exception: CDK_IN_CONF_FILE
is not supported.
Global properties
Property | Description | Environment Variable | Mandatory | Type | Default |
---|---|---|---|---|---|
organization.name | Your organization's name | CDK_ORGANIZATION_NAME | false | string | "default" |
admin.email | Your organization's root administrator account email | CDK_ADMIN_EMAIL | true | string |