runboat/README.md
2021-10-28 12:52:23 +02:00

50 lines
1.3 KiB
Markdown

# runboat ☸️
A simple runbot lookalike on kubernetes. Main goal is replacing the OCA runbot.
## Requirements
For running the builds:
- A namespace in a kubernetes cluster.
- A wildcard DNS domain that points to the kubernetes ingress.
- A postgres database, accessible from within the cluster namespace with a user with
permissions to create database.
For running the controller:
- Python 3.10
- `kubectl`
- A `KUBECONFIG` that provides access to the namespace where the builds are deployed,
with permissions to create and delete service, deployment, ingress, secret and
configmap resources.
## TODO
Prototype:
- plug it on a bunch of OCA and shopinvader repos to test load
- handle init failures, add failed status
- basic API
MVP:
- finish api
- build/log and build/init-log api endpoints
- report build status to github
- k8s init container timeout
- error handling in API
- basic tests
- look at other TODO in code
- build and publis runboat container image
- deployment
- plug it on shopinvader and acsone to test on small scale
- create builds for all supported repos on startup (goes with sticky branches)
- advanced reaper (sticky branches)
- test what happens when the watcher looses connection to k8s
More:
- UI
- handle PR close (delete all builds for PR)
- handle branch delete (delete all builds for branch)