Skip to content
This repository has been archived by the owner on Apr 27, 2023. It is now read-only.

Implement dev -> staging -> prod #944

Closed
11 of 13 tasks
erkannt opened this issue May 21, 2020 · 4 comments
Closed
11 of 13 tasks

Implement dev -> staging -> prod #944

erkannt opened this issue May 21, 2020 · 4 comments
Assignees
Labels
Infrastructure General Infrastructure work

Comments

@erkannt
Copy link
Contributor

erkannt commented May 21, 2020

Requires #787, #1067

DoD:

  • prod env needs to match staging as closely as possible
  • only update prod if staging is healthy and at target version (k8s job? flagger?)
  • run acceptance tests as part of staging deploy
  • handle failed acceptance tests (keep in failed state for analysis/rollback)
  • run smoketests on production deploy

Informs #1042

ToDo:

  • research approach >>> autoupdate staging with flux, run tests on prod blue/green using helm and flagger
  • add browsertests to chart with helm testing hook
  • install flagger
  • setup canary for production (currently only for canary)
  • setup canaries for submission and adaptor
  • setup alerting
  • docs on adding/editing canary
  • docs on status/debugging canary
@erkannt erkannt added the Infrastructure General Infrastructure work label May 21, 2020
@erkannt erkannt added this to the Deployment Cluster milestone May 21, 2020
@erkannt
Copy link
Contributor Author

erkannt commented Jun 8, 2020

Weavework pattern for going from stg to prod is to use istio for for canary deployments.

Their kubediff tool might allow for a simpler approach. For example it already includes a compare-images command.

I wonder if the check that staging is green and matches the desired prod image versions is best run as part of the deploy or as part of a PR pipeline that somehow queries the cluster.

Or do we move from stg to prod release via a retag of a somehow confirmed stg image.

@erkannt
Copy link
Contributor Author

erkannt commented Jun 8, 2020

It appears that Flagger doesn't require a service mesh. It can also be used with nginx-ingress. We could run smoketests via helm hook and read only load tests.

Not sure what the best way to assert a successful test in the staging env:

@erkannt erkannt changed the title dev -> staging -> prod Implement dev -> staging -> prod Jun 16, 2020
@erkannt erkannt added blocked and removed blocked labels Jun 16, 2020
@erkannt erkannt self-assigned this Jun 22, 2020
@erkannt
Copy link
Contributor Author

erkannt commented Jul 13, 2020

Waiting for staging to be fixed.

@erkannt erkannt removed the blocked label Jul 17, 2020
@erkannt
Copy link
Contributor Author

erkannt commented Jul 21, 2020

Closing this and after spinning last two todos into their own issues: #1190 #1191

@erkannt erkannt closed this as completed Jul 21, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Infrastructure General Infrastructure work
Projects
None yet
Development

No branches or pull requests

1 participant