Happyface at ETP

This page discusses the setup of the Happyface instance hosted at the Institute of Experimental Particle Physics. It monitors the services for the WLCG Tier 1 site operated at GridKa.

The complete setup is dockerized. The Dockerfile of the Happyface service sets up the necessary environment using the nginx:alpine image as base. We are using docker compose to build the images and start up the server.

The Happyface analyses are tested and the Docker image is built and deployed automatically using the GitLab CI pipeline, whose build, deploy and stop jobs are defined centrally in the project admins/docker-services/gitlab-ci and included here. The project-local configuration adds documentation (Pages), security audit (pip-audit) and dependency update (Renovate) jobs on top.

Developing Happyface

For development purposes, a test instance can be set up locally. For this some tweaks need to be done:

  1. Put your RUCIO_ACCOUNT-name in the docker-compose.dev.yml file.

  2. Place a (valid) voms-proxy in the file secrets/x509up_for_rucio.

Note

In the development override the secrets directory is mounted from the host path /tmp/happyface/secrets/ (docker-compose.dev.yml), so place the proxy there, e.g. /tmp/happyface/secrets/x509up_for_rucio, for it to be visible inside the container.

Then you can start a local instance of Happyface by running:

docker compose -f docker-compose.yml -f docker-compose.dev.yml build
docker compose -f docker-compose.yml -f docker-compose.dev.yml up

Note

The default docker-compose.yml attaches the service to the external webgateway network (used by the ETP traefik reverse proxy). Because docker compose appends the networks list of an override file to the base one, the webgateway network must exist on the machine (docker network create webgateway) even when developing locally.