본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고