Developer and Platform Services

Relevant source files

This section details the namespaces and services providing development infrastructure, cluster administration interfaces, gaming environments, and communication platforms. These services bridge the gap between core infrastructure and user-facing applications, providing essential tools for both developers and the broader community.

Dev Namespace: Forgejo Git Infrastructure

The dev namespace hosts the primary Git version control system, Forgejo, along with its associated runner for CI/CD automation.

Forgejo Implementation

Forgejo is deployed using a rootless container image code.forgejo.org/forgejo/forgejo:15.0.2-rootlesskubernetes/apps/dev/forgejo/app/helmrelease.yaml114-118 It utilizes a DragonflyDB instance for caching, session management, and task queues via the Redis adapter kubernetes/apps/dev/forgejo/app/helmrelease.yaml23-26

Key configuration details include:

CI/CD Runner

A dedicated forgejo-runner is deployed to handle Forgejo Actions kubernetes/apps/dev/forgejo/ks.yaml44-63 It depends on the main Forgejo instance and is managed via its own HelmRelease.

Forgejo Data Flow and Dependencies

Sources: kubernetes/apps/dev/forgejo/app/helmrelease.yaml1-132kubernetes/apps/dev/forgejo/ks.yaml1-63kubernetes/apps/dev/forgejo/app/externalsecret.yaml1-96


Flux-System Namespace: Platform UI

While the flux-system namespace primarily houses the Flux controllers, it also hosts Headlamp, the primary Kubernetes web UI.

Headlamp UI

Headlamp provides a graphical interface for cluster management. It is extended with a Flux-specific plugin to allow direct management of GitOps resources from the UI kubernetes/apps/flux-system/headlamp/app/helmrelease.yaml46-51

Sources: kubernetes/apps/flux-system/headlamp/app/helmrelease.yaml1-101kubernetes/apps/flux-system/headlamp/app/rbac.yaml1-41kubernetes/apps/flux-system/headlamp/app/externalsecret.yaml1-34


Games Namespace: Minecraft Infrastructure

The games namespace is dedicated to hosting game servers, specifically Minecraft, with specialized routing and update mechanisms.

Minecraft Routing and DNS

The cluster uses mc-router to handle Minecraft protocol traffic. This allows for virtual hosting of multiple Minecraft servers behind a single entry point.

Update Automation

The Minecraft deployment utilizes a custom Renovate datasource to track and update server versions automatically, ensuring the environment stays current with upstream releases.

Sources: kubernetes/apps/games/minecraft/mc-router/helmrelease.yaml1-45kubernetes/apps/games/kustomization.yaml1-10


Workadventure Namespace: Matrix Communication

The workadventure namespace hosts a complete Matrix communication stack, including the Synapse homeserver and a Coturn TURN server for media relay.

Synapse Matrix Server

Synapse is the reference implementation of the Matrix homeserver protocol.

Coturn TURN Server

Coturn provides STUN and TURN services, which are essential for NAT traversal in Matrix VoIP and video calls. It is integrated into the namespace to support the Synapse deployment.

Matrix Stack Architecture

Sources: kubernetes/apps/workadventure/synapse/app/externalsecret.yaml1-193kubernetes/apps/workadventure/namespace.yaml1-5