krknctl

how to install, build and configure the CLI

Use the official install script as the primary installation method:

Install using the official script

curl -fsSL https://raw.githubusercontent.com/krkn-chaos/krknctl/refs/heads/main/install.sh | bash

Verify installation:

krknctl --version

Alternative installation methods

Binary distribution

The krknctl binary is available for download from GitHub releases for supported operating systems and architectures. Extract the tarball and add the binary to your $PATH.

Build from source

Fork and clone the repository

Fork the repository:

$ git clone https://github.com/<github_user_id>/krknctl.git
$ cd krknctl

Set your cloned local to track the upstream repository:

git remote add upstream https://github.com/krkn-chaos/krknctl

Linux

Dictionaries

To generate the random words we use the american dictionary, it is often available but if that’s not the case:

  • Fedora/RHEL: sudo dnf install words
  • Ubuntu/Debian: sudo apt-get install wamerican

Build dependencies

Linux

To build the only system package required is libbtrfs:

  • Fedora/RHEL: sudo dnf install btrfs-progs-devel
  • Ubuntu/Debian: sudo apt-get install libbtrfs-dev
MacOS
  • gpgme: brew install gpgme

Build command

go build -tags containers_image_openpgp -ldflags="-w -s" -o bin/ ./...

Configure Autocompletion:

The first step to have the best experience with the tool is to install the autocompletion in the shell so that the tool will be able to suggest to the user the available command and the description simply hitting tab twice.

Bash (linux):

$$source <(krknctl completion bash)$$

zsh (MacOS):

$$autoload -Uz compinit compinit source <(krknctl completion zsh)$$


Container Runtime:

The tool supports both Podman and Docker to run the krkn-hub scenario containers. The tool interacts with the container runtime through Unix socket. If both container runtimes are installed in the system the tool will default on Podman.

Podman:

Steps required to enable the Podman support

Linux:

  • enable and activate the podman API daemon
$$sudo systemctl enable --now podman$$
  • activate the user socket
$$systemctl enable --user --now podman.socket $$

MacOS:

If both Podman and Docker are installed be sure that the docker compatibility is disabled

Docker:

Linux:

Check that the user has been added to the docker group and can correctly connect to the Docker unix socket
running the command podman ps if an error is returned run the command sudo usermod -aG docker $USER

What’s next?

Please refer to the getting started guide, pick the scenarios of interest and follow the instructions to run them via Krkn, Krkn-hub or Krknctl. Running via Krkn-hub or Krknctl are recommended for ease of use and better user experience.