Skip to content

[fix] Use fully qualified names for in-cluster service URLs - #409

Open
eabrouwer3 wants to merge 4 commits into
tryretool:mainfrom
eabrouwer3:fix/fqdn-service-hosts
Open

eabrouwer3 wants to merge 4 commits into
tryretool:mainfrom
eabrouwer3:fix/fqdn-service-hosts

Conversation

@eabrouwer3

@eabrouwer3 eabrouwer3 commented Oct 20, 2026 •

Copy link
Copy Markdown

Fixes #348.

Retool's HTTP client uses cacheable-lookup, which resolves bare service names without applying the DNS search list in resolv.conf. Its fallback to dns.lookup runs only for ENOTFOUND/ENODATA; EKS Auto Mode returns REFUSED, and AKS returns SERVFAIL (#339), leaving the backend crash-looping with Could not detect healthy Code Executor. Overriding .Values.env duplicates the chart's entry and is rejected by server-side apply.

The templates in charts/retool/templates/ append .<namespace>.svc.<clusterDomain> to chart-generated in-cluster hosts, including the workflow backend and JS executor hosts consumed by charts/retool/templates/deployment_rr_app_serving_layer.yaml. clusterDomain defaults to cluster.local and supports clusters with a custom DNS domain. Object names and explicit URL overrides are unchanged. charts/retool/Chart.yaml bumps the chart to 6.13.3.

Rendering checks found only the intended host changes and confirmed custom-domain support. We run a backport of this change on EKS Auto Mode (Retool 4.34.9, chart 6.12.3): the backend, workflow backend and workflow worker now reach the code executor, where the unpatched chart crash-looped.

The backend's HTTP client resolves hosts with cacheable-lookup, which calls
dns.resolve4/resolve6 (c-ares) and never applies the resolv.conf search
list. A bare service name such as `retool-code-executor` only works today
because most cluster DNS servers answer it with NXDOMAIN, which makes
cacheable-lookup fall back to dns.lookup. EKS Auto Mode's DNS answers
REFUSED and AKS's answers SERVFAIL, so the fallback never runs and the
backend crash-loops with "Could not detect healthy Code Executor".

Append `.<namespace>.svc.cluster.local` to every in-cluster service URL
and host the chart passes to Retool, matching the agent-sandbox proxy URL
the chart already builds this way.

Fixes tryretool#348.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; both previous findings are addressed and no new actionable issues were found.

Reviews (2) · Last reviewed commit: "[chore] Keep the Temporal host comment w..." · Reviewed by Greptile

Comment thread charts/retool/templates/deployment_backend.yaml Outdated
Comment thread charts/retool/templates/deployment_backend.yaml Outdated
eabrouwer3 and others added 2 commits October 20, 2026 12:25
Add a clusterDomain value (default cluster.local) and a retool.serviceDomain
helper, and build every in-cluster service address from it, including the
existing agent-sandbox proxy URL. Hard-coding svc.cluster.local would break
clusters with a different DNS domain, where the bare names used to resolve
through the search list.

Also qualify WORKFLOW_BACKEND_HOST and JS_EXECUTOR_INGRESS_DOMAIN in the
separate app-serving layer, which the previous commit missed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The new serviceDomain helper sat between "Set Temporal frontend host" and
the helper that comment describes, with a docstring that only restated
what the helper's one line does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: gpt-6.1-sol <codex@openai.com>
@eabrouwer3
eabrouwer3 marked this pull request as ready for review October 20, 2026 18:32
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T15:00:47.131193Z c8214c2 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] CODE_EXECUTOR_INGRESS_DOMAIN uses the unqualified service name and cannot be overridden via .Values.env

2 participants