Skip to main content
Version: v4.20

Install a Package

A package bundles pipelines and contexts, making it easy to deploy them as a single unit.

Install from the Tenzir Library

The most convenient way to install a package is through the Tenzir Library:

  1. Click on a package
  2. Select the Install tab
  3. Define your inputs (optional)
  4. Click the Install button in the bottom right

Install with the Package Operator

To install a package interactively, use the package_add operator:

// tql2
load_file "package.yaml"
read_yaml
package_add

To set package inputs, set the values in the pipeline:

// tql2
load_file "package.yaml"
read_yaml
// Adjust inputs
config.inputs.endpoint = "localhost:42000"
config.inputs.policy = "block"
package_add

Your package should now show when listing all installed packages:

packages
{
"id": "your-package",
"install_status": "installed",
// …
}

To uninstall a package interactively, use package_remove.

package_remove "your-package"

Install with Infrastructure as Code

For IaC-style deployments, you can install packages as code by putting them next to your tenzir.yaml configuration file:

/opt/tenzir/etc/tenzir
├── tenzir.yaml
└── packages
   └── your-package
   ├── config.yaml
   └── package.yaml

Inside the packages directory, every installed package lives in its own directory containing a package.yaml file with the package definition. By convention, the directory name is the package ID.

The node search path for packages consists of the following locations:

  1. The packages directory in all configuration directories.
  2. All directories specified in the tenzir.package-dirs configuration option.

As an alternative way to specify inputs visually in the app, or setting them explicitly prior to calling package_add, you can add a config.yaml file next to the package.yaml file. Here is an example that sets the keys config.inputs.endpoint and config.inputs.policy:

inputs:
endpoint: localhost:42000
policy: block