@menicosia menicosia released this Aug 8, 2015 · 195 commits to master since this release

Assets 2

Generating Droplets using Buildpacks

Since launch, Lattice has been limited to deploying only Docker containers. Starting with version 0.3.0, we've taught Lattice another trick for using Diego: Droplets. This is made possible by leveraging another Cloud Foundry technology, Buildpacks.

In just a few commands, ltc uploads your code, runs a CF Buildpack on it, saves the compiled artifact (the Droplet), and launches it alongside your Docker containers. The apps are then managed like any other app on Lattice. The droplets are only kept as long as the Lattice cluster runs, re-build your Droplets when deploying a fresh Lattice cluster.

The provisioner now installs a droplet store alongside Diego. ltc us automatically configured to use it when you target the Lattice cluster. You will see, Blob store is targeted, when Buildpack functionality is enabled.

Buildpacks are available on both Vagrant [#95876346] and Terraform [#96611016].

New Features

  • ltc target discovers the droplet store and stores its configuration. [#100303730]
    • ltc does not complain if it cannot find a droplet store; droplet functionality is left disabled.
    • ltc will attempt to use same credentials as API endpoint for droplet store.
    • vagrant up provisioner defaults to no-auth configuration
    • terraform apply provisioner uses lattice_username and lattice_password values from lattice.tf to configure droplet store.
  • ltc build-droplet uploads the contents of the working directory and builds a droplet using the specified buildpack [#92186444], [#92186448] [#92186462] [#92186464] [#98559752] [#98554024]
    • writes logs to build-droplet-DROPLET-NAME [#98292720]
    • accepts a --path argument to allow user to specify a file or directory to upload. [#92186456]
    • prints a failure message if staging fails, and returns a non-zero exit code. [#92186450] [#98818480]
    • does not upload files that match entries in .cfignore. [#92186460]
  • ltc launch-droplet launches a container running the specified droplet [#92186446] [#98321746] [#98847942]
  • ltc list-droplets lists the droplets stored in droplet store [#92186452] [#98201982]
  • ltc remove-droplet deletes a droplet from the droplet store [#92186454] [#98290714]
  • ltc export-droplet downloads the droplet tarball and metadata [#92186466]
  • ltc import-droplet uploads a droplet and its metadata [#92186470]
  • Upgraded to Diego 0.1398.0 & a major upgrade of garden-linux with btrfs [#100301008] [#98882812]


  • ltc docs updated to reflect droplet syntax [#98824900]
  • Totally re-vamped development-readme and scripts to set up a dev environment [#98769190]
  • Now includes CF_VERSION in addition to DIEGO_VERSION [#99906506]

Interestings and Bugfixes

  • AWS images cannot deploy in international regions #158 [#100481868]
  • ltc submit-lrp launches a container running the specified droplet [#97202034]

    Once you've run build-droplet, you can manually submit it as an LRP using a JSON file that you write yourself. For those who want Total Control, this is a low-level way to do the same thing that launch-droplet does in a more user-friendly way.

Known Issues

ltc build-droplet in v0.3.0 is limited to only 128MB of RAM. Larger applications may struggle to build properly. Please download the latest unstable ltc if you run into this issue. This will be configurable in the next Lattice release. [#100701142]

Download Links

ltc CLI

Terraform Files