Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/henrywhitaker3/homelab


https://github.com/henrywhitaker3/homelab

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# Homelab

GitOps/IaC managed homelab using proxmox and ArgoCD

## Repo Structure

```
├── ansible # Ansible playbooks to configure vms
│   ├── inventory
│   ├── playbooks
│   └── roles
├── kubernetes # ArgoCD configurations for clusters
│   ├── k3s # The main k3s cluster
│   │   ├── apps # The definition of all services deployed in the custer
│   │   └── bootstrap # Initial bootstrapping config
│   │   ├── ArgoCD # ArgoCD helm chart
│   │   ├── manifests # Initial mainfests e.g. ArgoCD app of apps
│   │   └── sops # Any secrets that cannot be pulled from 1password (i.e. the 1password auth tokens used by ESO)
│   ├── mango # Talos cluster used for testing
│   │   ├── apps
│   │   └── bootstrap
│   │   ├── argo
│   │   ├── manifests
│   │   └── sops
├── renovate.json
├── scripts
├── terraform # Terraform config
│   ├── infra # Provisions VMs in proxmox
│   ├── talos # Configures a talos vm
│   └── vm # VM module
│   └── post # Provisions/configures the infra (e.g. minio buckets/iam, DNS config)
│   ├── adguard # Configures an adguard instance
│   └── bucket # Minio bucket module
```

## ArgoCD Structure

Apps are deployed using the app-of-apps pattern, which pulls in any file with the `.app.yaml` suffix in the cluster directory `kubernetes/{cluster}/apps`

Logical
Rendered

```mermaid
erDiagram
RootApp ||--|{ Apps : "each apps/**/*.app.yaml generates"
Apps ||--o{ Resources : ""
```

```mermaid
flowchart TD
A[RootApp]
A -----> B(cert-manager.app.yaml)
B -----> C(cert-manager resources)
A -----> D[coredns.app.yaml]
D -----> E(coredns resources)
A -----> F(metrics-server.app.yaml)
F -----> G(metrics-server resources)
```