fix(k3d): fix prole-registry squatting port 5000 in init_registry.sh

The shell path (init_registry.sh apply_registry) is the real k3d registry
entry point. It checked 'k3d registry list knoe-registry' which returned 0
because k3d-knoe-registry existed in 'created' state, so the create was
skipped and k3d-prole-registry (the port-5000 squatter) was never touched.

- init_registry.sh: before the knoe-registry ensure, detect k3d-prole-registry
  via both k3d and docker inspect, then stop/rm the Docker container regardless
  of whether k3d manages it; also detect knoe-registry in non-running state and
  nuke+recreate it (port was unavailable on the previous attempt)
- k3d_registry.py: same cleanup logic for the Python fallback path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
chrisfu 2026-05-03 00:43:54 -07:00
parent 055069c1f8
commit e10d4f3782

View File

@ -342,8 +342,26 @@ apply_registry() {
mode=$(current_mode)
if [[ "$mode" == "k3d" ]]; then
if command -v k3d >/dev/null 2>&1; then
# Remove legacy prole-registry that may be squatting on port 5000.
# It may be k3d-managed (delete via k3d) or a bare Docker container (rm -f).
if k3d registry list prole-registry >/dev/null 2>&1 \
|| docker inspect k3d-prole-registry >/dev/null 2>&1; then
echo "Removing legacy k3d-prole-registry from port 5000 ..."
k3d registry delete prole-registry >/dev/null 2>&1 || true
docker stop k3d-prole-registry >/dev/null 2>&1 || true
docker rm -f k3d-prole-registry >/dev/null 2>&1 || true
fi
echo "Ensuring k3d registry 'knoe-registry' on port 5000 ..."
if ! k3d registry list knoe-registry >/dev/null 2>&1; then
# If knoe-registry was created but never started (port was taken), nuke and recreate.
if k3d registry list knoe-registry >/dev/null 2>&1; then
if ! docker ps --format '{{.Names}}' 2>/dev/null | grep -qE '^k3d-knoe-registry$'; then
echo "k3d-knoe-registry exists but is not running; recreating ..."
k3d registry delete knoe-registry >/dev/null 2>&1 || true
docker rm -f k3d-knoe-registry >/dev/null 2>&1 || true
k3d registry create knoe-registry --port 5000 || true
fi
else
k3d registry create knoe-registry --port 5000 || true
fi
local cluster_name