Zilla Runtime Configuration
Zilla Runtime Configuration
The Zilla runtime configuration defines the bindings
, guards
, vaults
, catalogs
, and telemetry
used by the Zilla runtime engine. The values of properties in the configuration can be literals or expressions of the form ${{env.VARIABLE}}
to resolve a local environment variable value instead.
---
name: zilla-namespace
bindings:
...
guards:
...
vaults:
...
catalogs:
...
telemetry:
...
Configuration
name*
string
Namespace name.
bindings
object
as map of namedbinding
properties
Each configured binding
represents a step in the pipeline as data streams are decoded, translated or encoded according to a specific protocol type
.
A binding
also has a kind
, indicating how it should behave, such as server
, proxy
or client
.
As each incoming data stream arrives, the binding follows its configured routes
to reach an exit
binding, or rejects the stream if no routes are viable. Route matching conditions are defined in terms specific to each binding
type.
See each of the specific binding
types linked below for more detailed examples.
Behavioral type supporting either encoding and decoding for a specific protocol or translation between protocols.
routes.exit
string
Unconditional exit
binding acting as a default if none of the conditional routes are viable.
guards
object
as map of namedguard
properties
Each configured guard
represents a security checkpoint for one or more bindings based on a specific implementation type
.
Guards can be used by specific protocol bindings to enforce authorization requirements.
Associated roles can be enforced during routing by only following routes guarded
by specific role requirements when authorized. This implicitly supports falling through to lower privilege routes when guarded
higher privilege routes are not authorized.
See each of the specific guard
types linked below for more detailed examples.
vaults
object
as map of namedvault
properties
Each configured vault
represents a container for digital keys and certificates based on a specific implementation type
.
Vaults can be used by specific protocol bindings, such as tls
, to negotiate shared encryption keys.
See each of the specific vault
types linked below for more detailed examples.
catalogs
object
as map of namedcatalog
properties
telemetry
object
oftelemetry
properties
telemetry:
attributes:
service.namespace: example
exporters:
...
metrics:
...
attributes
object
| Default: zilla namespace name
Default attributes to optionally include when exporting metrics.
exporters
object
as map of namedexporter
properties
Map of named exporters.
metrics
array
ofstring
of namedmetrics
Array of named metrics.