Skip to content

Add draining for cc_uploader #4351

@kathap

Description

@kathap

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions