docker/30.0.0
You can find the source of this version on GitHub at cf-platform-eng/docker-boshrelease. It was created based on the commit 9b10ab6
.
Release Notes¶
Introduction
The docker-boshrelease was first introduced Apr 14, 2014 - three years ago - by the legendary @frodenas. It has been used in production systems for years - both running static clusters of containers, and as an API allowing dynamic provisioning/deprovisioning of containers (historically this was via Cloud Foundry) via the https://github.com/cloudfoundry-community/cf-containers-broker companion project.
To celebrate the dual birthdays - this repository turning three and BOSH itself turning five - we’ve done a major upgrade to this project to bring it into line with the exciting features in BOSH 2.0.
This release also includes the introduction of a companion project https://github.com/cloudfoundry-community/docker-broker-deployment - the one-stop shop for deploying the Open Service Broker API that can deploy anything as a service, via Docker!
The git commits + comments for this work is primarily in this PR https://github.com/cloudfoundry-community/docker-boshrelease/pull/79
In the news/blog world:
Improvements
- Security - Docker is now deployed with TLS certificates. This was made very simple to add thanks to
bosh2
ability to generate certificates locally or via credhub. - Simplicity -
manifests/
subfolders should all work on any BOSH director - from local virtualbox to AWS/Azure/Google/OpenStack/Vsphere. Same manifest. Incredible. xoxo to BOSH 2.0. - Clusters - the
manifests/broker/docker-broker.yml
manifest assumes you’ll want many Docker VMs and so includes thecf-subway
broker by default, and deploys 3 docker host VMs by default. - BOSH 2.0 - you’ll be fully supported by
bosh2
CLI, BOSH Links, and BOSH Cloud Config. You’ll feel cooler. More awesome. You’ll probably be more generous and good spirited. You’ll pick up little bits of trash that you see on the street. You’ll probably become fitter and healthier too. I don’t have these results demonstrated in the CI system so your milage may vary. - CI - the whole project is now covered by a CI system.
How CI looks today:
Niceness
- When you SSH into a Docker VM, you will automatically have the
docker
CLI preconfigured to target the local Docker daemon. - When you SSH into a Docker VM, you will have the visually delightful
ctop
CLI installed.
Assumptions
Version v30 and onwards makes the exciting assumptions:
- deployment user will be targeting a modern BOSH director (for example, see https://github.com/cloudfoundry/bosh-deployment)
- deployment user will be using
bosh2
CLI https://github.com/cloudfoundry/bosh-cli/ - deployment BOSH director has/will be using cloud-config
- you are excited about all things BOSH 2 and are ready to move forward
- you might want to continue deploying any of the aged service images - so they’ve all been kepted; but if you’d like to help upgrade them please let me know!
Warnings
This release should be a drop-in upgrade for any systems running v29. I do suggest testing any upgrades on staging environments first. Please.
If you would like assistance or hand holding during this process, please let me know.
Many many of the BOSH job properties have changed or been simplified. For example, docker.
prefixes have been removed. All property namespace prefixes are gone. Manifests are so much nicer now.
I highly recommend you move away from your current manifests to the new manifests which are deliciously simple.
Unchanged
- Still docker 1.13
- Static container definitions
- Service broker should run containers the same way it did before
Deployment
See https://github.com/cloudfoundry-community/docker-boshrelease/tree/master/manifests for usage scenarios and deployment instructions for each.
If you’re deploying the Docker Broker system, it has its own dedicated repo to make life simpler for you - https://github.com/cloudfoundry-community/docker-broker-deployment
Deployment manifest snippet:
releases:
- name: docker
version: 30.0.0
url: https://github.com/cloudfoundry-community/docker-boshrelease/releases/download/v30.0.0/docker-30.0.0.tgz
sha1: d0936ebf27b2d7950fcc9042720b6fd28bcb631b
Or bosh2
operator patch file:
- type: replace
path: /releases/name=docker
value:
version: 30.0.0
url: https://github.com/cloudfoundry-community/docker-boshrelease/releases/download/v30.0.0/docker-30.0.0.tgz
sha1: d0936ebf27b2d7950fcc9042720b6fd28bcb631b
Usage¶
You can reference this release in your deployment manifest from the releases
section:
- name: "docker" version: "30.0.0" url: "https://bosh.io/d/github.com/cf-platform-eng/docker-boshrelease?v=30.0.0" sha1: "cf594f7b88ae227ed6d9dfff75e72d7d2d930e9d"
Or upload it to your director with the upload-release
command:
bosh upload-release --sha1 cf594f7b88ae227ed6d9dfff75e72d7d2d930e9d \ "https://bosh.io/d/github.com/cf-platform-eng/docker-boshrelease?v=30.0.0"