alphagov/paas-cf

Consider using the bosh-*-resource for CF deployments

jchester opened this issue · 6 comments

This is only after a cursory skim of your pipelines, so I may have missed some special requirement.

There are three Concourse resources in the main org that can abstract away deploying with BOSH and updating releases and stemcells.

See as an example the work the Buildpacks team have done to deploy rolling versions of CF for testing.

Hi,

Thanks very much for making this suggestion; it's great to hear from people who've done it before.

At the moment, this repository bootstraps an environment's concourse and BOSH installations to enable us to run the rest of our pipeline. We wanted to get this right first, before building the rest of our workflow on.

Our aim was to run our pipelines in a consistent way, so this bootstrap phase runs from concourse too; in a concourse-lite vagrant VM. There have been a few pain points with doing this and we'd definitely be interested to hear about fast, reliable ways to bootstrap concourse from concourse.

I've had a quick look at the bosh-deployment-resource and it seems to need a working BOSH, so it's something that we'll be able to look at pretty soon.

The bosh-io-release resource seems to be for tracking the latest released version of components. At the moment we've not got a use case for that; we're probably going to use fixed versions of components like concourse and cf-release, rather than run our pipeline against the latest.

Thanks again for your interest in what we're doing and for pointing us to those resources and particularly the example pipelines. It's very useful to be able to see how other people tackled problems with concourse; we do often wonder what the idiomatic way to do a thing in concourse is.

It's all a bit quiet on this team for the Christmas period, but any replies will be read eventually.

I definitely understand that the Christmas-New Years stretch is a bit quiet.

The Concourse team have a pipeline that deploys Concourse using BOSH, that might be another useful reference.

In general, BOSH is the ultimate conclusion to any discussion that starts with "how do I deploy ..." and ends with the name of some CF-related stateful service. One thing I found helpful early on was building my own little BOSH release and deployment by hand. By "helpful" I mean "frustrating", as there was very little documentation and it was confusing. But it definitely cleared up the differences between stemcells, releases and deployments. Once you have these down, BOSH is a powerful servant.

My best advice is that where possible, pop into the Concourse slack channel. The Concourse team and a number of heavy users (eg Buildpacks) are there and I've found them to be very helpful. The Cloud Foundry Slack channels are good too.

As a longer-term thing, it'd be worth joining the foundation and circulating developers through the dojo process, but that's probably outside the scope of a github issue :)

@jchester: to use this resource we need BOSH. We already use BOSH to install CF and external services. What we are doing now is automating the deployment of BOSH itself.

For that we use bosh-init, and we run bosh-init inside Concourse. Therefore we can't use BOSH itself to deploy Concourse, we deploy using bosh-init as well.

Ah, gotcha. This is what I get for skimming :)

I'm not sure how other teams are going that. I see at least two resources that claim to drive bosh-init[1][2], but I can't speak to their level of maturity.

[1] https://github.com/cloudfoundry-community/bosh-init-concourse
[2] https://github.com/hybris/bosh-init-deployment-resource

Thanks for pointing to bosh-init-deployment-resource! We will give it a try.

Good luck! I'm going to close, since I've done what I could.