37 lines
1.3 KiB
Markdown
37 lines
1.3 KiB
Markdown
# k8s-asxpio-gitops
|
|
|
|
GitOps repo for self-hosted Kubernetes cluster on Hetzner, managed by ArgoCD.
|
|
|
|
## Cluster
|
|
|
|
- **Provider:** Hetzner Cloud, `hel1` (Helsinki)
|
|
- **Infrastructure:** [../hcloud-k8s](../hcloud-k8s) (Terraform, [hcloud-k8s/kubernetes](https://registry.terraform.io/modules/hcloud-k8s/kubernetes/hcloud) module v3.27.2)
|
|
- **OS:** Talos Linux
|
|
- **Nodes:** 1x control plane (`cx23`) + 2x worker (`cx23`) — each 2 vCPU, 4 GB RAM
|
|
- **Ingress:** Traefik v35.0.1 (Helm), Let's Encrypt TLS via ACME TLS challenge (`certs@asxp.io`)
|
|
- **Storage:** `hcloud-volumes` StorageClass
|
|
- **Cert Manager:** enabled
|
|
- **Terraform state:** S3-compatible object storage (`hel1.your-objectstorage.com`, bucket `k8s-asxpio-main`)
|
|
|
|
## DNS
|
|
|
|
`*.k8s.asxp.io` — wildcard pointing to cluster ingress IP.
|
|
|
|
## Apps
|
|
|
|
| App | Namespace | URL |
|
|
|-----|-----------|-----|
|
|
| ArgoCD | `argocd` | — |
|
|
| CNPG Operator | `cnpg-system` | — |
|
|
| PostgreSQL (HA) | `postgres` | 3 instances (CloudNativePG) |
|
|
| Forgejo | `forgejo` | `git.czsk.it` / `git.asxp.io` |
|
|
| WatchParty | `watchparty` | `watch.k8s.asxp.io` |
|
|
|
|
## Structure
|
|
|
|
```
|
|
apps/
|
|
app-of-apps.yaml # bootstrap — points ArgoCD at this directory
|
|
<app>.yaml # ArgoCD Application per app
|
|
<app>/ # raw manifests per app
|
|
```
|