====== paddles ======
===== Summary =====
paddles is a very simple JSON-based API used to report teuthology test results. See https://github.com/ceph/paddles
The service runs on a baremetal host, [[hardware:infrastructure#pulpitofrontsepiacephcom|pulpito.front.sepia.ceph.com]], deployed via the ceph-cm-ansible role: https://github.com/ceph/ceph-cm-ansible/tree/main/roles/paddles
It is operated by ''docker service'': https://docs.docker.com/engine/reference/commandline/service/, utilizing replication, health checks, and automatic rollbacks.
===== Backups =====
The 'paddles' db is backed up daily by the [[services:backups#backupsh|backup.sh]] script on gitbuilder-archive.
Backups are located in ''gitbuilder-archive:/home/backup/paddles.front.sepia.ceph.com-psql/paddles''
===== Admin Tasks =====
==== Stopping/Starting the service ====
ssh paddles.front.sepia.ceph.com
# Stopping
sudo docker service scale paddles=0
# Starting
sudo docker service scale paddles=10
==== Updating/Fixing Zombie Jobs ====
For jobs that indicate they're running but aren't, ''expire_jobs'' can be used.
The following example would expire any **queued** jobs 14 days old or older and any **running** jobs that haven't been updated in 30 minutes.
ssh paddles.front.sepia.ceph.com
sudo docker exec -it $(sudo docker ps --filter "health=healthy" --filter "name=paddles" --format "{{.ID}}" | head -n1) sh -c "pecan expire_jobs config.py -q 14 -r 30"
==== Adding testnodes to the inventory/DB ====
From your workstation,
cd ~/src/teuthology
source ./virtualenv/bin/activate
# Edit docs/_static/create_nodes.py
# (paddles_url, machine_type, lab_domain, and machine_index_range)
# These can all be found in teuthology.yaml on a teuthology host
python docs/_static/create_nodes.py
==== Upgrade Paddles ====
ssh pulpito.front.sepia.ceph.com
sudo docker service update --image quay.io/ceph-infra/paddles:main paddles --force