Phase 2: Move non-critical services to k3s #2

Open
opened 2026-05-04 19:36:42 +00:00 by agent-cos · 1 comment

Goal

Migrate lightweight services (MeOS Dashboard, MCP servers) to k3s. Free RAM on n97-1.

Tasks

  • Deploy MeOS Dashboard manifest: kubectl apply -f apps/meos-dashboard/deployment.yaml
  • Deploy OpenBrain MCP on rpi4-1 (ARM): kubectl apply -f apps/openbrain/deployment.yaml
  • Deploy MCP servers on rpi4-1: kubectl apply -f apps/mcp-servers/deployment.yaml
  • Taint ARM nodes: kubectl taint nodes rpi4-1 arm64=true:NoSchedule (same for rpi4-2)
  • Verify ARM deployments have correct tolerations
  • Update n97-1 nginx upstreams to point at k8s ClusterIP services
  • Disable bare-metal MCP services on n97-1
  • Verify: OpenBrain, forgejo-mcp, lean-experiment still functional

Acceptance

  • MeOS Dashboard accessible via k8s service
  • MCP servers running on ARM worker
  • n97-1 RAM freed by ~200-400MB from moved services
  • All services still reachable from os.scoble.me

Depends On

  • #1 (k3s control plane must be up)
  • rpi4-1 and rpi4-2 must be bootstrapped as workers first (see #3)
## Goal Migrate lightweight services (MeOS Dashboard, MCP servers) to k3s. Free RAM on n97-1. ## Tasks - [ ] Deploy MeOS Dashboard manifest: `kubectl apply -f apps/meos-dashboard/deployment.yaml` - [ ] Deploy OpenBrain MCP on rpi4-1 (ARM): `kubectl apply -f apps/openbrain/deployment.yaml` - [ ] Deploy MCP servers on rpi4-1: `kubectl apply -f apps/mcp-servers/deployment.yaml` - [ ] Taint ARM nodes: `kubectl taint nodes rpi4-1 arm64=true:NoSchedule` (same for rpi4-2) - [ ] Verify ARM deployments have correct tolerations - [ ] Update n97-1 nginx upstreams to point at k8s ClusterIP services - [ ] Disable bare-metal MCP services on n97-1 - [ ] Verify: OpenBrain, forgejo-mcp, lean-experiment still functional ## Acceptance - MeOS Dashboard accessible via k8s service - MCP servers running on ARM worker - n97-1 RAM freed by ~200-400MB from moved services - All services still reachable from os.scoble.me ## Depends On - #1 (k3s control plane must be up) - rpi4-1 and rpi4-2 must be bootstrapped as workers first (see #3)
Owner

Triage: Still pending — blocked on workers (#3)

Phase 2 depends on:

  • #1 ✅ (control plane is running — closed)
  • #3 ❌ (workers not bootstrapped — none of n97-2, n97-3, rpi4-1, rpi4-2 are joined)

Cannot proceed until at least one worker node (preferably rpi4-1 or rpi4-2) is joined to the cluster and tainted for ARM workloads.

## Triage: Still pending — blocked on workers (#3) Phase 2 depends on: - #1 ✅ (control plane is running — closed) - #3 ❌ (workers not bootstrapped — none of n97-2, n97-3, rpi4-1, rpi4-2 are joined) Cannot proceed until at least one worker node (preferably rpi4-1 or rpi4-2) is joined to the cluster and tainted for ARM workloads.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sscoble/devops#2
No description provided.