Skip to main content
Version: 1.31.0

Variable Interpolation

furyctl allows to specify interpolated strings inside a furyctl.yaml configuration file.

Path interpolation

Intended for fields where you should specify a path to a folder or a file (e.g.: spec.kubernetes.ssh.keyPath). It will be replaced by the absolute path as computed from the current working directory.

Format: "{path://<relative-path>}"

Example:

...
spec:
kubernetes:
ssh:
keyPath: "{path://./ssh-key}"
...

Assuming you are running furyctl from /home/user/projects/test, the "{path://./ssh-key}" string will be replaced with /home/user/projects/test/ssh-key.

File interpolation

Replaces the interpolation string with the contents of a specified file. Useful for fields where you could have a file in your local filesystem that holds the required data, for example spec.distribution.modules.ingress.nginx.tls.secret.cert. To locate the file, furyctl will first convert the specified path to an absolute one (if needed).

Format: "{file://<path-to-file>}"

Example:

...
spec:
distribution:
modules:
ingress:
nginx:
tls:
secret:
cert: "{file://relative/path/to/ssl.crt}"
key: "{file://relative/path/to/ssl.key}"
ca: "{file://relative/path/to/ssl.ca}"
...

Assuming you are running furyctl from /home/user/projects/test, the cert, key and ca values will be replaced with /home/user/projects/test/relative/path/to/ssl.{crt|key|ca}.

Environment interpolation

Replaces the interpolation string with the value of the specified environment variable. Useful to specify secrets that you may not want to store inside plaintext files.

Format: "{env://<env-variable-name>}"

Example:

...
spec:
distribution:
modules:
auth:
pomerium:
secrets:
COOKIE_SECRET: "{env://POMERIUM_COOKIE_SECRET}"
IDP_CLIENT_SECRET: "{env://POMERIUM_IDP_CLIENT_SECRET}"
SHARED_SECRET: "{env://POMERIUM_IDP_CLIENT_SECRET}"
SIGNING_KEY: "{env://POMERIUM_IDP_CLIENT_SECRET}"
...

The strings in the above example will be replaced with the value of the specified environment variables.