Skip to content

feat: canary / blue-green deploy strategy modeling #1

@joshua-temple

Description

@joshua-temple

Problem

Promotion is strictly linear (dev → test → uat → prod). No first-class modeling for canary or blue-green deploys — adopters who need these hand-roll them inside a single deploy callback, hiding the strategy from framework state.

Proposed

Optional strategy: field on deploys:

deploys:
  - name: app
    strategy: canary
    canary:
      percent: 10
      bake_time: 10m
      promote_callback: .github/workflows/canary-promote.yaml
      rollback_callback: .github/workflows/canary-rollback.yaml
  - name: api
    strategy: blue_green
    blue_green:
      cutover_callback: .github/workflows/cutover.yaml

Generator emits the two-stage job pattern (canary deploy → bake → promote-or-rollback). Strategy execution stays in callback code; framework owns sequencing, state, and observability.

Out of scope

GH Deployments API integration for canary status surfacing — see the extension-points architecture issue.

Schema-reserve note

The field shape (strategy:, canary:, blue_green:) must be designed into the v1 schema so it can be reserved during any freeze. Implementation can land in a later minor without a breaking change. Adopters who need canary later don't have to fork the orchestration model.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions