44 lines
1.5 KiB
Markdown
44 lines
1.5 KiB
Markdown
# 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/) |