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.

Activity

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

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