You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org
|This page contains historical information. It is probably no longer true.|
grrrit-wm is an IRC bot that listens to events from Gerrit and reports them on various IRC channels; it replaces gerrit-wm.
It runs in a Docker container in our new Kubernetes cluster under the tools project in labs. It uses one of the base containers that tool labs provides (docker-registry.tools.wmflabs.org/toollabs-nodejs-base:latest). You can see the YAML file used as the kubernetes deployment definition in
kubernetes-deployment.yaml in the repository. If you want to start the bot entirely from scratch, then just doing
kubectl apply -f kubernetes-deployment.yaml should work.
To add more repo -> channel mappings, edit
config.yaml. The repo names can be matched using regexen. The tool needs to be restarted for the changes to take effect - see the deploying and restarting sections for more.
ssh tools-login.wmflabs.org become lolrrit-wm kubectl get pods kubectl logs grrrit-otnlc # use actual pod name from previous command
Deploying or restarting
$ ssh tools-login.wmflabs.org $ become lolrrit-wm # cd into lolrrit-wm and change repository to deploy (e.g. git pull) $ kubectl get pods NAME READY STATUS RESTARTS AGE grrrit-wm-230500525-qk7fl 1/1 Running 0 2m lolrrit-wm-3433923449-x40eu 1/1 Running 0 4d $ kubectl delete pod grrrit-wm-230500525-qk7fl # use actual pod name from previous command
Temporarily Stopping You can just the deployment to run 0 instances.
$ kubectl scale --replicas=0 deployment/grrrit-wm deployment "grrrit-wm" scaled
Restarting after stopping
Just scale it back to 1 instance.
$ kubectl scale --replicas=1 deployment/grrrit-wm deployment "grrrit-wm" scaled
The code is hosted on Gerrit, under
- It first used to run on the gridengine, and received gerrit changes via redis stream
- Then it ran on gridengine, but didn't use redis at all
- It was the first tool to be moved to kubernetes, using a custom docker image
- Now it just runs on the kubernetes cluster, without any custom docker images.
npm 2 upgrade changes
at bottom of file.
prefix = /data/project/lolrrit-wm/.npm-packages
/usr/share/npm/bin/npm-cli.js install -g npm@2 // Change the 2 to the version you want.