A configurable docker compose setup for development and testing of ClusterCockpit
Go to file
2023-08-21 11:26:22 +02:00
.github reordered steps 2021-08-06 14:20:07 +02:00
cc-metric-store Initial commit to rework cc-docker repo into development environment 2022-06-01 11:27:50 +02:00
data Add slurm config 2023-08-21 11:26:22 +02:00
home/config Continue reworking docker setup 2023-07-11 08:39:21 +02:00
scripts Fix port 2022-06-23 18:06:20 +02:00
slurm Update slurm container setup 2023-08-21 09:57:51 +02:00
templates Add mariadb to default setup, remove init sql 2022-06-23 18:00:41 +02:00
.env Update slurm container setup 2023-08-21 09:57:51 +02:00
.gitignore Add default docker compose setup 2023-06-23 06:32:23 +02:00
docker-compose.yml Update slurm container setup 2023-08-21 09:57:51 +02:00
env-template.txt Update slurm container setup 2023-08-21 09:57:51 +02:00
LICENSE Initial commit 2021-05-19 07:49:23 +02:00
migrateTimestamps.pl Iterate setupscript, remove startscript, update migratetimestamp script 2022-06-23 18:05:08 +02:00
README.md Update README and setup script 2023-06-23 06:37:41 +02:00
setupDev.sh Update README and setup script 2023-06-23 06:37:41 +02:00

cc-docker

This is a docker-compose setup which provides a quickly started environment for ClusterCockpit development and testing, using cc-backend. A number of services is readily available as docker container (nats, cc-metric-store, InfluxDB, LDAP), or easily added by manual configuration (MySQL).

It includes the following containers:

  • nats (Default)
  • cc-metric-store (Default)
  • influxdb (Default)
  • openldap (Default)
  • mysql (Optional)
  • mariadb (Optional)
  • phpmyadmin (Optional)

The setup comes with fixture data for a Job archive, cc-metric-store checkpoints, InfluxDB, MySQL, and a LDAP user directory.

Known Issues

  • docker-compose installed on Ubuntu (18.04, 20.04) via apt-get can not correctly parse docker-compose.yml due to version differences. Install latest version of docker-compose from https://docs.docker.com/compose/install/ instead.
  • You need to ensure that no other web server is running on ports 8080 (cc-backend), 8081 (phpmyadmin), 8084 (cc-metric-store), 8086 (nfluxDB), 4222 and 8222 (Nats), or 3306 (MySQL). If one or more ports are already in use, you habe to adapt the related config accordingly.
  • Existing VPN connections sometimes cause problems with docker. If docker-compose does not start up correctly, try disabling any active VPN connection. Refer to https://stackoverflow.com/questions/45692255/how-make-openvpn-work-with-docker for further information.

Configuration Templates

Located in ./templates

  • docker-compose.yml.default: Docker-Compose file to setup cc-metric-store, InfluxDB, MariaDB, PhpMyadmin, and LDAP containers (Default). Used in setupDev.sh.
  • docker-compose.yml.mysql: Docker-Compose configuration template if MySQL is desired instead of MariaDB.
  • env.default: Environment variables for setup with cc-metric-store, InfluxDB, MariaDB, PhpMyadmin, and LDAP containers (Default). Used in setupDev.sh.
  • env.mysql: Additional environment variables required if MySQL is desired instead of MariaDB.

Setup

  1. Clone cc-backend repository in chosen base folder: $> git clone https://github.com/ClusterCockpit/cc-backend.git

  2. Run $ ./setupDev.sh: NOTICE The script will download files of a total size of 338MB (mostly for the InfluxDB data).

  3. The setup-script launches the supporting container stack in the background automatically if everything went well. Run $> ./cc-backend/cc-backend to start cc-backend.

  4. By default, you can access cc-backend in your browser at http://localhost:8080. You can shut down the cc-backend server by pressing CTRL-C, remember to also shut down all containers via $> docker-compose down afterwards.

  5. You can restart the containers with: $> docker-compose up -d.

Post-Setup Adjustment for using influxdb

When using influxdb as a metric database, one must adjust the following files:

  • cc-backend/var/job-archive/emmy/cluster.json
  • cc-backend/var/job-archive/woody/cluster.json

In the JSON, exchange the content of the metricDataRepository-Entry (By default configured for cc-metric-store) with:

"metricDataRepository": {
    "kind": "influxdb",
    "url": "http://localhost:8086",
    "token": "egLfcf7fx0FESqFYU3RpAAbj",
    "bucket": "ClusterCockpit",
    "org": "ClusterCockpit",
    "skiptls": false
}

Usage

Credentials for the preconfigured demo user are:

  • User: demo
  • Password: AdminDev

You can also login as regular user using any credential in the LDAP user directory at ./data/ldap/users.ldif.

TODO: Update job archive and all other metric data. The job archive with 1867 jobs originates from the second half of 2020. Roughly 2700 jobs from the first week of 2021 are loaded with data from InfluxDB. Some views of ClusterCockpit (e.g. the Users view) show the last week or month. To show some data there you have to set the filter to time periods with jobs (August 2020 to January 2021).