Apps
Application deployments managed by Flux. Each app lives in its own directory with a Kustomize-based layout.
Gitea (Example App)
The included Gitea deployment consists of:
| File | Contents |
|---|---|
gitea/install/kustomization.yaml |
Lists the resources Flux should apply |
gitea/install/postgresql.yaml |
PostgreSQL Secret, Service, and StatefulSet |
gitea/install/gitea.yaml |
Gitea PVC, HTTP/SSH Services, and Deployment |
The IngressRoute for Gitea lives in infrastructure/routes/gitea.yaml (routes are managed at the infrastructure layer).
Adding Your Own App
Here's the checklist for adding a new app. For a full walkthrough with example files, see ../docs/adding-an-app.md.
1. Create a namespace
Add your namespace to bootstrap/ns/apps.yaml:
---
apiVersion: v1
kind: Namespace
metadata:
name: my-app
2. Create app manifests
Create apps/my-app/install/ with:
kustomization.yamllisting your resource files- Your Kubernetes manifests (Deployments, Services, PVCs, Secrets, etc.)
3. Create a Flux Kustomization
Add bootstrap/kustomization/apps/my-app/my-app-install.yaml:
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: install-my-app--app
namespace: flux-system
spec:
interval: 5m
timeout: 4m
dependsOn:
- name: install-traefik--infra
path: ./apps/my-app/install
prune: true
wait: true
sourceRef:
kind: GitRepository
name: flux-system
4. Create an IngressRoute
Add infrastructure/routes/my-app.yaml with your Traefik IngressRoute (use gitea.yaml as a template).
5. Commit and push
Flux will detect the changes and deploy your app automatically.