No description
- Python 88.9%
- Makefile 9.6%
- Dockerfile 1.3%
- Shell 0.2%
| docs | ||
| microcontroller-wol-agent | ||
| node-agent | ||
| operator | ||
| wol-agent | ||
| .gitignore | ||
| agent.yaml | ||
| AGENTS.md | ||
| CONTRIBUTING.md | ||
| kind-cluster.yaml | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
k8s-power-manager
A Kubernetes operator for managing power on bare-metal nodes that have no BMC. Nodes are shut down and woken via Wake-on-LAN based on utilization thresholds. Works alongside kube-downscaler.
Status
Implemented. Uses utilization-based power management.
Quick start
# Deploy WOL agent (Raspberry Pi or similar)
cd wol-agent && cp .env.example .env && docker compose up -d
# Label nodes
kubectl label node <node-name> power-manager/managed=true
# Deploy operator
kubectl apply -f operator/kubernetes/power_management_policy_crd.yaml
kubectl apply -f operator/kubernetes/deployment.yaml
# Create policy
kubectl apply -f operator/kubernetes/example_policy.yaml
Documentation
Full documentation: docs/
- Getting started - Deployment guide
- Architecture - System design
- Components - WOL agent, node-agent, operator
- CRD reference - PowerManagementPolicy spec
- Troubleshooting
Repository structure
wol-agent/ # Wake-on-LAN Docker agent
wol-agent-micropython/ # ESP32/Pico W MicroPython agent
node-agent/ # In-cluster shutdown agent
operator/ # kopf Kubernetes operator
docs/ # Full documentation