Categorygithub.com/ag-computational-bio/bakta-web-backend
modulepackage
0.2.9-beta-50
Repository: https://github.com/ag-computational-bio/bakta-web-backend.git
Documentation: pkg.go.dev

# README

Bakta-Web backend

Backend to schedule Bakta jobs on a Kubernetes cluster.

 go version license

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:

Deployment

Requirements

  • S3-compatible object storage
  • MongoDB
  • Kubernetes-Cluster

Configuration

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.

Configuration file

ParameterDescription
Objectstorage.S3.UserBucketBucket to store the input and output data
Objectstorage.S3.DBBucketBucket to store the bakta database
Objectstorage.S3.BaseKeyKey prefix to store the input and output data
Database.MongoHostHostname of the used MongoDB
Database.MongoDBNameName of the used database inside MongoDB
Database.MongoUserUsername for MongoDB authentication
Database.MongoAuthSourceAuthentication database
Database.MongoPortPort of the MongoDB
UpdateService.NameServicename that handles the job status updates
UpdateService.PortServiceport that handles the job status updates
ExpiryTimeDefines how long a job should be kept around
JobContainerRegistry link to the job container
InClusterIndicates if the app is running inside a cluster
TestingIndicates if the bakta test db should be used

Environment variables

ParameterDescription
MongoPasswordPassword for the MongoDB user
AWS_ACCESS_KEY_IDS3 access key
AWS_SECRET_ACCESS_KEYS3 secret key

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Variables

Version Version tag.