Skip to content

Provision DO_CONFORMANCE_API_TOKEN secret on workflow + downstream repos for conformance smoke + ad-hoc dry-runs #542

@intel352

Description

@intel352

Surfaced by

Core-dump C-1 staging-PG cutover (PR #190 incoming). TC1.5 cascade dry-run against the wfctl-conformance@ DO account was blocked because the secret is not yet provisioned anywhere visible.

Behavior

`conformance-budget-check.yml` (W-7 of 12, merged in PR #535) detects an unset `DO_CONFORMANCE_API_TOKEN` and emits a notice + skips the balance check. The downstream smoke gate has `needs: [budget-check]` so it cascades to a no-op too. From the W-7 commit:

On PRs from forks (and on the W-7 PR itself, before operators provision the wfctl-conformance@ token), the secret is unset. Treat that as "kill-switch not yet armed" and emit a notice instead of curl-401 failing the job.

Effect

  • W-7 conformance smoke gate is currently a no-op on every PR (silent kill-switch).
  • Ad-hoc cascade dry-runs (e.g. C-1 TC1.5) cannot run locally either — operator has no way to source the token.
  • Downstream production-touch PRs (C-1 TC2) are pushed to skip TC1.5 and go straight to live cutover, losing the defence-in-depth dry-run.

Expected

  1. Operator (jon@langevin.me) provisions the wfctl-conformance@gocodealone.dev DO account token per docs/conformance-runbook.md § "Token rotation".
  2. Token added as a repository secret on:
    • `GoCodeAlone/workflow` (so W-7 smoke gates fire on every PR)
    • `GoCodeAlone/workflow-plugin-{aws,gcp,azure,digitalocean,tofu,ci-generator}` (per-plugin smoke gates)
    • Optionally: `GoCodeAlone/core-dump` and other downstream consumers that may want to dry-run cascade replaces (TC1.5 pattern).
  3. Document the local-operator workflow for retrieving the token (1Password? Bitwarden? team-lead-issued?) so future ad-hoc dry-runs can run.

Workaround for now

Skip TC1.5 dry-runs; rely on TC2's W-6 `--allow-replace=` semantics + post-cutover `/healthz` verification + git-revertible `infra.yaml`. Inferior to a real dry-run but it's what's available pre-token-provisioning.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions