Skip to content

acelinkio/argocd-homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

GitOps driven homelab using ArgoCD with a flat repository structure.

Project Structure

.
├── .github/                   # Github related files
│   └── renovate.json5         # RenovateBot configuration
├── .vscode/                   # Visual Studio Code configs
│   ├── extensions.json        # Extension recomendations
│   └── settings.json          # Project specific settings
├── docs/                      # Documentation
│   ├── faq.md                 # Frequently Asked Questions
│   ├── netowrk.md             # Networking details
│   └── setup.md               # Installation steps
├── manifest/                  # Watched by ArgoCD ApplicationSet
│   └── $namespace.yaml        # Per namespace, App of Apps
├── .gitignore                 # Ignored files list
└── README.md                  # This file

ArgoCD Structure

An ApplicationSet dynamically generates an Applications for each yaml file inside of the manifest directory. That Application is AppOfApps, mirroring the filename that it was generated from. That AppOfApps may contain child Application resources for deploying Helm charts.

Logical Rendered Example
erDiagram
    ApplicationSet ||--|{ AppOfApps : "each manifest/*.yaml generates"
    AppOfApps ||--o{ Application : "may contain additional"
flowchart TD
    A[ApplicationSet] -----> B(kube-system.yaml)
    B -----> D[coredns]
    B -----> E[cilium]
    B -----> F[metrics-server]

Docs