Configuration¶
KETE reads its configuration from the environment variables of the Keycloak process. Every setting is an environment variable whose name is the dotted property key (for example kete.routes.myroute.destination.kind) and whose value is the setting value.
Keycloak SPI options are not read
Keycloak exposes provider options to the extension as kc.spi-events-listener-kete-… keys in dash-case. KETE looks for dotted kete.* keys, so options placed in keycloak.conf, passed as --spi-events-listener-kete-… CLI flags or as -D system properties are not picked up. Use environment variables (or a container/orchestrator secret/config map that becomes an environment variable).
Environment Variables¶
Names contain dots and hyphens, so set them with a tool that accepts arbitrary variable names — Docker/Compose environment:, Kubernetes env:/envFrom:, systemd Environment=, or env 'name=value' kc.sh start. Plain export name=value is rejected by POSIX shells because of the dots.
kete.enabled=true
kete.metrics.enabled=true
kete.routes.myroute.destination.kind=kafka
kete.routes.myroute.destination.bootstrap.servers=kafka:9092
kete.routes.myroute.destination.topic=keycloak-events
Values are trimmed of surrounding whitespace. Unknown keys are ignored.
Configuration Pattern¶
All settings follow this pattern:
Global Settings¶
| Property | Default | Description |
|---|---|---|
kete.enabled |
true |
Master switch for KETE |
kete.metrics.enabled |
false |
Enable metrics at /metrics endpoint |
kete.support-the-project-message |
true |
Show support/sponsorship message in Keycloak logs on startup |
Restart Required
Configuration changes require a Keycloak restart. There is no hot-reload.
Best Practice¶
Keep one environment-variable set per deployment (dev, staging, production) — for example a Compose env_file, a Kubernetes ConfigMap plus Secret, or a systemd drop-in — and change only the values that differ between environments.