跳到正文
cccskills
免费在 GitHub 公开

add-addressing-mode

Add a new addressing mode to Turnfleet - implement Planner and Renderer, golden tests, an e2e case and an ADR. Use when a new way of assigning relay addresses or port ranges is needed.

中文简介正在准备中。当前显示原文说明。

Hazmi35/turnfleet星标 2(GitHub 2 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md2.6 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Adding an addressing mode

An addressing mode answers two questions: which node does a relay run on, and which public relay identity (address, port range) does it own. Anything that does not change capacity accounting is not a new mode.

  1. Extend the enum. api/v1alpha1/AddressingMode plus the +kubebuilder:validation:Enum marker. Adding a value breaks every switch over the type by design, so fix them all (exhaustive enforces it).
  2. Implement internal/relay.Planner for the mode:
    • Deterministic ordering (sort nodes and addresses) so identities are stable across restarts and controller failover.
    • A candidate set of relay identities: (address, disjoint port range). Prove disjointness, do not assume it.
    • A relay moves only when its node or its address disappears. Anything else is a capacity bug the e2e suite will not catch.
    • Capacity honesty: if the mode shares one IP between relays, the plan must say so (portsTotal sums to one IP's port space, not more).
  3. Implement internal/relay.Renderer for the mode: listening address, relay address, -E/-X mapping, port range, listeners, realm, secret, denied peers. Every coturn flag must already appear in internal/relay/testdata/coturn-4.18.0-r0-help.txt. Before adding a flag, re-capture that file from the pinned image (docker run --rm <pinned coturn> turnserver --help) and update docs/adr/0008-coturn-config-rendering.md.
  4. Golden tests, one file per mode under internal/relay/testdata/, plus a planner test for stability, rebalancing and disjointness. The FuzzRenderer target must still pass.
  5. Webhook validation for mode-specific config in internal/webhook/v1alpha1/turnpool_webhook.go: required fields present, forbidden fields absent, ranges partitioned without overlap.
  6. An e2e case in test/e2e/ that proves the mode with real relays: the advertised address is the expected one, the ranges are disjoint, and each relay answers a real TURN Allocate. Fixtures go in test/fixtures/.
  7. An ADR docs/adr/NNNN-addressing-mode-<name>.md: what the mode is for, what it costs, what capacity it actually adds (often none), and what it forbids. Update the modes table in docs/adr/0001-addressing-modes.md and docs/capacity-model.md in the same change.
  8. Prove it: make ci then make test-e2e.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Change the TURNPool API types safely - edit types and markers, regenerate, update webhooks, tests and docs. Use whenever a field is added, removed or re-marked in api/v1alpha1.

中文简介正在准备中。当前显示原文说明。

Hazmi35/turnfleet22026年10月25日 更新

Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/spec asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".

中文简介正在准备中。当前显示原文说明。

Hazmi35/turnfleet22026年10月25日 更新

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

中文简介正在准备中。当前显示原文说明。

Hazmi35/turnfleet22026年10月25日 更新

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

中文简介正在准备中。当前显示原文说明。

Hazmi35/turnfleet22026年10月25日 更新

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

中文简介正在准备中。当前显示原文说明。

Hazmi35/turnfleet22026年10月25日 更新

e2e-debug

免费

Debug a failing relay end to end - inspect the kind cluster, relay logs and rendered coturn config, and run turnfleet-probe by hand. Use when a relay never forms, a probe fails, or an e2e case breaks.

中文简介正在准备中。当前显示原文说明。

Hazmi35/turnfleet22026年10月25日 更新

查看 Hazmi35 的全部技能

报告此技能的问题