Initial commit
This commit is contained in:
68
apps/README.md
Normal file
68
apps/README.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# 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`](../docs/adding-an-app.md).
|
||||
|
||||
### 1. Create a namespace
|
||||
|
||||
Add your namespace to `bootstrap/ns/apps.yaml`:
|
||||
|
||||
```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`:
|
||||
|
||||
```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.
|
||||
Reference in New Issue
Block a user