Following ways are supported to run Cerberus:
- Standalone python program through Git or python package
- Containerized version using either Podman or Docker as the runtime
- Kubernetes or OpenShift deployment
NOTE: Only OpenShift 4.x versions are tested.
Pick the latest stable release to install here.
$ git clone https://github.com/redhat-chaos/cerberus.git --branch <release>
NOTE: Recommended to use a virtual environment(pyenv,venv) so as to prevent conflicts with already installed packages.
$ pip3 install -r requirements.txt
Setup the config according to your requirements. Information on the available options can be found at usage.
$ python3 start_cerberus.py --config <config_file_location>
NOTE: When config file location is not passed, default config is used.
Cerberus is also available as a python package to ease the installation and setup.
To install the lastest release:
$ pip3 install cerberus-client
Setup the config according to your requirements. Information on the available options can be found at usage.
$ cerberus_client -c <config_file_location>`
NOTE: When config_file_location is not passed, default config is used. NOTE: It's recommended to run Cerberus either using the containerized or github version to be able to use the latest enhancements and fixes.
Assuming docker ( 17.05 or greater with multi-build support ) is intalled on the host, run:
$ docker pull quay.io/redhat-chaos/cerberus
# Setup the [config](https://github.com/redhat-chaos/cerberus/tree/master/config) according to your requirements. Information on the available options can be found at [usage](usage.md).
$ docker run --name=cerberus --net=host -v <path_to_kubeconfig>:/root/.kube/config -v <path_to_cerberus_config>:/root/cerberus/config/config.yaml -d quay.io/redhat-chaos/cerberus:latest
$ docker logs -f cerberus
Similarly, podman can be used to achieve the same:
$ podman pull quay.io/redhat-chaos/cerberus
# Setup the [config](https://github.com/redhat-chaos/cerberus/tree/master/config) according to your requirements. Information on the available options can be found at [usage](usage.md).
$ podman run --name=cerberus --net=host -v <path_to_kubeconfig>:/root/.kube/config:Z -v <path_to_cerberus_config>:/root/cerberus/config/config.yaml:Z -d quay.io/redhat-chaos/cerberus:latest
$ podman logs -f cerberus
The go/no-go signal ( True or False ) gets published at http://<hostname>
:8080. Note that the cerberus will only support ipv4 for the time being.
NOTE: The report is generated at /root/cerberus/cerberus.report inside the container, it can mounted to a directory on the host in case we want to capture it.
If you want to build your own Cerberus image, see here. To run Cerberus on Power (ppc64le) architecture, build and run a containerized version by following the instructions given here.
Refer to the instructions for information on how to run cerberus as a Kubernetes or OpenShift application.