Skip to content

Commit 9484729

Browse files
author
Aaron Schlesinger
committed
docs(README.md): update docs to match beta status
1 parent fdb79a9 commit 9484729

1 file changed

Lines changed: 35 additions & 56 deletions

File tree

README.md

Lines changed: 35 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -6,87 +6,66 @@ Deis (pronounced DAY-iss) is an open source PaaS that makes it easy to deploy an
66
applications on your own servers. Deis builds on [Kubernetes](http://kubernetes.io/) to provide
77
a lightweight, [Heroku-inspired](http://heroku.com) workflow.
88

9-
## Work in Progress
9+
## Beta Status
1010

11-
![Deis Graphic](https://s3-us-west-2.amazonaws.com/get-deis/deis-graphic-small.png)
12-
13-
Deis Builder v2 is changing quickly. Your feedback and participation are more than welcome, but be
14-
aware that this project is considered a work in progress.
11+
This Deis component is currently in beta status, and we welcome your input! If you have feedback, please [submit an issue](https://github.com/deis/builder/issues) and if you'd like to participate in development, please read the "Development" section below and [submit a pull request](https://github.com/deis/builder/pulls).
1512

1613
# About
1714

18-
This package provides a the Deis Builder, a git server to respond to `git push`es from clients. When it receives a push, it takes the following high level steps:
15+
The builder is primarily a git server that responds to `git push`es from clients. When it receives a push, it takes the below high level steps in order.
1916

20-
1. Accepts the code and writes to the local file system
17+
1. Accepts the code and writes it to the local file system
2118
2. Calls `git archive` to produce a tarball (i.e. a `.tar.gz` file) on the local file system
22-
3. Saves the tarball according to the following rules:
23-
- If the `DEIS_MINIO_SERVICE_HOST` and `DEIS_MINIO_SERVICE_PORT` environment variables exist, uses the [`mc`](https://github.com/minio/mc) client to save to the [Minio](https://github.com/minio/minio) server at `http://$DEIS_MINIO_SERVICE_HOST:$DEIS_MINIO_SERVICE_HOST`
24-
- Otherwise, if the `DEIS_OUTSIDE_STORAGE_HOST` and `DEIS_OUTSIDE_STORAGE_PORT` environment variables exist, uses the [`mc`](https://github.com/minio/mc) client to save to S3 server (or server that adheres to the S3 API) at `https://$DEIS_OUTSIDE_STORAGE_HOST:$DEIS_OUTSIDE_STORAGE_PORT` (this functionality is currently waiting for merge at https://github.com/deis/builder/pull/21).
25-
4. Starts a builder pod according to these rules:
26-
- If a `Dockerfile` is present, starts a [`dockerbuilder`](https://github.com/deis/dockerbuilder) pod, configured to download the code to build from the URL computed in the previous step (`dockerbuilder` and Dockerfile builder are not currently supported. See https://github.com/deis/dockerbuilder/pull/1 for prototype `dockerbuilder` code).
19+
3. Saves the tarball to centralized object storage according to the following rules:
20+
- If the `DEIS_MINIO_SERVICE_HOST` and `DEIS_MINIO_SERVICE_PORT` environment variables exist, saves to the [S3 API](http://docs.aws.amazon.com/AmazonS3/latest/API/APIRest.html) compatible server at `http://$DEIS_MINIO_SERVICE_HOST:$DEIS_MINIO_SERVICE_HOST`
21+
- Otherwise, if the `DEIS_OUTSIDE_STORAGE` environment variable exists, saves to `https://$DEIS_OUTSIDE_STORAGE`.
22+
4. Starts a new [Kubernetes Pod](http://kubernetes.io/docs/user-guide/pods/) to build the code, according to the following rules:
23+
- If a `Dockerfile` is present in the codebase, starts a [`dockerbuilder`](https://github.com/deis/dockerbuilder) pod, configured to download the code to build from the URL computed in the previous step.
2724
- Otherwise, starts a [`slugbuilder`](https://github.com/deis/slugbuilder) pod, configured to download the code to build from the URL computed in the previous step.
2825

29-
# Hacking Builder
26+
# Development
27+
28+
As mentioned above, we welcome contributions from all developers. The high level process for development matches many other open source projects. See below for an outline.
29+
30+
* Fork this repository
31+
* Make your changes
32+
* [Submit a pull request](https://github.com/deis/builder/pulls) (PR) to this repository with your changes, and unit tests whenever possible.
33+
* If your PR fixes any [issues](https://github.com/deis/builder/issues), make sure you write `Fixes #1234` in your PR description (where `#1234` is the number of the issue you're closing)
34+
* The Deis core contributors will review your code. After each of them sign off on your code, they'll label your PR with `LGTM1` and `LGTM2` (respectively). Once that happens, you may merge.
3035

31-
First, install [helm](http://helm.sh) and [boot up a kubernetes cluster][install-k8s]. Next, add the
32-
`deis` repository to your chart list:
36+
## Docker Based Development Environment
3337

34-
```console
35-
$ helm repo add deis https://github.com/deis/charts
36-
```
38+
Our preferred method of day-to-day development is using [our `go-dev` Docker image](https://github.com/deis/docker-go-dev). We use the tools described in this section to build, test, package and release each version of Deis.
3739

38-
Then, install the Deis chart!
40+
To use it yourself, we require that you have [make](https://www.gnu.org/software/make/) installed and Docker installed and running on your local development machine to use this method of development.
3941

40-
```console
41-
$ helm install deis/deis
42-
```
42+
If you don't have Docker installed, please go to https://www.docker.com/ to install it.
4343

44-
The chart will install the entire Deis platform onto Kubernetes. You can monitor all the pods that it installs by running:
44+
After you have those dependencies, you can build and unit-test your code with `make build` and `make test`, respectively.
4545

46-
```console
47-
$ kubectl get pods --namespace=deis
48-
```
46+
## Native Go Development Environment
4947

50-
Once this is done, SSH into a Kubernetes minion, and run the following:
48+
Although we prefer the Docker based development environment, you can also use the standard `go` toolchain to build and test. To do so, you'll [glide](https://github.com/Masterminds/glide) 0.9 or above and [Go 1.6](http://golang.org) or above.
5149

52-
```
53-
$ curl -sSL http://deis.io/deis-cli/install.sh | sh
54-
$ sudo mv deis /bin
55-
$ kubectl get service deis-controller
56-
$ deis register 10.247.59.157 # or the appropriate CLUSTER_IP
57-
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
58-
$ eval $(ssh-agent) && ssh-add ~/.ssh/id_rsa
59-
$ deis keys:add ~/.ssh/id_rsa.pub
60-
$ deis create --no-remote
61-
Creating Application... done, created madras-radiator
62-
$ deis pull deis/example-go -a madras-radiator
63-
Creating build... ..o
64-
```
50+
After you have those dependencies, you can build and unit-test your code with `go build` and `go test $(glide nv)`, respectively.
6551

66-
If you want to hack on a new feature, rebuild your code, build the deis/builder image and push it to a Docker registry. The `$DEIS_REGISTRY` environment variable must point to a registry accessible to your Kubernetes cluster. If you're using a locally hosted Docker registry, you may need to configure the Docker engines on your Kubernetes nodes to allow `--insecure-registry 192.168.0.0/16` (or the appropriate address range).
52+
Note that you will not be able to build or push Docker images using this method of development.
6753

68-
```console
69-
$ make build docker-build docker-push
70-
```
54+
# Testing
7155

72-
Next, you'll want to remove the `deis-builder` [replication controller](http://kubernetes.io/v1.1/docs/user-guide/replication-controller.html) and re-create it to run your new image.
56+
We require that as much code as possible is unit tested, but also recognize that some code must be tested at a higher level (functional or integration tests, for example). In order to set up and run such tests, we've built [end-to-end tests](https://github.com/deis/workflow-e2e) and also periodically dogfood our product. Since this component is at the center of much of the Deis platform, we find it especially important to dogfood it.
7357

74-
```console
75-
kubectl delete --namespace=deis rc deis-builder
76-
make kube-rc
77-
```
58+
## Running End to End Tests
7859

79-
## Installation
60+
Please see [README.md](https://github.com/deis/workflow-e2e/blob/master/README.md) on the end to end tests reposotory for instructions on how to set up your testing environment and run the tests.
8061

81-
The following steps assume that you have the [Docker CLI](https://docs.docker.com/) and [Kubernetes CLI](http://kubernetes.io/v1.1/docs/user-guide/kubectl-overview.html) installed and correctly configured.
62+
## Dogfooding
8263

83-
```
84-
make deploy kube-service
85-
```
64+
Please follow the instructions on the [official Deis docs](http://docs-v2.readthedocs.org/en/latest/installing-workflow/installing-deis-workflow/) to install and configure your Deis cluster and all related tools, and deploy and configure an app on Deis.
8665

87-
## License
66+
# License
8867

89-
Copyright 2013, 2014, 2015 Engine Yard, Inc.
68+
Copyright 2013, 2014, 2015, 2016 Engine Yard, Inc.
9069

9170
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
9271

0 commit comments

Comments
 (0)