Go to file
2024-01-08 23:37:20 +01:00
.github/workflows Initial commit 2024-01-07 21:03:28 +01:00
charts Update charts 2024-01-08 23:37:20 +01:00
tf Initial commit 2024-01-07 21:03:28 +01:00
.gitignore Add gitignore 2024-01-08 17:32:36 +01:00
deploy Update scripts 2024-01-08 17:34:45 +01:00
README.md Update README 2024-01-08 17:34:23 +01:00
run.sh Initial commit 2024-01-07 21:03:28 +01:00
setup-cluster Update scripts 2024-01-08 17:34:45 +01:00

Challenge

The infrastructure is set up with minikube and fluxcd. The bitnami PostgreSQL HA chart is used for a highly available PostgreSQL database backend.
The app consists of two parts: an import job for PostgreSQL and the HA API deployment with the /success endpoint and a ReplicaSet of 2.

  • Database: PostgresqlHA
  • Import: gtfso-import
  • API: gtfso-vbb

Clone repository

$ git clone https://git.e2m.io/mue/obch
$ cd obch

Setup minikube and flux

Optionally remove remnants of previous minikube clusters

$ minikube delete --all

# The above was not sufficient to setup a new cluster
# See also: https://github.com/kubernetes/minikube/issues/17683
# Additionally deleting the local minikube config folder helped:
$ rm -rf ~/.minikube

Setup cluster and deploy app

run sh sources 'setup-cluster' and 'deploy'

$ ./run.sh

Setup cluster

$ ./setup-cluster

Deploy Service

$ ./deploy

Stop cluster

$ minikube stop

TODOs / Notes

Make gtfso a native Prometheus exporter
Vulnerability Scanning
Define strategy for version updates
Use SOPS for secret management
Terraform has minikube and flux providers

Resources

Flux bootstrap for Gitea
Flux github action
Flux Monitoring
Terraform Flux Provider
Mozilla SOPS
bitnami PostgreSQL HA Helm