diff --git a/README.md b/README.md index dc3f0ed..763e474 100644 --- a/README.md +++ b/README.md @@ -25,20 +25,54 @@ See our [philosophy](./philosophy.md) for more on our mission and values. ##Installation +**OS X** + `$ brew tap redspread/spread` `$ brew install spread` +**Linux/Windows** + +Make sure Go and Git are installed. + +`go get rsprd.com/spread/cmd/spread` + ##Quickstart -This assumes you have a running Kubernetes cluster. +This assumes you have kubectl configured to a running Kubernetes cluster, whether [local](https://github.com/redspread/spread#localkube) or remote. -1. Install Spread with `$ brew tap redspread/spread` then `$ brew install spread` +1. Install Spread 2. Clone Mattermost, the open source Slack `$ git clone http://github.com/redspread/kube-mattermost` -5. Deploy Mattermost to Kubernetes: `$ spread deploy .` -6. Grab the public IP and put it in your browser to see your self-hosted app! +5. Deploy Mattermost to Kubernetes: `$ spread build .` (local cluster) or `$ spread deploy .` (remote cluster) +6. Copy the IP and put it in your browser to see your self-hosted app! For a more detailed walkthrough, see the full guide. +##Localkube + +Spread makes it easy to set up and iterate with [localkube](https://github.com/redspread/localkube), a local Kubernetes cluster streamlined for rapid development. + +**Requirements:** + +- Make sure [Docker](https://docs.docker.com/mac/) is set up correctly, including starting `docker-machine` to bring up a VM. [1] + +**Getting started:** + +- Run `spread cluster start` to start localkube +- Sanity check: `kubectl cluster-info` + +**Suggested workflow:** +- `docker build` the image that you want to work with [2] +- Create Kubernetes objects that use the image build above +- Run `spread build .` to deploy to cluster [3] +- Iterate on your application, updating image and objects running `spread build .` each time you want to deploy changes +- When finished, run `spread cluster stop` to stop localkube + +[1] For now, we recommend everyone use a VM when working with localkube +[2] `spread` will soon integrate building ([#59](https://github.com/redspread/spread/issues/59)) +[3] Since `localkube` shares a Docker daemon with your host, there is no need to push images :) + +[See more](https://github.com/redspread/localkube) for our suggestions when developing code with Localkube. + ##What's been done so far * `spread deploy [-s] PATH [kubectl context]`: Deploys a Docker project to a Kubernetes cluster. It completes the following order of operations: @@ -47,12 +81,13 @@ For a more detailed walkthrough, see the full roadmap here! ##Future Goals -* Develop workflow for container versioning (containers = image + config) +* Peer-to-peer syncing between local and remote Kubernetes clusters +* Develop workflow for application and deployment versioning * Introduce paramaterization for container configuration ##FAQ @@ -89,7 +125,7 @@ If you haven't already, it's worth going through founders@redspread.com -Slack: redspread.slack.com +Slack: slackin.redspread.com Planning: Roadmap Bugs: Issues