# Projects on the shared cluster This cluster is intended to host multiple independent projects. This directory now documents project conventions; actual project code/manifests live under `/projects//` at the repo root. ## 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 similar to `projects/unrip/deploy/k8s/base/` at the repo root: - 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: `-config` - app secrets: `-secrets` - pull secret: `-registry-creds` - persistent host path/app state: `/var/lib//...` - app image: `registry./:` ## Current project in this repo - project name: `unrip` - namespace: `unrip` - project manifest: `projects/unrip/deploy/k8s/base/`