This is a minimal-ish set of instruction to set up a freshly imaged OS X workstation for working on Diego. If you've already used the Pivotal sprout
recipes to provision your machine, you might have a bad time.
These are nice for the core developer team, feel free to skip this section:
- Download Chrome using Safari, and install it.
- Download Wraparound from the web.
- Download
ShiftIt.zip
fromgithub.com/onsi/shiftit
. - Get Flycut from the App Store.
- Download iTerm 2 from the web.
- Download Homebrew using a browser, and install it.
- This will prompt you to accept installation of Xcode developer tools as well.
- Download Sublime Text 3 from the web.
- To enable the
subl
command line tool, you'll need to create a symlink. Google it.
brew install go
brew install ruby
brew install mysql
brew install postgresql
MySQL and PostgreSQL are needed for work on Cloud Controller, the BOSH micro CLI plugin, and maybe other things. To ensure MySQL and PostgreSQL services are always running, you'll need to do the following (true at the time this was written):
$ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
$ launchctl load -w ~/Library/LaunchAgents/*mysql*
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
$ launchctl load -w ~/Library/LaunchAgents/*postgresql*
In order to work with Cloud Controller, you will need to create a postgres
role in the database with the appropriate permissions:
$ createdb
$ psql
> create role postgres with createdb login superuser
You need some similar setup with MySQL:
$ mysql -u root
> set password for 'root'@'localhost' = password('password');
We use direnv to make setting the PATH
and GOPATH
easier as we switch between projects. You can get it with brew install direnv
. If you cd
into a directory using an .envrc
, you will be asked to explicitly allow it, so it will automatically alter your environment without your consent.
For convenience, you can create/update your ~/.gitconfig
and ~/.bash_profile
to look like the two other files in this Gist. Create a ~/.git-authors
file if you're using the git-duet
gem to pair authors and committers on commits. The one below shows a sample of what it will start to look like.
Follow the README instructions at github.com/cppforlife/checkman to install it. This tool allows you to monitor the status of builds in a "Checkfile". The Diego checkfile is in a private repository.
- Clone
[email protected]:pivotal-cf/diego-checkman.git
into the~/Checkman
directory. This will allow Checkman to show you the status of the Diego builds. - Create a directory
~/workspace
and clonecloudfoundry/cf-release
,cloudfoundry-incubator/diego-release
,cloudfoundry/bosh-lite
andconcourse/concourse
in your workspace.
The code we work on will be in the diego-release
and cf-release
repositories (and their submodules). bosh-lite
provides a local environment to which we can deploy both release and run acceptance tests. concourse
will provide the fly
CLI, enabling us to run builds using a local VM running the Concourse CI system.
Get them from the web.
gem install bosh_cli
- Follow the README instructions in the repo to get the box up and running
- You may need to
brew install wget
to download a warden stemcell to use for your BOSH Lite deployments
- Make a directory (e.g.
~/deployments/concourse
,cd
into it, issue avagrant init concourse/lite
and thenvagrant up
. export ATC_URL=http://192.168.100.4:8080
- Go to the
~/workspace/concourse
directory, andgo install github.com/concourse/fly
.
Some of our older scripts use spiff
to generate deployment manifests for cf-release
and diego-release
. Download the latest release from Github at https://github.com/cloudfoundry-incubator/spiff.