doran/deploy/k8s/projects/README.md

38 lines
1.2 KiB
Markdown

# Projects on the shared cluster
This cluster is intended to host multiple independent projects.
## 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 `deploy/k8s/projects/unrip/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 project in this repo
- project name: `unrip`
- namespace: `unrip`
- project manifest: `deploy/k8s/projects/unrip/base/`