Problem
Trino always expects exchange-manager.properties to be located at /etc/trino/exchange-manager.properties.
This path is hardcoded in ExchangeManagerRegistry.java and cannot be configured.
In Kubernetes and container setups this is limiting because:
- Config files could be injected dynamically (Vault Agent, Helm, Secrets).
/etc/trino may be cleared or overwritten.
Proposed Solution
Allow a custom location for the exchange-manager.properties file, for example:
-
Environment variable
TRINO_EXCHANGE_MANAGER_CONFIG=/path/to/exchange-manager.properties
-
Config property in config.properties
exchange-manager.config-file=/path/to/exchange-manager.properties
If nothing is set, keep the current default /etc/trino/exchange-manager.properties for backward compatibility.
Why
- Easier integration with Vault Agent and Kubernetes secrets.
- No need to overwrite
/etc/trino inside containers.
- Consistent with access control, which already supports custom file locations via
security.config-file.
- Removes the limitation of a hardcoded path in
ExchangeManagerRegistry.java.