Skip to content

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.

screen shot 2017-04-12 at 11 06 39 pm

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 the cf-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:

screen shot 2017-04-12 at 5 21 53 pm

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.

ctop

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"

Jobs

Packages