-
Notifications
You must be signed in to change notification settings - Fork 365
Description
We propose adding proper draining behavior to the cc_uploader process. This would ensure that ongoing droplet uploads after staging are allowed to complete gracefully when a Cloud Controller (CC) API VM is drained or restarted (e.g., during a BOSH recreate or deployment update). We observed cases where a droplet upload after staging failed because the cc_uploader process was terminated when the CC API VM was updated. We believe implementing a drain script or mechanism for cc_uploader would allow the process to wait for uploads to complete before shutting down.
There was a first approach:
#4296
cloudfoundry/cc-uploader#195
cloudfoundry/capi-release#529
but we needed to revert capi PR 529 because it broke CF deployments were cc_uploader is not on the same VM as cloud_controller_ng job.
We would like to discuss what implementation options we have.
First thoughts by @Samze were written down in the revert PR:
- Investigate a way to generically drain uploads from any source in nginx rather than specifically in cc_uploader.
Current timeout is 10 seconds - Find a way to sync draining between jobs without requiring co-location.
- Keep the co-location requirement for draining but behind a capi-property.