Use the dedicated pgbouncer cluster for production
Production Change - Criticality 1 C1
Related to #895 (closed)
| Change Objective | Describe the objective of the change |
|---|---|
| Change Type | Type described above |
| Services Impacted | ~"Service:pgbouncer" ~"Service:Sidekiq" ~"Service:Web" ~"Service:API" ~"Service:Git" |
| Change Team Members | @aamarsanaa |
| Change Severity | How critical is the change |
| Buddy check | @ahmadsherif @abrandl |
| Tested in staging | The change was tested on staging environment |
| Schedule of the change | Date and time (with timezone) |
| Duration of the change | Time to execute the change ( including a possible rollback ) |
| Downtime Component | if yes how many minutes |
| Detailed steps for the change. Each step must include: | See below |
Steps, Part 1
-
Stop chef-clienton all clients:knife ssh 'roles:gprd-base-fe OR roles:gprd-base-be' "sudo service chef-client stop" -
Merge and apply https://ops.gitlab.net/gitlab-cookbooks/chef-repo/merge_requests/1248 -
Apply the change manually on one client, make sure it's serving requests properly -
Roll-out the change gradually: e.g. knife ssh -C 2 'roles:gprd-base-fe OR roles:gprd-base-be' "sudo chef-client"
Rollback
-
Revert and apply the merge request
Steps, Part 2 (optional)
This step is only needed if we need two pgbouncer nodes to serve the clients
-
Stop chef-clienton all pgbouncer nodes:knife ssh 'roles:gprd-base-db-pgbouncer' "sudo service chef-client stop" -
Merge and apply https://ops.gitlab.net/gitlab-cookbooks/chef-repo/merge_requests/1249 -
Run chef-clienton the current pgbouncer leader -
Run chef-clienton the rest of the nodes
Rollback
-
Revert and apply the merge request -
HUP and/or restart clients to force them to drop connections to the no-longer-be-used pgbouncer node
Edited by Ahmad Sherif