Cloud Foundry Lattice
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 ]
Deploy Lattice with Vagrant
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.
Spin up a virtual environment
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
ltc
(the Lattice CLI)
Install 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
Use the Lattice CLI to target Lattice
./ltc target local.lattice.cf
Deploy Lattice with Terraform
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
Configure your virtual environment
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.
Deploy the cluster to AWS
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.
ltc
(the Lattice CLI)
Install 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
Use the Lattice CLI to target Lattice
./ltc target <lattice target>
Development
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)
Clone the Lattice source
git clone --recursive https://github.com/cloudfoundry-incubator/lattice-release.git
Build Lattice
Setup your shell for building Lattice:
cd lattice-release
direnv allow # or: source .envrc
Building a Lattice Box
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
Building a release of Lattice
# in lattice-release/vagrant
../release/build lattice.tgz
Deploy Lattice
Once you have a Lattice tarball, use vagrant
to deploy Lattice:
# in lattice-release/vagrant
vagrant up --provider=virtualbox
Install ltc
Compiling ltc is as simple as using go install
:
go install github.com/cloudfoundry-incubator/ltc
Test the running Lattice Cluster
ltc target local.lattice.cf
ltc test -v
Contributing
If you are interested in contributing to Lattice, please refer to CONTRIBUTING.
Copyright
See LICENSE for details. Copyright (c) 2015 Pivotal Software, Inc.