Backend to schedule Bakta jobs on a Kubernetes cluster.
Concept
The Bakta-Web backend implements a simple job scheduling system for the Bakta-Web UI. It requires an S3 compatible object storage, a MongoDB and a Kubernetes cluster to run the jobs. Jobs can be submitted via an API. The API is defined using gRPC and pregenerated builds are available for Golang. In addition the API can be queried using a JSON-over-REST API that is generated from the gRPC definitions using grpc-gateway. The corresponding repositories can be found here:
The backend is configured mainly via a config file that needs to be mounted into the running pod of the application using a config map. The secrets for accessing the MongoDB and the object storage are mounted as environment variables via Kubernetes secrets. In addition a properly configured service-account is required. An example configuration file can be found in config/config.yaml, kubernetes deployments files for the deployment can be found in the kube directory. The service-account requires basic CRUD rights on the batch/Job resource.