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:
- Click on a package
- Select the Install tab
- Define your inputs (optional)
- Click the Install button in the bottom right
Install with the Package Operator
To install a package interactively, use the
package::add
operator:
package::add "demo-node"
This installs the package named demo-node
from the Community
Library on GitHub. To install a local
package, just provide the filename instead:
package::add "package.yaml"
To set package inputs, set the values in the pipeline:
package::add "package.yaml", inputs={ endpoint: "localhost:42000", policy: "block",}
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:
- The
packages
directory in all configuration directories. - 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 as part of calling package::add
, you can add a config.yaml
file
next to the package.yaml
file. Here is an example that sets the inputs
endpoint
and policy
:
inputs: endpoint: localhost:42000 policy: block