Skip to content

proposal: support blue/green deployments #33

Description

@atkrad

Rolling updates mix old and new pods under one Service. For risky releases, run a full new version (green) beside the live one (blue), smoke-test it, then flip traffic. Abort by flipping back.

v1 is native Service slots: two workloads plus an active Service. No extra cluster controllers.

components:
  api:
    image: ghcr.io/acme/api:${TAG}
    role: service
    expose: true
    release:
      strategy: blueGreen
deployah deploy production
deployah release status production
deployah release promote production
deployah release abort production

Optional preview hostname for green. Plan shows which slot is live. Needs about 2x capacity during the window. Data and migrations must be backward compatible.

Canary and weights are #34. Helm rollback is #29. Rolling knobs (#19) do not apply when strategy is blueGreen. Tasks are not blue/green.

Phase 2 can emit Argo Rollouts or Flagger when the platform sets progressiveDelivery.provider. Local kind stays on native slots.

Related: #19, #25, #29, #34.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/deployDeploy and plan session flowarea/helmChart render, release, post-renderarea/specdeployah.yaml schema or loadingkind/proposalDesign discussion before or during implementation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions