k3s on rbpi (linux/arm64). make deploy-rbpi builds the image, imports it over SSH, and applies manifests with make deploy.
kubectland kubeconfig for the rbpi cluster- Docker
- SSH
Host rbpi(see below)
export KUBECONFIG=/path/to/alesrpi-lab-iac/kubeconfig.yaml
kubectl get nodes -o wide~/.ssh/config:
Host rbpi
HostName 192.168.1.67
User alessandro
IdentityFile /path/to/alesrpi-lab-iac/alesrpi
If the key is not in ssh config, pass it once:
make deploy-rbpi RBPI_SSH_KEY=$HOME/path/to/alesrpi-lab-iac/alesrpiexport KUBECONFIG=/path/to/alesrpi-lab-iac/kubeconfig.yaml
make deploy-rbpiThis runs:
docker build --platform linux/arm64(tag defaults tok8s-redis-workload-scaler:manual-<timestamp>; override withRBPI_IMG=...)docker save | ssh rbpi sudo k3s ctr images importmake deploy IMG=<that tag>kubectl getpods ink8s-redis-workload-scaler-systemand the CRD
After deploy, revert the image pin if kustomization changed:
git checkout -- config/manager/kustomization.yamlmake undeployApply the sample CR and your worker Deployment (name must match scaleTargetRef in the CR, default worker-deployment):
kubectl apply -f config/samples/autoscaling_v1alpha1_redisstreamscaler.yamlRedis must be reachable at the address in the CR (e.g. redis.default.svc.cluster.local:6379). Makefile targets exec into deploy/redis in default:
make scale-load # XADD backlog on stream events / group workers
make scale-observe # watch replicas + scaler status (Ctrl+C to stop)
make scale-load-clear # XTRIM stream; scale-down waits for cooldownPeriodOverride defaults if needed: LOAD_NS, LOAD_REDIS_DEPLOY, LOAD_STREAM, LOAD_GROUP, LOAD_COUNT, LOAD_DEPLOY, LOAD_SCALER.
Push to main builds an arm64 image on GHCR and runs make deploy on rbpi via Tailscale. See .github/workflows/deploy.yaml.
| Symptom | Fix |
|---|---|
Degraded / no such host for redis |
redis.<namespace>.svc.cluster.local:6379 |
Manager ImagePullBackOff |
Image must be arm64 and present on rbpi (local import or GHCR pull) |
Worker ImagePullBackOff |
Fix your worker Deployment image |
| SSH import fails | Check Host rbpi in ~/.ssh/config or set RBPI_SSH_KEY |