From 08f8ff9d880509f3b6df28af2272a6c462d15c11 Mon Sep 17 00:00:00 2001 From: aarroyo Date: Tue, 4 Aug 2026 15:38:36 -0500 Subject: [PATCH] fix(infra): core-api's values-local still told readers to use a URL that does not work MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `host.docker.internal:30080` fails inside a kind pod with `Could not resolve host` — the pod resolves through CoreDNS in the node and never sees the Docker Desktop entry. That was measured on 2026-08-04 and corrected in `kind/core-cluster.yaml` and `local-test.sh`. This file was missed, and it is the worst one to miss: its comment is where a reader looks up what to configure the Tracker with. The other two charts carry the right URL because they were written after the correction. Only core-api, written before it, kept the wrong one. Corrected to `http://-control-plane:30080` with the reason attached, since the wrong URL is the plausible one and someone will reach for it again. Also answers a question this file raised rather than registering it as a gap: `up`/`apps-up` target Docker Desktop's built-in Kubernetes, inherit these NodePort values, and were never exercised — this machine has no `docker-desktop` context, so they cannot be exercised here. Left alone deliberately and the reason written down: Docker Desktop publishes node ports on localhost itself, needing no kind config, and a pinned node port either works or fails the install with a port conflict. There is no silent-wrong mode to protect against, so there is nothing to guess at. Co-Authored-By: Claude Opus 5 --- .../helm/evolith-core-api/values-local.yaml | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/product/infra/helm/evolith-core-api/values-local.yaml b/product/infra/helm/evolith-core-api/values-local.yaml index a5dde4e5..5ad87e47 100644 --- a/product/infra/helm/evolith-core-api/values-local.yaml +++ b/product/infra/helm/evolith-core-api/values-local.yaml @@ -3,14 +3,30 @@ # # Two ways to reach it, and they are not interchangeable: # -# FROM THIS MACHINE, ad hoc — kubectl -n evolith-local port-forward svc/-evolith-core-api 8080:80 -# FROM ANOTHER CLUSTER (the Tracker) — http://host.docker.internal:30080 +# FROM ANOTHER CLUSTER (the Tracker) — http://-control-plane:30080 +# FROM THIS MACHINE — http://localhost:30080 +# or kubectl -n evolith-local port-forward svc/-evolith-core-api 8080:80 # -# The second is why `service.type` is NodePort here. A port-forward is a process +# The first is why `service.type` is NodePort here. A port-forward is a process # on the host that dies on every rollout of the Core, so it cannot be what a -# separate cluster is configured against; the node port is fixed at cluster -# creation and survives. Requires the cluster to have been created with -# `product/infra/kind/core-cluster.yaml` — the mapping cannot be added later. +# separate cluster is configured against; a pinned node port survives. +# +# NOT `host.docker.internal` — this file said that until 2026-08-04 and it is +# WRONG: inside a kind pod it fails with `Could not resolve host`, because the +# pod resolves through CoreDNS in the node and never sees the Docker Desktop +# entry. Every kind cluster joins the same `kind` Docker network, so the +# consumer reaches this cluster's NODE CONTAINER by name. Measured, after +# writing it the wrong way first; `core-cluster.yaml` and `local-test.sh` were +# corrected then and this file was missed. +# +# On KIND, `http://localhost:30080` additionally needs the cluster created with +# `product/infra/kind/core-cluster.yaml` — port mappings are fixed at creation. +# On DOCKER DESKTOP's built-in Kubernetes there is no such file and none is +# needed: it publishes node ports on localhost itself. That path is UNEXERCISED +# here (this machine has no `docker-desktop` context), and the honest reason it +# is left alone rather than guessed at: a pinned node port either works or fails +# the install with a port conflict, so it has no silent-wrong mode to protect +# against. image: repository: evolith-core-api tag: local2