docs: document the attach deployment topology - #611
Conversation
Compose and Kubernetes shapes for a detached scheduler with an executor sidecar, the security requirements for the attach port, and the honest limits.
The guide showed 7749; the published image EXPOSEs 7777.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe operations guide now documents attached executors with Docker Compose and Kubernetes Unix-socket or TCP deployments. It adds security and scaling guidance, updates executor examples to port ChangesAttached executor deployment
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
docs/content/docs/shared/guides/operations/deployment.mdx (1)
1626-1628: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueMatch the phrasing of the other checklist items.
Every other item in this checklist is an imperative statement. This item opens with a question. A conditional clause keeps the list uniform and states the condition before the action.
♻️ Proposed wording
-- [ ] Running [attached executors](`#attached-executors`)? Keep the attach port off - the host network, set `TASKITO_ATTACH_TOKEN` for any bind but loopback, and - terminate mTLS in front of it +- [ ] For [attached executors](`#attached-executors`), keep the attach port off the + host network, set `TASKITO_ATTACH_TOKEN` for any bind but loopback, and + terminate mTLS in front of it🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/content/docs/shared/guides/operations/deployment.mdx` around lines 1626 - 1628, Rewrite the checklist item around “attached executors” as an imperative conditional statement rather than a question, placing the condition first and preserving the existing actions: keep the attach port off the host network, set TASKITO_ATTACH_TOKEN for non-loopback binds, and terminate mTLS in front of it.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/content/docs/shared/guides/operations/deployment.mdx`:
- Around line 672-679: In the executor manifest example, replace the empty
command array under the executor container with a clear comment placeholder
indicating that an SDK-specific command must be supplied. Keep the surrounding
image, environment variables, and per-SDK command guidance unchanged.
- Around line 643-650: Update the adjacent deployment comment to state that the
Unix socket mode is derived from 0777 & ~umask, with 0755 resulting from the
common umask 022, rather than presenting 0755 as fixed. Preserve the
access-boundary conclusion while explicitly noting that it depends on the umask
clearing group and other write permissions.
- Around line 774-777: Update the readinessProbe configuration to work when
TASKITO_DASHBOARD_AUTH is set to session: use the open readiness endpoint for an
unexposed dashboard, or configure probe credentials and send the required
Authorization header. Preserve the existing /readiness route and dashboard port.
In `@docs/content/docs/shared/guides/operations/executor.mdx`:
- Line 57: Replace all remaining 7749 references with 7777 across the Rust
examples and tests, Node and Java SDK messages and examples, and the Python CLI
message, while preserving unrelated port values and existing formatting.
---
Nitpick comments:
In `@docs/content/docs/shared/guides/operations/deployment.mdx`:
- Around line 1626-1628: Rewrite the checklist item around “attached executors”
as an imperative conditional statement rather than a question, placing the
condition first and preserving the existing actions: keep the attach port off
the host network, set TASKITO_ATTACH_TOKEN for non-loopback binds, and terminate
mTLS in front of it.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e0b3cb9f-b7c1-4cef-adf2-26fbcde98578
📒 Files selected for processing (3)
docs/content/docs/resources/changelog.mdxdocs/content/docs/shared/guides/operations/deployment.mdxdocs/content/docs/shared/guides/operations/executor.mdx
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
ByteVeda/taskito(manual)
Session auth gates /readiness, so a kubelet probe got 401 and the pod never went Ready.
Every example and error message suggested 7749, which no doc or image uses.
Closes #555. S9 of the executor-attach plan — the last piece before the Helm chart (#556).
deployment.mdxgains an## Attached executorssection covering the split topology end to end.What it documents
executorcommand. No new build, no new pull.emptyDir(scheduler as a native sidecar, executor from the app image), and one scheduler over TCP with its own Deployment and Service.argv, mTLS terminates in a front proxy, the attach port is never published, and for a Unix socket the filesystem is the whole boundary.Two things the code says that the plan doc did not
config/listen.rsbails whenTASKITO_LISTEN_TLS_CERT/_KEYare set, so the docs say proxy-terminated mTLS with the token as the second factor.UnixListener::bindleaves the socket at umask-derived0755andconnect(2)needs write permission, so a same-pod attach only works when both containers sharerunAsUser. The manifest sets it explicitly and says why.Also
EXPOSEs 7777, as do the server README and--help. Realigned, and cross-linked to the new section.CHANGELOG.md.Follow-up not taken here
Nothing chmods the attach socket.
set_permissions(0o660)plus a documented group would make the Unix-socket case work across uids instead of relying on operators matching them. Out of scope for a docs change; worth its own issue.Verification
pnpm --dir docs lint,typecheck,check:parity(CodeTabs SDK coverage ok) and a fullbuildall pass. The section renders on all three SDK routes and the#attached-executorsanchor resolves from the checklist and the attach guide.Summary by CodeRabbit
taskito-serverdistroless container image for Linux AMD64 and ARM64, including PostgreSQL and Redis support.7777.