2.2 KiB
2.2 KiB
AGENTS.md
[!NOTE] Infrapuzzle is the monorepo for my personal infrastructure, encompassing Kubernetes cluster provisioning, workload deployment, DNS management, and IoT monitoring.
Repository Structure & Documentation
This repository is divided into distinct domains, each with its own AGENTS.md or specialized documentation.
1. Bootstrap (bootstrap/)
- Purpose: Provisioning the single-node Kubernetes cluster (Haumdaucher).
- Tool: Kubespray (Ansible).
- Key File:
init.sh(Source of Truth for versioning). - Read: bootstrap/AGENTS.md
2. Kubernetes Workloads (k8s/)
- Purpose: Deploying applications and services to the cluster.
- Method: GitOps-style directory structure (Namespace = Folder).
- Constraints: Enforces
ingress-nginx,cert-manager(Let's Encrypt), andgit-cryptfor secrets. - Read: k8s/AGENTS.md
3. Terraform (terraform/)
- Purpose: Infrastructure as Code for external resources, primarily DNS.
- Provider: OVH (
ovh/ovh). - Scope:
- DNS Zones:
haumdaucher.de,moritzgraf.de,ameliegraf.de, and others. - Mail Config: Google Workspace MX/SPF/DKIM records.
- Cluster IP: Points domains to the Haumdaucher node IP (
136.243.23.215).
- DNS Zones:
- Usage:
cd terraform terraform init terraform apply
4. Monitoring (monitoring/)
- Purpose: IoT and physical device monitoring, separate from K8s metrics.
- Tool: ESPHome.
- Devices: Temperature sensors, plant monitors (Xiaomi/BLE), ESP32 bridges.
- Usage:
cd monitoring # Flash or update a device esphome run config/<device>.secret.yml - Network: Devices typically operate on static IPs in the
192.168.x.xrange.
Global Constraints
- Secrets:
git-cryptis used extensively. Ensure you have the unlock key before editing*.secretfiles. - Identity:
- Cluster:
haumdaucher - Primary Domain:
haumdaucher.de - User Identity:
moritzgraf.de
- Cluster: