cloudfoundry-community / cf-resource

Concourse resource for interacting with Cloud Foundry
Apache License 2.0
35 stars 63 forks source link

Replace autopilot zero down time deploys with own implementation. #72

Closed dam5s closed 5 years ago

dam5s commented 5 years ago

The goal of this change is to ensure we always use cf push as implemented in the cf CLI.

This fixes issues with zero downtime deploys of big applications (timing out during diff evaluation), and zero downtime deploys of docker based applications.

I also added a test and fix for https://github.com/concourse/cf-resource/pull/71

making commented 5 years ago

@vito Could you please prioritize this?

Since autopilot is no longer updated and it uses vendored old cli, recent changes in manifest.yml are not supported.

For example, buildpacks field is not supported (see the error message below) while buildpack field has already been deprecated. Currently using cf-resource forces us to keep on using legacy fields.

error: Error reading manifest file:
The following manifest fields cannot be used with legacy push: buildpacks
vito commented 5 years ago

Sorry! I'll take a look at this soon.

dam5s commented 5 years ago

Just rebased and resolved conflicts.

dam5s commented 5 years ago

There are three reasons I replaced Autopilot:

I did not cover all the cases because they didn't seem to cover any cases that would occur in the context of a CI pipeline.

So far I have been using this altered version of the cf-resource for a few pipelines and it seems to cover all the cases that pipelines seem to have... but I could be wrong.

It now does support all the cf push options which is why I did the change in the first place.

Happy to re-implement the missing edge cases if it happens to cover cases that would be useful to the cf-resource.

vito commented 5 years ago

Sounds good. :+1: