.
├── infrastructure/ # Infrastructure components
│ ├── controllers/ # Kubernetes controllers
│ │ └── argocd/ # ArgoCD configuration and projects
│ ├── networking/ # Network configurations
│ ├── storage/ # Storage configurations
│ └── infrastructure-components-appset.yaml # Main infrastructure ApplicationSet
├── monitoring/ # Monitoring components
│ ├── k8s-monitoring/ # Kubernetes monitoring stack
│ └── monitoring-components-appset.yaml # Main monitoring ApplicationSet
├── my-apps/ # User applications
│ ├── ai/ # AI-related applications
│ ├── media/ # Media applications
│ ├── development/ # Development tools
│ ├── external/ # External service integrations
│ ├── home/ # Home automation apps
│ ├── privacy/ # Privacy-focused applications
│ └── myapplications-appset.yaml # Main applications ApplicationSet
├── docs/ # Documentation
│ ├── argocd.md # ArgoCD setup and workflow
│ ├── network.md # Network configuration
│ ├── storage.md # Storage setup and management
│ └── structure.md # This file
└── README.md # Project overview
-
Three-Tier Structure
- Infrastructure components (foundation layer)
- Monitoring components (observability layer)
- User applications (workload layer)
-
Application Categories
- Each category folder contains related applications
- Standardized application structure in each folder
-
Simplified Management
- One ApplicationSet per tier
- Clear separation of concerns
- Controlled deployment order through sync waves
- Manages all infrastructure components
- Uses infrastructure project
- Deploys with negative sync wave (-2) to ensure it runs first
- Pattern:
infrastructure/*/*
- Manages all monitoring components
- Uses infrastructure project
- Deploys with neutral sync wave (0)
- Pattern:
monitoring/*/*
- Manages all user applications
- Uses ai project (provides necessary permissions)
- Deploys with positive sync wave (1) to ensure it runs last
- Pattern:
my-apps/*/*
Infrastructure components and configurations:
controllers/
: Core Kubernetes controllers (ArgoCD, Cert-Manager, etc.)networking/
: Network configurations (Cilium, Cloudflared, etc.)storage/
: Storage configurations and classesdatabase/
: Database operators and configurations
Monitoring and observability components:
k8s-monitoring/
: Kubernetes monitoring stack (Prometheus, Grafana, etc.)- Additional monitoring components as needed
User applications organized by category:
ai/
: AI-related applications (Ollama, ComfyUI, etc.)media/
: Media applications (Plex, Jellyfin, etc.)development/
: Development tools (Kafka, Temporal, etc.)external/
: External integrations (Proxmox, TrueNAS, etc.)home/
: Home automation (Frigate, Wyze-Bridge, etc.)privacy/
: Privacy applications (Searxng, Libreddit, etc.)
Each application follows a standard structure:
deployment.yaml
: Main application deploymentservice.yaml
: Service configurationconfigmap.yaml
: Application configurationhttproute.yaml
: Gateway API routeskustomization.yaml
: Kustomize configurationpvc.yaml
: Persistent volume claims (if needed)