Using Quilkin

There are two choices for running Quilkin:

  • Binary
  • Container image

Binary

The release binary can be downloaded from the Github releases page.

Container Image

For each release, there is a container image built and hosted on Google Cloud Artifact Registry.

The latest production release can be found under the tag:

us-docker.pkg.dev/quilkin/release/quilkin:0.4.0-1d414cb

Which can be browsed as us-docker.pkg.dev/quilkin/release/quilkin.

The entrypoint of the container is to run /quilkin with no arguments, therefore arguments will need to be supplied. See the documentation below for all command line options.

Command-Line Interface

Quilkin provides a variety of different commands depending on your use-case. The primary entrypoint of the process is run, which runs Quilkin as a reverse UDP proxy. To see a basic usage of the command-line interface run through the netcat with Quilkin quickstart.

For more advanced usage, checkout the quilkin::Cli documentation or run:

$ quilkin --help
The Command-Line Interface for Quilkin

Usage: quilkin [OPTIONS] <COMMAND>

Commands:
  run                     Run Quilkin as a UDP reverse proxy
  generate-config-schema  Generates JSON schema files for known filters
  manage                  Runs Quilkin as a xDS management server, using `provider` as a configuration source
  help                    Print this message or the help of the given subcommand(s)

Options:
      --no-admin                       Whether to spawn the admin server or not [env: NO_ADMIN=]
  -c, --config <CONFIG>                The path to the configuration file for the Quilkin instance [env: QUILKIN_CONFIG=] [default: quilkin.yaml]
      --admin-address <ADMIN_ADDRESS>  The port to bind for the admin server [env: QUILKIN_ADMIN_ADDRESS=]
  -q, --quiet                          Whether Quilkin will report any results to stdout/stderr [env: QUIET=]
  -h, --help                           Print help information

File Based Configuration

For use cases that utilise functionality such as:

  • A static set of Filters
  • Multiple static Endpoints
  • Static metadata on Endpoints

Quilkin also provides a yaml based config file as well. See the File Configuration documentation for details.

Logging

By default Quilkin will log INFO level events, you can change this by setting the RUST_LOG environment variable. See log documentation for more advanced usage.

If you are debugging Quilkin set the RUST_LOG environemnt variable to quilkin=trace, to filter trace level logging to only Quilkin components.