# Infrapuzzle Infrapuzzle is the newly restructured way of implementing my private infrastructure. Currently the following things are in project scope: * single node k8s "cluster" implemented with kubespray * development with Vagrant * host directory storage * Ingress via host network ## terraform [Documentation in subfolder](./terraform/README.md). It takes care of setting DNS records on OVH nameservers. ## bootstrap [Documentation in subfolder](./bootstrap/README.md). It takes care of setting up the k8s cluster itself, including a vagrant dev environment. ## k8s [Documentation in subfolder](./k8s/README.md). The services themselfes. ## AI & Agents The cluster hosts local AI capabilities and agents. ### LLM (Ollama) Hosts a local LLM (Llama 3 8B) for inference. * **Deploy**: `kubectl apply -f k8s/llm/ollama.yaml` * **Verification**: Check pods in `llm` namespace. ### OpenClaw An autonomous AI agent platform. 1. **Create Namespace**: `kubectl apply -f k8s/openclaw/namespace.yaml` 2. **Configure Secrets**: * Edit `k8s/openclaw/openclaw.secret.yaml`. * Replace `change-me` with your Gemini API Key. * **Encrypt**: Ensure the file is encrypted with `git crypt` before committing! 3. **Deploy**: `kubectl apply -f k8s/openclaw/openclaw.secret.yaml` 4. **Access**: `https://openclaw.haumdaucher.de` ## Links used * [ingress via host network](https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#via-the-host-network) * [Install K8s with Kubespray](https://kubernetes.io/docs/setup/production-environment/tools/kubespray/)