1
0
Fork 0

Switch to Toolforge jobs

This commit is contained in:
Kunal Mehta 2024-07-21 15:20:25 -04:00
parent 9c29b3fcb2
commit c431c9794a
4 changed files with 14 additions and 98 deletions

2
toolforge/build.sh Executable file
View file

@ -0,0 +1,2 @@
#!/bin/bash
toolforge jobs run build --command "bash -c 'source ~/.profile && cd ~/ircservserv && cargo build --release'" --image python3.11 --mem 2G --cpu 3 --wait 3600 --filelog-stdout logs/build-out.log --filelog-stderr logs/build-err.log

View file

@ -1,33 +0,0 @@
---
# Run ircservserv on kubernetes
# Adapted from stashbot's deployment file
apiVersion: apps/v1
kind: Deployment
metadata:
name: ircservserv
namespace: tool-ircservserv
labels:
name: ircservserv
toolforge: tool
spec:
replicas: 1
selector:
matchLabels:
name: ircservserv
toolforge: tool
template:
metadata:
labels:
name: ircservserv
# Mount NFS
toolforge: tool
spec:
containers:
- name: ircservserv
image: docker-registry.tools.wmflabs.org/toolforge-buster-sssd:latest
command: [ "/data/project/ircservserv/ircservserv-config/toolforge/manage.sh", "run" ]
workingDir: /data/project/ircservserv
env:
- name: HOME
value: /data/project/ircservserv
imagePullPolicy: Always

12
toolforge/jobs.yaml Normal file
View file

@ -0,0 +1,12 @@
- command: logrotate -v $TOOL_DATA_DIR/logrotate.conf --state $TOOL_DATA_DIR/.logrotate.state
emails: onfailure
filelog-stderr: logs/logrotate-err.log
filelog-stdout: logs/logrotate-out.log
image: mariadb
name: logrotate
schedule: '@daily'
- command: ./ircservserv/target/release/ircservserv
continuous: true
emails: onfailure
image: bookworm
name: ircservserv

View file

@ -1,65 +0,0 @@
#!/usr/bin/env bash
# Management script for ircservserv kubernetes processes
# Adapted from stashbot scripts
set -e
DEPLOYMENT=ircservserv
POD_NAME=ircservserv
APP_DIR=/data/project/ircservserv/ircservserv
CONFIG_DIR=/data/project/ircservserv/ircservserv-config
DEPLOYMENT_FILE=${CONFIG_DIR}/toolforge/deployment.yaml
KUBECTL=/usr/bin/kubectl
_get_pod() {
$KUBECTL get pods \
--output=jsonpath={.items..metadata.name} \
--selector=name=${POD_NAME}
}
case "$1" in
start)
echo "Starting ircservserv k8s deployment..."
$KUBECTL create --validate=true -f ${DEPLOYMENT_FILE}
;;
run)
date +%Y-%m-%dT%H:%M:%S
echo "Running ircservserv..."
cd ${CONFIG_DIR}
${APP_DIR}/target/release/ircservserv
;;
stop)
echo "Stopping the Kubernetes deployment..."
$KUBECTL delete deployment ${DEPLOYMENT}
# FIXME: wait for the pods to stop
;;
restart)
echo "Restarting the running pod..."
exec $KUBECTL delete pod $(_get_pod)
;;
status)
echo "Active pods:"
exec $KUBECTL get pods -l name=${POD_NAME}
;;
tail)
exec $KUBECTL logs -f $(_get_pod)
;;
attach)
echo "Attaching to pod..."
exec $KUBECTL exec -i -t $(_get_pod) -- /bin/bash
;;
compile)
echo "Compiling ircservserv on the grid..."
cd ${APP_DIR}
time jsub -N build -mem 2G -sync y -cwd cargo build --release
;;
*)
echo "Usage: $0 {start|stop|restart|status|tail|attach|compile}"
exit 1
;;
esac
exit 0