I spent the last week or so building Docker images and a set of YAML files that allows one to run SReview, my 99%-automated video review and transcode system, inside minikube, a program that sets up a mini Kubernetes cluster inside a VM for development purposes.
I wish the above paragraph would say "inside Kubernetes", but alas, unless your Kubernetes implementation has a ReadWriteMany volume that can be used from multiple nodes, this is not quite the case yet. In order to fix that, I am working on adding an abstraction layer that will transparently download files from an S3-compatible object store; but until that is ready, this work is not yet useful for large installations.
But that's fine! If you're wanting to run SReview for a small conference, you can do so with minikube. It won't have the redundancy and reliability things that proper Kubernetes provides you, but then you don't really need that for a conference of a few days.
Here's what you do:
- Download
minikube
(see the link above) - Run
minikube start
, and wait for it to finish - Run
minikube addon enable ingress
- Clone the SReview git repository
- From the toplevel of that repository, run
perl -I lib scripts/sreview-config -a dump|sensible-pager
to see an overview of the available configuration options. - Edit the file
dockerfiles/kube/master.yaml
to add your configuration variables, following the instructions near the top - Once the file is configured to your liking, run
kubectl apply -f master.yaml -f storage-minikube.yaml
- Add
sreview.example.com
to /etc/hosts, and have it point to the output ofminikube ip
. - Create preroll and postroll templates, and download them to minikube
in the location that the example config file suggests. Hint:
minikube ssh
haswget
. - Store your raw recorded assets under /mnt/vda1/inputdata, using the
format you specified for the
$inputglob
and$parse_re
configuration values. - Profit!
This doesn't explain how to add a schedule to the database. My next big
project (which probably won't happen until after the next
FOSDEM is to add a more advanced
administrator's interface, so that you can just log in and add things
from there. For now though, you have to run
kubectl port-forward svc/sreview-database 5432
,
and then use psql
to localhost to issue SQL commands. Yes, that sucks.
Having said that, if you're interested in trying this out, give it a go. Feedback welcome!
(many thanks to the people on the #debian-devel IRC channel for helping me understand how Kubernetes is supposed to work -- wouldn't have worked nearly as nice without them)