Lattice was a Cloud Foundry project focused on delivering the Diego application scheduler into the hands of users as quickly as possible before Diego was fully integrated to Cloud Foundry. Lattice served that purpose well, but now Diego is available as the application scheduler for Cloud Foundry, and Cloud Foundry is the best way to use Diego. Therefore, Lattice is no longer actively maintained.
[ Website | Latest Release | Nightly Builds ]
A colocated deployment of Lattice can be launched locally with Vagrant. You will need:
- A Lattice bundle from the latest release or nightly builds
- Vagrant 1.7+ installed
NOTE: Ubuntu 14.04 LTS does not install a compatible version of Vagrant by default. You can upgrade the version that you get out of the box by downloading the
.deb
file from Vagrant.
Unzip the Lattice bundle, and switch to the vagrant directory
unzip lattice-bundle-VERSION.zip
cd lattice-bundle-VERSION/vagrant
vagrant up --provider virtualbox
This spins up a virtual environment that is accessible at local.lattice.cf
If you're running Linux: curl -O http://receptor.local.lattice.cf/v1/sync/linux/ltc
If you're running OS X: curl -O http://receptor.local.lattice.cf/v1/sync/osx/ltc
Finally: chmod +x ltc
./ltc target local.lattice.cf
A scalable cluster deployment of Lattice can be launched on Amazon Web Services with Terraform. You will need:
- An Amazon Web Services account
- AWS Access and Secret Access Keys
- AWS EC2 Key Pairs
- Terraform 0.6.2+
- A Lattice bundle from the latest release or the nightly builds page
Unzip the Lattice bundle, and switch to the terraform/aws directory
unzip lattice-bundle-VERSION.zip
cd lattice-bundle-VERSION/terraform/aws
Update the terraform.tfvars
file with your AWS credentials and desired cluster configuration.
terraform apply
Terraform will generate a terraform.tfstate
file. This file describes the cluster that was built - keep it around in order to modify/tear down the cluster.
After a successful deployment Terraform will print the Lattice target and Lattice user information. Refer to the target = <lattice target>
output line to find the address of your cluster.
If you're running Linux: curl -O http://receptor.<lattice target>/v1/sync/linux/ltc
If you're running OS X: curl -O http://receptor.<lattice target>/v1/sync/osx/ltc
Finally: chmod +x ltc
./ltc target <lattice target>
NOTE: These instructions are for people contributing code to Lattice. If you only want to deploy Lattice, see above. These instructions cover Vagrant/Virtualbox development. A similar process can be followed for Vagrant/VMWare, Vagrant/AWS, and Terraform/AWS development. More documentation is forthcoming.
To develop Lattice you will need to have the following tools installed:
- Packer
- Vagrant
- Virtualbox
- Direnv (optional)
git clone --recursive https://github.com/cloudfoundry-incubator/lattice-release.git
Setup your shell for building Lattice:
cd lattice-release
direnv allow # or: source .envrc
If you change any Diego components, you'll need to build a local Vagrant box with your changes.
If you don't plan to change any Diego components, you can update the box_version
property
in vagrant/Vagrantfile
to point to a pre-built Lattice box on Atlas
and skip this step.
bundle
cd vagrant
./build -only=virtualbox-iso
vagrant box add --force lattice-virtualbox-v0.box --name lattice/colocated
# in lattice-release/vagrant
../release/build lattice.tgz
Once you have a Lattice tarball, use vagrant
to deploy Lattice:
# in lattice-release/vagrant
vagrant up --provider=virtualbox
Compiling ltc is as simple as using go install
:
go install github.com/cloudfoundry-incubator/ltc
ltc target local.lattice.cf
ltc test -v
If you are interested in contributing to Lattice, please refer to CONTRIBUTING.
See LICENSE for details. Copyright (c) 2015 Pivotal Software, Inc.