1.3 KiB
1.3 KiB
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:
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 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
unripapp repo underdeploy/k8s/base/