Skip to content

Installation

You can install the pre-compiled binary (in several ways), compile from sources, or run with Docker.

We also provide a GitHub action to easily install Chainsaw in your workflows.

Install the pre-compiled binary

Homebrew tap

add tap:

brew tap kyverno/chainsaw https://github.com/kyverno/chainsaw

install chainsaw:

brew install kyverno/chainsaw/chainsaw

Don't forget to specify the tap name

Homebrew core already has a tool named chainsaw.

Be sure that you specify the tap name when installing to install the right tool.

Manually

Download the pre-compiled binaries for your system from the releases page and copy them to the desired location.

Install using go install

You can install with go install with:

go install github.com/kyverno/chainsaw@latest

Run with Docker

Chainsaw is also available as a Docker image which you can pull and run:

docker pull ghcr.io/kyverno/chainsaw:<version>

Warning

Since Chainsaw relies on files for its operation (like test definitions), you will need to bind mount the necessary directories when running it via Docker.

docker run --rm                             \
    -v ./testdata/e2e/:/chainsaw/           \
    -v ${HOME}/.kube/:/etc/kubeconfig/      \
    -e KUBECONFIG=/etc/kubeconfig/config    \
    --network=host                          \
    ghcr.io/kyverno/chainsaw:<version>      \
    test /chainsaw --config /chainsaw/config.yaml

Compile from sources

clone:

git clone https://github.com/kyverno/chainsaw.git

build the binaries:

cd chainsaw
go mod tidy
make build

verify it works:

./chainsaw version

Install using Nix Package

To install kyverno-chainsaw, refer to the documentation.

On NixOS

nix-env -iA nixos.kyverno-chainsaw

On Non-NixOS

nix-env -iA nixpkgs.kyverno-chainsaw

Warning

Using nix-env permanently modifies a local profile of installed packages. This must be updated and maintained by the user in the same way as with a traditional package manager, foregoing many of the benefits that make Nix uniquely powerful. Using nix-shell or a NixOS configuration is recommended instead.

Using NixOS Configuration

Add the following Nix code to your NixOS Configuration, usually located in /etc/nixos/configuration.nix :

environment.systemPackages = [
  pkgs.kyverno-chainsaw
];

Using nix-shell

A nix-shell will temporarily modify your $PATH environment variable. This can be used to try a piece of software before deciding to permanently install it. Use the following command to install kyverno-chainsaw :

nix-shell -p kyverno-chainsaw

GitHub action

A GitHub action is available to install Chainsaw in your workflows. See the GitHub action dedicated documentation.