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.