| .. | ||
| README.md | ||
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/<name>/ at the repo root.
Pattern
- shared platform namespaces:
forgejoregistryobservabilitycert-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:
<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 project in this repo
- project name:
unrip - namespace:
unrip - project manifest:
projects/unrip/deploy/k8s/base/