[lattice-release] v0.6.0

David Wadden

Phew! We spent the last few weeks reworking our cluster internals and build
process to bring you the best Lattice yet. Functionally, this is not a big
release, but the changes give us a noticeably more stable cluster (less
random errors around startup), and open up a lot of possibilities for
future functionality.

There are a number of breaking changes, most notably the lack of support on
DigitalOcean, Google Compute Engine or Openstack. These platforms don't
have the same ability to publish public base images like Vagrant boxes on
Atlas (Vagrant Cloud) or AMIs on AWS. We're currently prioritizing
whether/how soon we can bring back support for those platforms, and what it
might look like (packer null builder
<https://www.packer.io/docs/builders/null.html> or maybe bake-your-own
images since those platforms support private base images).

If you use Lattice (and especially if you use one of the "temporarily
discontinued" platforms), please take the time and fill out our survey at
http://goo.gl/forms/z33xBoLaeQ. We'd love your feedback on what Lattice
does for you and what platform(s) you're using (or would like to).

Quick rundown:

- Cluster
- Retooling of Lattice build and deployment to use packer-bosh
- Diego 0.1434.0, Garden-Linux 0.307.0, CF v218, Routing 0.99.0
- Default vagrant up <http://lattice.cf/docs/vagrant/> target is now
- Simpler setup for terraform apply
- Provided by cluster, then ltc sync updates itself from cluster
- Supports setting user context by USER directive for docker images
- Define HTTP routes to fully-qualified domains or context paths

We updated a lot of our documentation to go with the cluster changes, but
there are still some broken links and outdated contents. We're working
towards open-sourcing the website contents themselves, but for now if you
want to fix something on on lattice.cf, we encourage you to open a Github
issue <https://github.com/cloudfoundry-incubator/lattice-release/issues/new>

Full release notes are included below.

As always:
- If you think you've found a bug, please file a GitHub issue.
- If you have a contribution, we'd be happy to give you feedback via a
Pull Request.
- You can track our prioritized queue of work at:

David Wadden
Product Manager
Pivotal Software, Inc.

---------- Forwarded message ---------
From: davidwadden <notifications(a)github.com>
Date: Thu, Oct 22, 2015 at 3:33 PM
Subject: [lattice-release] v0.6.0
To: cloudfoundry-incubator/lattice-release <

*Help us help you, we'd love to hear your thoughts and suggestions on our
survey <http://goo.gl/forms/z33xBoLaeQ>! Your answers will help us
understand how you use Lattice and inform upcoming feature work.*

Breaking Changes

- *v0.6.0* does not work on DigitalOcean, Google Compute Engine,
- Please continue to use the *v0.5.0*
bundle to deploy to these platforms
- Lack of support for public user-created images (like AMIs) requires
different deployment strategy
- Additional discussions about this feature: DigitalOcean
Google Compute Engine
- vagrant up expects ltc target local.lattice.cf by default [#102582770
- Removed Terraform module
<https://terraform.io/docs/modules/create.html> definition to simplify
- Configured using terraform.tfvars instead of lattice.<platform>.tf [
#104919576 <https://www.pivotaltracker.com/story/show/104919576>]
- terraform get -update no longer necessary
- ltc launch-droplet no longer accepts --working-dir [#104935318
- Define multple routes by passing the --http-route or --tcp-route flag
multiple times [#105631892
- Retire ltc update-routes [#104177142
- Working with the Lattice development environment
has changed (significantly) [#105305792
- Lattice has been split into separate cluster and CLI repositories
- Moved cloudfoundry-incubator/lattice
<https://github.com/cloudfoundry-incubator/lattice/tree/legacy> to
- Forked cloudfoundry-incubator/lattice/ltc
to cloudfoundry-incubator/ltc

Complete retooling of Lattice build and cluster deployment [##2124074

The Lattice build process has been completely retooled to create images
that are fully configured with all Lattice
<https://github.com/cloudfoundry-incubator/lattice-release> + Diego
<https://github.com/cloudfoundry-incubator/diego-release> microservices at
build time. We use packer-bosh <https://github.com/cppforlife/packer-bosh>
to bake the Diego, Loggregator, and Routing BOSH releases into the Lattice
base image. This ensures the configurations never get out of sync with the
mainline CF versions. Thus, we greatly improve cluster stability. Users do
not and will not need to understand or use BOSH to deploy Lattice.
New Features

*Δ* indicates a *breaking change*.


- Diego upgraded from *0.1424.1*
to *0.1434.0*
- Garden-Linux upgraded from *0.295.0*
to *0.307.0*
- Fixes #187
Cells disk is full cloudfoundry-incubator/garden-linux-release#7
[#102180368 <https://www.pivotaltracker.com/story/show/102180368>]
- CF upgraded from *v213-93-g8a4f752*
<https://github.com/cloudfoundry/cf-release/tree/v213-93-g8a4f752> to
*v218* <https://github.com/cloudfoundry/cf-release/releases/tag/v218> [
#100518218 <https://www.pivotaltracker.com/story/show/100518218>]
- Works on Vagrant
- VirtualBox [#104128040
- VMWare Fusion [#104921036
- AWS (all regions) [#104920976
<https://www.pivotaltracker.com/story/show/104920976>] [#105827024
- Replace shared folders with file provisioners for Vagrant VMs [
#105732128 <https://www.pivotaltracker.com/story/show/105732128>]
- vagrant up --provider=aws works to all AWS regions [#105376966
- Works on Terraform (AWS only) (*Δ*)
- AWS (all regions) [#104919576
<https://www.pivotaltracker.com/story/show/104919576>] [#105827024
<https://www.pivotaltracker.com/story/show/105827024>] [#105827024
- Removed Terraform module
<https://terraform.io/docs/modules/create.html> to simplify
- Configured using terraform.tfvars instead of
lattice.<platform>.tf (*Δ*)
- terraform get -update no longer necessary


- ltc should be downloadable from the Lattice cluster [#102877664
- ltc sync updates itself from the cluster [#102877664
<https://www.pivotaltracker.com/story/show/102877664>] [#105668046
<https://www.pivotaltracker.com/story/show/105668046>] [#102482290
- Vendor ltc dependencies with submodules instead of Godeps [#101770536
- ltc launch-droplet no longer accepts --working-dir [#104935318
<https://www.pivotaltracker.com/story/show/104935318>] (*Δ*)
- ltc build-droplet and ltc launch-droplet no longer use privileged
containers [#104921458
- ltc create --privileged starts a docker image with a privileged
container [#105355654
- ltc supports improved user namespacing [#105324808
<https://www.pivotaltracker.com/story/show/105324808>] [#105328688
- ltc create --user specifies the user context of a docker app [
#104917574 <https://www.pivotaltracker.com/story/show/104917574>]
- Next, uses the USER directive from docker metadata [#104917678
- Lastly, defaults to "root" [#104918540
- Routing enhancements for ltc
- The below changes apply to ltc create, ltc launch-droplet, and ltc
- Define multple routes by passing the --http-route or --tcp-route
flag multiple times [#105631892
<https://www.pivotaltracker.com/story/show/105631892>] (*Δ*)
- HTTP/TCP routes determine default container port for single port
apps [#105635660 <https://www.pivotaltracker.com/story/show/105635660>
- #104
Custom domains in routes [#93628052
<https://www.pivotaltracker.com/story/show/93628052>] [#96562554
- #217
Use of context path routes with Lattice [#105301140
- Retire ltc update-routes [#104177142
<https://www.pivotaltracker.com/story/show/104177142>] (*Δ*)

Bug Fixes

- Modify docker image examples to app(s) start properly [#105069548
<https://www.pivotaltracker.com/story/show/105069548>] [#105881880
- Postgres docker image requires ltc create --privileged to start [
#105071050 <https://www.pivotaltracker.com/story/show/105071050>]


- Configure local.lattice.cf to replace [#102582770
<https://www.pivotaltracker.com/story/show/102582770>] (*Δ*)
- Default timeout on ltc test increased to 5m [#105622190
- Longer timeout to adjust for AWS EBS volume no longer being
- vagrant up works on Windows host with AWS provider [#98709384

CI / Packaging

- Create pipeline that does docker build docker push from
- Create pipeline that deploys from
cloudfoundry-incubator/lattice-release [#104919732
<https://www.pivotaltracker.com/story/show/104919732>] [#105306942
- CI builds and publishes vagrant boxes to Atlas
- VirtualBox, VMWare Fusion [#105496810
- AWS [#105496796
- Lattice has been split into separate cluster and CLI repositories
- cloudfoundry-incubator/lattice
<https://github.com/cloudfoundry-incubator/lattice/tree/legacy> moved
to cloudfoundry-incubator/lattice-release
- cloudfoundry-incubator/lattice/ltc
forked to cloudfoundry-incubator/ltc
- Consolidate architecture-specific bundles into single bundle [
#102485658 <https://www.pivotaltracker.com/story/show/102485658>]
- Bundle no longer includes ltc; this is now served by the cluster [
#102877664 <https://www.pivotaltracker.com/story/show/102877664>]


- Update documentation for cluster changes [#105488088
- Vagrant Platforms <http://lattice.cf/docs/vagrant/> [#105491060
- Terraform Platforms <http://lattice.cf/docs/terraform/> [#95925124
- Document how to vagrant up using AWS provider [#105491060
- Replace '' with 'local.lattice.cf' as default
system domain [#102582848
<https://www.pivotaltracker.com/story/show/102582848>] (*Δ*)
- #220
#221 <https://github.com/cloudfoundry-incubator/lattice-release/pull/221>:
Upgrade Vagrant to support VirtualBox 5.x [#106054292
<https://www.pivotaltracker.com/story/show/106054292>] [#106052660
- Document setting up the v0.6.0+ development environment on VirtualBox [
#105305792 <https://www.pivotaltracker.com/story/show/105305792>] (*Δ*)
- Update ltc syntax for user context and routing functionality [
#105069548 <https://www.pivotaltracker.com/story/show/105069548>] [
#105635874 <https://www.pivotaltracker.com/story/show/105635874>]

Known Issues

- TCP routes are not deleted when route is removed / app(s) are stopped
<https://github.com/cloudfoundry-incubator/lattice-release/issues/208> [
##1940024 <https://www.pivotaltracker.com/epic/show/1940024>]
- Two apps with same TCP route defined will round-robin between two
separate apps [#105929084

View it on GitHub