Kubernetes and GitOps¶
Infrastructure¶
The dataLOFT platform runs on IONOS Cloud. Infrastructure is provisioned with Terraform using the IONOS Terraform provider. The dataLOFT-gitops repository declares all cluster state and FluxCD applies it continuously.
Clusters¶
Two platform clusters are operated (a separate CI/CD cluster exists for build infrastructure and is not documented here):
| Cluster | FluxCD environment | Domain | Nodes | Per-node resources |
|---|---|---|---|---|
| dataLOFT-platform-experimental-cluster | experimental | <experimental-domain>.dataspace.fun |
- | - |
| dataLOFT-platform-staging-cluster | staging | staging.dataspace.fun |
2 | 12 cores, 24 GB RAM, 100 GB HDD |
| dataLOFT-platform-prod-cluster | production | dataspace.fun |
2 | 12 cores, 24 GB RAM, 100 GB HDD |
Staging and production clusters run IONOS Managed Kubernetes. The control plane is managed by IONOS. Secrets are encrypted with SOPS.
Experimental cluster¶
The experimental cluster is a personal development environment. It runs the same FluxCD configuration as the other clusters and gives developers a fully isolated instance of the platform to work against without risk to staging or production.
Anyone can run their own experimental cluster by forking the dataLOFT-gitops repository, adjusting the domain and secret configuration for their environment, and pointing FluxCD at their fork. To set up an experimental cluster, see Projects Readme
Namespaces and workloads¶
| Namespace | Workloads |
|---|---|
authentication |
OIDC authentication handler, Reference Authentication Service |
federated-catalog |
FC-Service, Neo4j, Keycloak, FC portal |
demo |
r-squared (cloud and edge variants, ECG gateway, clinical UI) |
monitoring |
Prometheus, Grafana, Alertmanager, Loki |
observability |
Jaeger operator (OpenTelemetry) |
postgres |
PostgreSQL (CloudNativePG operator) |
redis |
Redis |
minio-tenant |
MinIO object storage |
Infrastructure controllers¶
| Controller | Purpose |
|---|---|
| ingress-nginx | Ingress controller and TLS termination |
| cert-manager | Automated certificate provisioning via Let's Encrypt |
| external-dns | Synchronises Kubernetes services with DNS records |
| trust-manager | Certificate trust distribution |
| CloudNativePG (CNPG) | PostgreSQL cluster operator |
| Tofu controller | Infrastructure-as-code execution |
| Weave GitOps | GitOps dashboard |