Skip to main content

Zilla Runtime Configuration

config

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 named binding 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 named guard 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 named vault 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 named catalog properties

telemetry

object of telemetry 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 named exporter properties

Map of named exporters.

metrics

array of string of named metrics

Array of named metrics.