Files
2026-02-14 10:46:57 -05:00
..
2026-02-14 10:46:57 -05:00
2026-02-14 10:46:57 -05:00

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.yaml listing 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.