Releases: cloudfoundry-attic/lattice-release
v0.7.0
Windows
- Compatibility fixes for
ltc
on Windows [#104804478] [#104804034] [#104804524] [#104804544] [#104804572] [#106992958] - ltc uses proper location for config.json on windows [#104804610]
- interactive-auth target should not print password during challenge on windows [#104804660]
- ltc should strip out colors and cursor movement control characters when not running in a PTY [#104804684] [#107482924]
- emulate SIGWINCH behavior on windows [#104804622]
- Confirm ltc and
ltc test
work on Windows host [#98709570] - i should be able to download windows ltc from the cluster [#106611414]
- Confirm
vagrant up
works on Windows host with VirtualBox/VMware/AWS provider [#106275410] [#106275444] [#98709384] - Make
terraform apply
work on Windows host [#103740112]
Cluster
- Diego upgraded from 0.1434.0 to v0.1440.0 [#105302014] [#107749884]
- CF upgraded from v218 to v224 [#105945010] [#108767802]
- #228: Routing upgraded from 0.99.0 to 0.121.0-5-g7d40ef5
- Lattice runs CF Routing API Server now [#106994644]
Configuration
- Guest VM vCPU/memory configured based on Host resources for VMware and Windows [#105930268]
- #162:
vagrant up
on Lattice acceptsVM_MEMORY
&VM_CORES
environment variable [#100872484] - Cluster proxy can be specified using uppercase environment variables [#107541742]
- #226: Lattice downloads
lattice.tgz
via proxy on Windows [#106711812]
CLI
ltc
supports fetching Docker metadata from v2 registries [#105511048]- Docker upgraded from v1.5.0 to v1.8.3 [#104111128]
ltc version
should print both the client and server version [#102254750]ltc target
recommendsltc sync
if CLI and cluster versions do not match [#106157688]- Droplets no longer require JSON metadata file for
ltc export-droplet
andltc import-droplet
[#104936692] [#104936700] - cloudfoundry-attic/ltc#5:
ltc
includes router group guid in TCP routes [#106994940] - cloudfoundry-attic/ltc#1: Fix invalid usage error and help messages for some commands [#106190480]
- cloudfoundry-attic/ltc#2: Sort cells numerically for
ltc cells
andltc visualize
[#106195792] - cloudfoundry-attic/ltc#3:
ltc delete-task
can delete a running task [#106198206] - Examples and syntax error messages no longer format error messages like environment variables [#104913186]
v0.6.0
Help us help you, we'd love to hear your thoughts and suggestions on our survey!
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, Openstack
- 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
expectsltc target local.lattice.cf
by default [#102582770]- Removed Terraform module definition to simplify provisioning
- Configured using
terraform.tfvars
instead oflattice.<platform>.tf
[#104919576] terraform get -update
no longer necessary
- Configured using
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 to cloudfoundry-incubator/lattice-release
- 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 + Diego microservices at build time. We use 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.
Cluster
- 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-attic/garden-linux-release#7 [#102180368]
- CF upgraded from v213-93-g8a4f752 to v218 [#100518218]
- Works on Vagrant
- VirtualBox [#104128040]
- VMWare Fusion [#104921036]
- AWS (all regions) [#104920976] [#105827024]
- Replace shared folders with file provisioners for Vagrant VMs [#105732128]
vagrant up --provider=aws
works to all AWS regions [#105376966]
- Works on Terraform (AWS only) (Δ)
- AWS (all regions) [#104919576] [#105827024] [#105827024]
- Removed Terraform module to simplify provisioning
- Configured using
terraform.tfvars
instead oflattice.<platform>.tf
(Δ) terraform get -update
no longer necessary
- Configured using
CLI
- ltc should be downloadable from the Lattice cluster [#102877664]
ltc sync
updates itself from the cluster [#102877664] [#105668046] [#102482290]- Vendor
ltc
dependencies with submodules instead of Godeps [#101770536] ltc launch-droplet
no longer accepts--working-dir
[#104935318] (Δ)ltc build-droplet
andltc 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] [#105328688]ltc create --user
specifies the user context of a docker app [#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
, andltc update
- Define multple routes by passing the
--http-route
or--tcp-route
flag multiple times [#105631892] (Δ) - HTTP/TCP routes determine default container port for single port apps [#105635660]
- #104, #137: Custom domains in routes [#93628052] [#96562554]
- #217: Use of context path routes with Lattice [#105301140]
- Retire
ltc update-routes
[#104177142] (Δ)
- The below changes apply to
Bug Fixes
- Modify docker image examples to app(s) start properly [#105069548] [#105881880]
- Postgres docker image requires
ltc create --privileged
to start [#105071050]
Interestings
- Configure
local.lattice.cf
to replace192.168.11.11.xip.io
[#102582770] (Δ) - Default timeout on
ltc test
increased to 5m [#105622190]- Longer timeout to adjust for AWS EBS volume no longer being pre-warmed
vagrant up
works on Windows host with AWS provider [#98709384]
CI / Packaging
- Create pipeline that does
docker build
docker push
from cloudfoundry-incubator/lattice-ci - Create pipeline that deploys from cloudfoundry-incubator/lattice-release [#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
- Consolidate architecture-specific bundles into single bundle [#102485658]
- Bundle no longer includes
ltc
; this is now served by the cluster [#102877664]
- Bundle no longer includes
Documentation
- Update documentation for cluster changes [#105488088]
- Vagrant Platforms [#105491060]
- [Terraform Platforms](http://latt...
v0.5.0
New Features
- #205: Terraform cells download
lattice.tgz
directly at provision-time [#104137996]terraform apply
can now be run from low-bandwidth network connections
- Diego upgraded from 0.1398.0 to 0.1424.1 [#100656516] [#103211906]
- #66: Garden v0.290.0 creates non-existent working directory on Docker RootFS [#91438788] [#91550852] cloudfoundry-attic/garden-linux#29
- Improve proxy support for Lattice [##2088022] [#103746258]
- Droplets created following
vagrant up
with proxy enabled use cluster proxy configuration [#103533536] [#103796516] ltc
works behind a "not strict" proxy (not Squid) to connect to an external Lattice cluster [#103737106]- Validated CF buildpacks respect proxy configuration [#100512640]
- Droplets created following
ltc ssh
has reached feature parity with Diego SSH [##2051878]- Supports port forwarding with or without interactive shell [#101709060] [#102907420]
- Detects whether to allocate a PTY,
-T
disables PTY allocation [#101710922] [#101710892] - Restores PTY from "raw" to "sane" mode following error or TERM signal [#104210274]
Bug Fixes
- Changes to
ltc visualize --graphical
- #209: Cell labels are populated from
CellID
value in Diego instead of sequencer [#104439866] - Cells are sorted properly (i.e., cell-2 before cell-11) [#93577238]
- #209: Cell labels are populated from
- Cell names are not prefixed with namespace on Google Compute Engine [#104658746]
- #204: Update out-of-date manual install instructions [#104094016]
Interestings
- Changes to
ltc status
- Prints instance summary by default,
--detailed
gives details [#104235428] - Displays the RootFS and Monitor configuration [#104058110] [#104058110]
- Prints instance summary by default,
ltc update-routes
will be deprecated in a future release.
Known Issues
- Subsequent definitions of the same TCP route may not function properly #208
- Verify connectivity directly to app container (See
ltc status --detailed
)
- Verify connectivity directly to app container (See
- Two apps with same TCP route defined will round-robin between two separate apps
v0.4.4
Users not developing on Lattice itself should download Lattice bundles now.
Thegit checkout <tag>
vagrant up
flow is no longer supported.
New Features
- Warns users who attempt to
vagrant up
/terraform apply
with a stalelattice.tgz
. [#101716496] [#101716526] - Supports multiple concurrent Google Compute Engine deployments
- Specifies namespace of GCE terraform clusters [#101697536]
- Blacklist well-known ports for TCP routes in
ltc
[#103195444]
Bug Fixes
- Pre-warm the EBS volume to help with sluggish performance on AWS following
terraform apply
[#103277682] ltc status --rate
refreshes the terminal properly when lines are word-wrapped [#103102128]- Supports docker images with non-standard library locations
- #200: Statically linked in-container go binaries [#103511980]
- Addresses issue running
tutum/hello-world
docker image [#95412750] #125
ltc target
no longer prints DAV droplet store when S3 droplet store is targeted [#102104924]ltc target --s3
can save config whenconfig.json
not present [#103416450]
Interestings
- Change development README to use Docker Machine instead of Boot2docker on OS X [#101250214]
- Update instructions to
vagrant up
and deploy apps with a cluster proxy [#103410316] [#102918456] #196 ltc target --domain
prints the system domain (helpful for automation) [#103534708]- #198: Add incorrect usage messages for droplet commands [#103415840] [#101798526] #184
v0.4.3
Hotfix for SpringOne
long uploads on ltc build-droplet
are aborting with closed connection [#103237890]
v0.4.2
SSH to Containers
Preventing direct access to Lattice cells was not implemented in this release to maintain compatibility. Please ignore the previous notice regarding this issue.
SSH access is now available into the containers using the ltc ssh
command. Please see ltc ssh
documentation for more details about the syntax.
- App containers now run the diego-ssh daemon and can be routed to via the ssh-proxy running on the brain [#101709514]
ltc ssh
opens an SSH session with the app container [#101707864]ltc ssh app -i instance
allows a specific app instance to be specified [#103102808]ltc ssh app [--] command to run
runs the provided command. [#101708864]
SSH in v0.4.2 has not reached feature parity with the CF CLI (includes port forwarding and support for piping). Please see the SSH epic for more details on future functionality.
Fixes
- #189: Unzip and rezip artifacts passed to
ltc build-droplet -p
[#102183230]- Workaround for issues with .jars created by certain Java build tools.
VCAP_SERVICES
is set to{}
by default for all apps (docker and droplets) [#102216852]- This can be set to custom values using the
--env
flag.
- This can be set to custom values using the
- Direct users to download a bundle when attempting to
vagrant up
from the Git repository. [#102909512]
v0.4.0
Beginning with v0.4.1, direct access to Lattice cells will be restricted to private addresses within the cluster.
Introducing TCP Router
TCP Router is a collection of components that balances traffic across one or more instances of an application. Unlike gorouter, tcp-router balances traffic other than HTTP, such as mysql, redis, or mongodb. Using ltc
, a user defines a route from an external port on the Lattice brain to an exposed port on the application container. Under the hood, tcp-emitter
regularly updates HAProxy with the TCP routes defined on the Lattice cluster.
- #172 #182 #191: Merge TCP Router functionality [#101089176] [#101699282] [#102296358]
--routes
no longer works onltc create
andltc launch-droplet
.- Use the
--http-routes
flag to define HTTP routes for an app. [#100758692] [#100436212]--http-routes
takes a comma-delimited set ofROUTE:CONTAINER_PORT
- This is reversed from
--routes
(breaking change)
- New
--tcp-routes
flag takes comma-delimited set ofEXTERNAL_PORT:CONTAINER_PORT
- Multiple TCP routes can route to same container port. [#101697408]
ltc update
changes HTTP and/or TCP routes for a running application. [#98240702]- Replaces
ltc update-routes
(will be removed in a future release).
- Replaces
ltc status
andltc list
show TCP routes [#100258924] [#100258722]
New Distribution Bundles
With the recent conversion to Concourse as our CI platform, we took the opportunity to change the way we distribute Lattice -- no more git checkout; vagrant up
. Starting with v0.4.0, we distribute a bundle (links below) that contains ltc
along with the vagrant/terraform files needed to launch Lattice.
- Distribute Lattice via bundles [#101458202] [#101314108] [#101314112]
New Features
ltc target --s3
uses an S3 bucket as the droplet store [#100236758] [#100237448]- Allows multiple developers to share droplets
- Persists droplets across subsequent Lattice deployments
ltc create --monitor-command
uses a custom healthcheck command [#91461922]
Usability Fixes
ltc target
times out when a connection to the blob store hangs [#101164182]- No longer downloads RootFS at provision-time on Vagrant and AWS [#101844068] [#101844098]
- Upgraded base Ubuntu image to 14.04.3 [#102162900]
- Document how to diagnose and resolve multiple vagrant instances running [#101992188]
For Developers
- ci.lattice.cf shows the current build status [#101284204]
- As part of our migration to Concourse, we now track
master
. Moving forward, please submit any PRs against the master branch. [#101834808]
v0.3.3
Spring Cleaning!
This is a follow-on to Lattice v0.3.0. Please pardon our dust, we skipped releases v0.3.1 and v0.3.2.
Thank you very much for reporting issues and offering contributions on GitHub. We've turned them around as quickly as possible. Lattice v0.3.3 should be considered the most stable release that includes Buildpacks support.
New Features
- Breaking change: Terraform users should be required to specify credentials for lattice [#100651666]
terraform apply
now exits with an error iflattice_username
andlattice_password
are not configured.
- Lattice v0.3.3 works on and is tested against Terraform 0.6.3 [#101087224]
ltc build-droplet
allows resources to be specified [#100701142]- new options:
--cpu-weight
,--memory-mb
and--disk-mb
- new options:
ltc create
merges Docker ENV directives into app environment variables [#99521864]- Track versions of material dependencies for lattice [#98881188]
vagrant ssh -c "cat /var/lattice/LATTICE_VERSION"
checks the cluster version.- The brain and cells store dependency versions in
DIEGO_VERSION
,CF_VERSION
andROUTING_VERSION
under the directory/var/lattice
.
Interestings and Bug Fixes
- GitHub Issues #147 & #181: build-droplet should not access the blobstore via the http_proxy [#99515656]
- GitHub Issue #161: Unable to Create Droplet from Java Main Application [#100854344]
- GitHub Issue #170: Cannot build droplet if it contains a symlink [#101080914]
- GitHub Issue #173: php droplet based on cf buildpack fails to launch due to missing apache user [#101175234]
- Update rootfs to v1.4.0 [#101281706]
- Droplets should be aware they are running on the cloud [#101066740]
- Garden-linux bump optimizations [#99147068]
- Bugfix:
ltc status --rate
outputs first line repeatedly on droplets [#100659664]
New Documentation
- Documentation for Buildpack support [#98824900]
Note: Some components of the Lattice brain need a little bit of time to spin up. You can use ltc test -v
to validate that your cluster has been initialized successfully. You may need to give it some time before all of the tests pass.
Polish
And we cleared out a tiny horde of fit and finish tasks.
ltc create
without--run-as-root
should not use a privileged container [#100033946]ltc target
andltc test
should fail when no droplet store available [#100700136]- Lattice should delete uploaded
bits.zip
files whenbuild-droplet
fails [#99939534] ltc build-droplet
appears to fail if a droplet of the same name has already been stored [#100762030]ltc remove-droplet
doesn't fail if the droplet isn't found [#101135194]ltc logs
reports tasks as "Application not found" [#99187016]ltc test -v
should not fail when ltc is renamed or not in the PATH or invoked with a relative path [#100053278]- Remove logic to print newline at end of each command [#98037256]
- No-arg
ltc target
output is formatted incorrectly [#100971858]
... ah! Doesn't that feel nice?
Download Links
ltc
CLI
Terraform Files
- AWS:
lattice.aws.tf
- DigitalOcean:
lattice.digitalocean.tf
- Google Cloud:
lattice.google.tf
- Openstack:
lattice.openstack.tf
v0.3.0
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 configurationterraform apply
provisioner useslattice_username
andlattice_password
values fromlattice.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]
Documentation
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 runbuild-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 thatlaunch-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
- AWS:
lattice.aws.tf
- DigitalOcean:
lattice.digitalocean.tf
- Google Cloud:
lattice.google.tf
- Openstack:
lattice.openstack.tf
v0.2.7
New Features
- Upgrade Diego to 0.1360.0 #98750194
- Fixed documentation: User are now instructed to checkout a tagged revision of the Lattice repo which corresponds to the version of the
ltc
binary. #98818296
Interestings and Bugfixes
- Bugfix:
--run-as-root
now run as root; in v0.2.6 processes ran as user vcap. #98135062 - Support Terraform v0.6.1 #98493606
- As advertised, 'ltc upload-bits' has been retired. #98646942
Documentation
- Lattice FAQ headings should be anchors. #97235530
- Add DIEGO_VERSION file to the running cluster and represent it in
ltc -v
. #98118510
Advanced commands
You'll notice in the help text that ltc
now includes a variety of interesting looking commands. These are pre-release features that are included in this release. They are under active testing and development. If you'd like to know more, please check out our Condenser epic. You'll need to click on "ADD/VIEW STORIES" to see all of the stories of the new feature.
Download Links
boot2docker
- Lattice v0.2.7 works well with boot2docker v1.6.2
ltc
CLI
Terraform files
- AWS:
lattice.aws.tf
- DigitalOcean:
lattice.digitalocean.tf
- Google Cloud:
lattice.google.tf
- Openstack:
lattice.openstack.tf