Skip to content

CoderAIGatewayKey CRD with automatic rotation #156

Open

Description

@ThomasK33

Goal: create a Coder AI Gateway key and store it in a Kubernetes Secret. Coder shows the key only once and keys cannot be updated, so rotation is: create a new key, update the Secret, wait a grace period, delete the old key.

Open points: crash-safe rotation (never lose the only working key, never leak orphaned keys), which Coder user owns the key, Secret ownership and RBAC.

Prerequisites: the Coder SDK v2.37 bump and a security plan.

Owner: maintainer desk.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: medium

Activity

  1. self-assigned this
    on Oct 2, 2026
  2. ThomasK33 commented on Oct 2, 2026

    @ThomasK33
    MemberAuthor

    Depends on #150 (Coder SDK v2.37 bump).

  3. ThomasK33 commented on Oct 14, 2026

    @ThomasK33
    MemberAuthor

    Follow-ups from the advisor check of #370 (K11, the CoderAIGatewayKey Kind phases). Neither blocks #370: both checks can only fail falsely, never pass falsely. Owner: me, with K12 or the first licensed E2E.

    1. The 43-character shape check in gw-leak-check almost always passes: Kind runs Coder unlicensed, so no key exists, and it searches only log lines that contain coderaigatewaykey. The exact-value check is the real test. Make the shape check meaningful once a licensed E2E runs, or document it as a regression guard only.
    2. The leak check and the e2e-ns-keep ControlPlaneGone check read kubectl logs deploy/coder-k8s, which covers only the current container. An operator restart loses earlier lines and fails the check. Add --previous or read the logs of every container start.

    Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

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

Metadata

Metadata

Assignees

Labels

enhancementA proposed feature or improvement

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions