Skip to main content

Module config

Module config 

Source
Expand description

Configuration loading and schema types for the gateway’s two YAML files: system.yaml (process-level settings: listener, timeouts, admin, logging) and gateway.yaml (routes and node-graph policies). All values support ${ENV_VAR:-default} interpolation: raw YAML file text is interpolated by load_yaml_with_env, and structured plugin config authored through the Admin API / Web UI (or delivered over etcd) is interpolated at graph-compile time by interpolate_env_json.

Re-exports§

pub use loader::interpolate_env_json;
pub use loader::load_yaml_with_env;
pub use gateway::EdgeConfig;
pub use gateway::GatewayConfig;
pub use gateway::MatchRule;
pub use gateway::NodeConfig;
pub use gateway::PolicyConfig;
pub use gateway::RouteConfig;
pub use system::AdminConfig;
pub use system::ConfigSourceKind;
pub use system::DebugConfig;
pub use system::EtcdConfig;
pub use system::LoggingConfig;
pub use system::SniCert;
pub use system::SniRoute;
pub use system::StreamListenerConfig;
pub use system::StreamProtocol;
pub use system::StreamUpstreamConfig;
pub use system::SystemConfig;
pub use system::TimeoutConfig;
pub use system::TlsConfig;

Modules§

gateway 🔒
Schema for gateway.yaml: routes (match rules bound to a policy) and node-graph policies (nodes plus success/error edges). This file is the hot-reloadable half of the configuration and is also mutated at runtime by the Admin API.
loader 🔒
YAML loading with shell-style environment variable interpolation, applied to the raw file text before deserialization so every config value — including nested plugin config — supports ${ENV_VAR:-default}.
system 🔒
Schema for system.yaml: process-level settings (data-plane listener, TLS, HTTP/2, timeouts, logging, admin API). Loaded once at startup and never hot-reloaded; every top-level field has a serde default, so any section may be omitted.