Epic: automated autoscaling release workflow
Omrigan opened this issue · comments
Motivation
A continuation of https://github.com/neondatabase/cloud/issues/9672 and #837
We now have the script, but this is not a final state.
Requirements
Ideally, we want to:
- Have a button (e. g. in GitHub Actions) so that it is easy to do the deployments without the need to setup local environment to run scripts, etc
- Have a way to record actions which were taken as a part of a release for an audit
- Be able to specify a custom roll-out order for components
- Have codereviews/approvals for ops work
- Have a machine-readable compatibility matrix (e. g. for #580 and #761)
- Engineers not from the core autoscaling team during oncall are able to perform most common fixes, like:
- pushing an emergency hotfix to the region
- doing a rollback of a component
- etc
DoD
- Deployment system covers all regular operational scenarios
- A subset of features from
Requirements
Implementation ideas
- To have a desired state of things commited into a special branch (e. g. prod) and a idempotent reconciliation process, triggered by a push to that branch.