This guide describes how to build and deploy ClusterIQ in a development environment. The setup uses container compose files and is intended for development purposes only.
ClusterIQ consists of two repositories:
- Console Repo contains the web user interface.
- Main Repo contains the API and Scanner components.
Each repository requires separate configuration and management.
Before you begin:
- Ensure you have the necessary cloud account credentials.
- Ensure you have access to
registry.redhat.ioto download the required container images. - If you experience file mounting issues with local files (such as
init.psqlorcredentials), verify your SELinux settings. SELinux in enforcing mode can prevent container runtime from binding files to containers.
To temporarily disable SELinux:
sudo setenforce 0[!NOTE] Use this command with caution and only in development environments.
Follow these steps to build the ClusterIQ components:
-
Create and navigate to a common folder for both repos:
WORKDIR=$(pwd)/cluster-iq-repos mkdir -p $WORKDIR && cd $WORKDIR
-
Clone the repositories:
git clone git@github.com:RHEcosystemAppEng/cluster-iq.git git clone git@github.com:RHEcosystemAppEng/cluster-iq-console.git
-
Validate required dependencies:
If you encounter an error, please ensure that you have installed all the necessary dependencies before proceeding.
cd ${WORKDIR}/cluster-iq make check-dependencies
-
Build the container images:
git checkout main make build
cd ${WORKDIR}/cluster-iq-console git checkout main make build
-
Verify the container images:
You should see the following images
cluster-iq-api,cluster-iq-scanner,cluster-iq-consoleCONTAINER_ENGINE=$(which podman >/dev/null 2>&1 && echo podman || echo docker) $CONTAINER_ENGINE images | grep cluster-iq
To manage your development environment:
-
Change the working directory to
cluster-iqrepocd ${WORKDIR}/cluster-iq
-
Configure your cloud account credentials.
-
Start the environment:
make start-dev
-
Stop the environment:
make stop-dev
To generate the API documentation from the source code:
make swagger-docTo view and edit the OpenAPI specification in a browser-based editor:
make swagger-editor