Switch to Toolforge jobs
This commit is contained in:
parent
9c29b3fcb2
commit
c431c9794a
4 changed files with 14 additions and 98 deletions
2
toolforge/build.sh
Executable file
2
toolforge/build.sh
Executable 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
|
|
@ -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
12
toolforge/jobs.yaml
Normal 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
|
|
@ -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
|
||||
|
Loading…
Reference in a new issue