Kraken Docker Linux Installation¶
Kraken runs on Docker. Please install at least Docker CE version 18.09.6. Instructions for Ubuntu (and other Linux distributions) can be found on Docker's Linux installation manual page.
Please install at least docker-compose version 1.23.1. Instructions can be found on Docker's docker-compose installation manual page.
Kraken's script runs docker-compose as a non root user. So please follow the post installation instructions to manage Docker as a non-root user.
Kraken is packaged as a zip archive that contains:
- Configuration files for docker-compose and its various docker components.
data folder is passed as an environment variable to the application.
Do not install Kraken in a path that contains special characters.
In the extracted archive folder, execute the
kraken.sh script as a non-root user.
- Upates your
/etc/hostsfile to make the host kraken-local point to your public local IP,
- Initializes some environment variables,
- Then runs
docker-compose upusing the included docker-compose.yml file.
Once every Docker container has started, you can:
- Access the Administration application at http://kraken-local/administration,
- Access the Gatling application at http://kraken-local/gatling,
- Access the user management application (KeyCloak) at http://kraken-local/auth/.
Post Installation Instructions¶
When Kraken is running, a folder named
data should be created in the installation directory.
This data folder contains all default Gatling scripts and configuration files. You can synchronize it on Git or any other version-control system to keep track of your work.
The content of the
data folder is only initialized if it is empty.
Execute the command
docker-compose down to remove Kraken's Docker containers.
Next time you run
data folder content will be kept.
If you wish to completely remove Kraken from your system, simply run the
It will stop and remove all Docker containers and clear the
Customize Kraken Installation¶
This section describes the configuration files included in the Kraken
It provides a guide in case you need to customize your installation.
kraken.sh exports several environment variables:
KRAKEN_VERSION: The kraken version, checkout the download page to list all available version,
KRAKEN_HOST_UNAME: The host user id and name, used to run Docker containers using the same user that started Kraken,
KRAKEN_HOST_GNAME: The host group id and name, used to run Docker containers using the same group that started Kraken,
KRAKEN_DATA: Used to map the
datafolder inside the started Docker containers to the host machine
These variables are used when starting the Kraken stack using docker-compose.
Docker Compose File¶
docker-compose.yml configuration file defines the whole Docker stack for Kraken:
It contains a network named
kraken, used for cross-container communication, and defines several containers:
kraken-backend: the Java backend server that provides a REST API to manipulate the file system, manage test results, and run debug and execute load tests,
kraken-administration-ui: the Angular frontend for the Kraken Administration application,
kraken-gatling-ui: the Angular frontend for the Kraken Gatling application,
kraken-influxdb: the InfluxDB database used to store performance and monitoring metrics,
kraken-grafana: the Grafana application that displays load test dashboards,
kraken-haproxy: the HAProxy used to serve the Kraken stack on a single port (80),
kraken-keycloak: the KeyCloak used to manage Kraken users and authentication.
The following diagram explains the whole stack:
Communication between Docker containers is often done using their names. For example, the
kraken-backend calls the Grafana API using the
The frontend applications always use HAProxy to make API calls.
grafana folder contains the Grafana Docker container configuration:
env.grafana: environment variables definition,
grafana.ini: Grafana configuration file.
admin password for Grafana is
kraken. You can change it in the
env.grafana file, key
influxdb folder contains the InfluxDB Docker container configuration:
env.influxdb: environment variables definition,
influxdb.conf: InfluxDB configuration file.
The default admin and user credentials are defined in the
haproxy.cfg defines the configuration for HAProxy, used to serve the Kraken stack on port
It redirects the following
/api path to the backend server
It also redirects these paths for the frontend applications:
keycloak folder contains the KeyCloak Docker container configuration:
imports/kraken-realm.json: Kraken realm import.
The Kraken realm configuration is static (client ids and secrets, default admin login and passwords, etc.).
So the installation of the Docker version of Kraken is unsecured and suitable only for local testing.
To deploy Kraken on a public URL please consider using a Kubernetes cluster.