You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[](https://quay.io/repository/deisci/workflow)
4
6
5
-
Deis (pronounced DAY-iss) is an open source PaaS that makes it easy to deploy and manage
6
-
applications on your own servers. Deis builds on [Kubernetes](http://kubernetes.io/) to provide
7
-
a lightweight, [Heroku-inspired](http://heroku.com) workflow.
7
+
Deis (pronounced DAY-iss) is an open source PaaS that makes it easy to deploy and manage applications on your own servers. Deis builds on Kubernetes to provide a lightweight, easy and secure way to deploy your code to production.
8
8
9
-
## Work in Progress
9
+
For more information about the Deis Workflow, please visit the main project page at https://github.com/deis/workflow.
Deis Workflow v2 is currently in alpha. Your feedback and participation are more than welcome, but be
14
-
aware that this project is considered a work in progress.
13
+
This Deis component is currently in beta status, and we welcome your input! If you have feedback, please [submit an issue][issues]. If you'd like to participate in development, please read the "Development" section below and [submit a pull request][prs].
15
14
16
-
The following features are not ready in Alpha1, but will be coming
17
-
soon.
15
+
The following features are not ready in Beta, but will be coming soon.
18
16
19
17
- Complete SSL support
20
-
- Dockerfile builds
21
18
- Backup and restore features
22
19
- Persistent storage (though it can be manually configured)
23
20
24
-
## Hacking Workflow
21
+
#About
25
22
26
-
First, [obtain a Kubernetes cluster][install-k8s]. Deis Workflow currently targets Kubernetes
27
-
v1.1 with the following requirements:
23
+
The controller is the central API for the entire Deis Platform. Below is a non-exhaustive list of things it can do:
28
24
29
-
* Configure Docker's `insecure-registry` parameter to include the subnets used by your Kubernetes installation
25
+
* Create a new application
26
+
* Delete an application
27
+
* Scale an application
28
+
* Configure an application
29
+
* Create a new user
30
+
31
+
# Development
32
+
33
+
The Deis project welcomes contributions from all developers. The high level process for development matches many other open source projects. See below for an outline.
34
+
35
+
* Fork this repository
36
+
* Make your changes
37
+
*[Submit a pull request][prs] (PR) to this repository with your changes, and unit tests whenever possible.
38
+
* If your PR fixes any [issues][issues], make sure you write Fixes #1234 in your PR description (where #1234 is the number of the issue you're closing)
39
+
* 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
40
+
41
+
## Prerequisities
42
+
43
+
### Kubernetes
44
+
45
+
In order to do development on this component, you'll need a working Kubernetes cluster. If you don't have one follow the [installation instructions][install-k8s] and note that Workflow currently targets version 1.1 with the following requirements:
46
+
47
+
* Docker's `insecure-registry` parameter must include the subnets used by your Kubernetes installation
30
48
* If you are testing the logger components, you must enable `DaemonSet` experimental APIs via `--runtime-config=extensions/v1beta1/daemonsets=true`
31
49
32
-
Next, install [helm](http://helm.sh). Next, add the deis repository to your chart list:
50
+
### Helm
51
+
52
+
After you have a working Kubernetes cluster, install [helm](http://helm.sh) and run the following commands to add the Deis chart repository and install Deis to your new cluster:
33
53
34
54
```console
35
-
$ helm repo add deis https://github.com/deis/charts
55
+
helm repo add deis https://github.com/deis/charts
56
+
helm install deis/deis-dev
36
57
```
37
58
38
-
Then, install Deis!
59
+
Note that to work off the latest stable release, change the `helm install deis/deis-dev` command to `helm install deis/deis`.
60
+
61
+
## Testing Your Code
62
+
63
+
When you've built your new feature or fixed a bug, make sure you've added appropriate unit tests and run `make test` to ensure your code works properly.
39
64
40
-
To work off the latest stable
65
+
Also, since this component is central to the platform, it's recommended that you manually test and verify that your feature or fix works as expected. To do so, ensure the following environment variables are set:
66
+
67
+
*`DEIS_REGISTRY` - A Docker registry that you have push access to and your Kubernetes cluster can pull from
68
+
* If this is [Docker Hub](https://hub.docker.com/), leave this variable empty
69
+
* Otherwise, ensure it has a trailing `/`. For example, if you're using [Quay.io](https://quay.io), use `quay.io/`
70
+
*`IMAGE_PREFIX` - The name of the repository. This defaults to `deis`, but if you don't have access to that repository, set this to a repository that you have push access to.
71
+
*`SHORT_NAME` (optional) - The name of the image. This defaults to `controller`
72
+
*`VERSION` (optional) - The tag of the Docker image. This defaults to the current Git SHA (the output of `git rev-parse --short HEAD`)
73
+
74
+
Then, run the following commands to build and push a new Docker image with your changes, and install it on your Kubernetes cluster.
41
75
42
76
```console
43
-
$ helm install deis/deis
77
+
make docker-build docker-push
44
78
```
45
79
46
-
To work off the latest development version
80
+
See below for a complete example with appropriate environment variables.
47
81
48
82
```console
49
-
$ helm install deis/deis-dev
83
+
export DEIS_REGISTRY=quay.io/
84
+
export IMAGE_PREFIX=arschles
85
+
make docker-build docker-push
50
86
```
51
87
52
-
Complete instructions for installing and managing a Deis cluster are
53
-
available at https://github.com/deis/docs-v2
88
+
Once the Docker push is complete, edit `$(helm home)/workspace/charts/deis-dev/manifests/deis-controller-rc.yaml` so that the `image:` field has the complete location of your Docker image (for example, the image produced by the previous command would be similar to `quay.io/arschles/controller:bba8eca`.)
54
89
55
-
If you want to retrieve the latest client dev build for OS X or Linux, download the client:
90
+
Finally, delete and re-create the Deis controller [Replication Controller][repl-controller]:
If you want to hack on a new feature, build the deis/workflow image and push it to a Docker
62
-
registry. The `$DEIS_REGISTRY` environment variable must point to a registry accessible to your
63
-
Kubernetes cluster. You may need to configure the Docker engines on your Kubernetes nodes to allow
64
-
`--insecure-registry 192.168.0.0/16` (or the appropriate address range).
97
+
Note: if you used the stable release of the Deis chart, the path to the `deis-controller-rc.yaml` will be `Note that if you used the stable release of the Deis chart, the path will be `$(helm home)/workspace/charts/deis/manifests/deis-controller-rc.yaml`.
65
98
66
-
When you want to test changes then commit the changes to your branch and run
99
+
Once you've re-created the replication controller, a new pod will be launched by it. You'll need to wait until the pod is listed as `Running` and the value in its `Ready` column is `1/1`. Use the following command to check the Pod's status:
67
100
68
101
```console
69
-
$ make deploy
102
+
kubectl get pod --namespace=deis
70
103
```
71
104
72
-
This will build the required docker images and push them to the registry that was configured, then update and recreate the Replication Controller.
73
-
Give it a bit of time for the changes to go live.
74
-
75
105
## License
76
106
77
107
Copyright 2013, 2014, 2015, 2016 Engine Yard, Inc.
@@ -82,3 +112,6 @@ Unless required by applicable law or agreed to in writing, software distributed
0 commit comments