doran/deploy/k8s/projects/README.md
2026-03-30 17:39:20 +02:00

39 lines
1.3 KiB
Markdown

# Projects on the shared cluster
This cluster is intended to host multiple independent projects.
This directory documents project conventions; actual project code/manifests live in their own application repositories.
## Pattern
- shared platform namespaces:
- `forgejo`
- `registry`
- `observability`
- `cert-manager`
- shared ingress model:
- use the k3s-bundled Traefik controller
- project Ingress resources should set `ingressClassName: traefik`
- per-project namespaces:
- `unrip`
- future examples: `project-foo`, `project-bar`
## How to add another project
For each new project, create a project manifest set in that project's own repository, similar to the `unrip` app repo's `deploy/k8s/base/`:
- one namespace
- one project config map
- one secret name unique to the project
- one image pull secret unique to the project
- one executor/data PVC if needed
- deployments/services/ingresses only inside that namespace
Recommended naming convention:
- namespace: project name, e.g. `unrip`
- config map: `<project>-config`
- app secrets: `<project>-secrets`
- pull secret: `<project>-registry-creds`
- persistent host path/app state: `/var/lib/<project>/...`
- app image: `registry.<domain>/<project>:<tag>`
## Current deployed app
- project name: `unrip`
- namespace: `unrip`
- project manifest: in the separate `unrip` app repo under `deploy/k8s/base/`