====== 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 =====
==== 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.
oc exec -n paddles $(oc get pods -n paddles -o name | grep -v build | head -1) -- pecan expire_jobs config.py -q 14 -r 30
==== Adding testnodes to the inventory/DB ====
From your workstation or anywhere with a valid ''teuthology.yaml'',
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 ====
The paddles API / Web UI services live in Openshift in the ''paddles'' namespace. There is a cronjob that checks quay.io/ceph/paddles for a new image every 5 minutes. The ImageStream will automatically deploy any new images. See https://github.com/ceph/sepia-openshift/tree/main/paddles