---
id: w1/m23/t003
title: Mock cluster — label workers bex.co/pool=platform so GitOps schedules locally
worker: worker1
status: todo
estimate: 30m
depends_on: []
---

## Objective

Make the local CAPD mock able to run the platform GitOps stack. The m19 t003 sweep pinned every platform chart to `nodeSelector bex.co/pool: platform` + a `bex.co/platform` toleration — labels/taints no mock node carries — so on the mock the whole stack goes Pending.

## Context

- Affected on the mock: kratos/hydra/openfga/openbao, CNPG clusters, prometheus/loki, operator/api/dashboard.
- Prefer the label fix: `scripts/mock-cluster.sh` labels its worker nodes `bex.co/pool=platform` at create (no taint needed — selectors match; tolerations are no-ops on untainted nodes). Keeps local/prod values identical.
- Alternative: a nodeSelector-neutralizing sweep of `deploy/gitops/overlays/local/values/*.values.yaml` (the OpenBao local-values pattern exists) — more surface, don't prefer.

## Steps

1. In `scripts/mock-cluster.sh`, after workers join, `kubectl label node … bex.co/pool=platform`.
2. Re-run the mock and confirm the platform pods leave Pending and schedule.

## Files

- `scripts/mock-cluster.sh`

## Acceptance criteria

- [ ] After `bash scripts/mock-cluster.sh`, platform GitOps pods schedule (no `bex.co/pool` Pending wall).
- [ ] Local and prod GitOps values remain identical (no local-only nodeSelector fork).

## Out of scope

- Taints on mock nodes (unnecessary); prod pool changes.
