39 lines
1.3 KiB
Markdown
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/`
|