Skip to content
This repository was archived by the owner on Nov 30, 2021. It is now read-only.

Commit 2df8530

Browse files
author
Matthew Fisher
committed
doc(applications): deploying add-ons
1 parent 1326ba7 commit 2df8530

File tree

3 files changed

+99
-0
lines changed

3 files changed

+99
-0
lines changed

mkdocs.yml

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ pages:
4444
- SSH Keys: users/ssh-keys.md
4545
- Applications:
4646
- Deploying Apps: applications/deploying-apps.md
47+
- Deploying Add-ons: applications/deploying-addons.md
4748
- Buildpacks: applications/using-buildpacks.md
4849
- Dockerfiles: applications/using-dockerfiles.md
4950
- Docker Images: applications/using-docker-images.md

src/applications/deploying-addons.md

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Deploying Add-ons
2+
3+
The goal of `deis addons` is to give users the power to provision consumable services such as
4+
a postgres database, a minio bucket, or a logstash connection to their applications. `deis addons`
5+
can work with both common on-premise services such as a local mysql database or a Redis server
6+
for a "private" or on-premise [service broker][broker], or with public SaaS applications such as
7+
MongoLab or Papertrail for a public service offering.
8+
9+
`deis addons` is backed by a project called [service-catalog][]. service-catalog brings integration
10+
with [service brokers][broker] to the Kubernetes ecosystem via the [Open Service Broker API][].
11+
12+
Users of Workflow use `deis addons` to provision an add-on offered by [service brokers][broker] for
13+
their applications. The end-goal is to provide a way for users to consume services from brokers and
14+
have their applications use those services without needing detailed knowledge about how those
15+
services are created or managed.
16+
17+
As an example, most applications deployed by Workflow need a data store of some kind. `deis addons`
18+
allows applications to consume services like databases that exist somewhere via common environment
19+
variables like `DATABASE_URL`.
20+
21+
## Listing Available Add-ons
22+
23+
A user can use `deis addons:list` to see if they have a database provisioned and what plan it
24+
is using.
25+
26+
```
27+
$ deis addons:list | grep -i postgresql
28+
deis-postgresql:m4.large
29+
```
30+
31+
If a user wishes to see all available addons, they can use `deis addons:catalog`.
32+
33+
```
34+
$ deis addons:catalog
35+
name description
36+
--------------- ----------------------
37+
bonsai Bonsai Elasticsearch
38+
deis-postgresql Deis Workflow Postgres
39+
librato Librato
40+
```
41+
42+
To view what plans are available for a given service, use `deis addons:plans <service>`.
43+
44+
```
45+
$ deis addons:plans deis-postgresql
46+
name free? description
47+
------ ----- ------------------------------------------------------------------------
48+
t2.micro yes 1 vCPU, 1GB memory, poor network performance.
49+
t2.small no 1 vCPU, 2GB memory, poor network performance.
50+
m4.large no 2 vCPUs, 8GB memory, PIOPS-Optimized, moderate network performance.
51+
m4.xlarge no 4 vCPUs, 16GB memory, PIOPS-Optimized, high network performance.
52+
m4.10xlarge no 40 vCPUs, 160GB memory, PIOPS-Optimized, 10 Gigabit network performance.
53+
```
54+
55+
To see more information about the plans, use the `--raw` flag to dump the raw JSON to stdout for
56+
future parsing with tools like [`jq`](https://stedolan.github.io/jq/). This might be useful when
57+
the plan has more information about pricing in the metadata which cannot be cleanly parsed out in
58+
the CLI.
59+
60+
## Provisioning the Add-on
61+
62+
Most service brokers offers a variety of plans, usually spread across different tiers of service:
63+
hobby, standard, premium, and enterprise. For a detailed breakdown on the available plans, check
64+
the documentation for the applicable service broker to help choose the right service tier for the
65+
application. You can also check `deis addons:plans` for a high-level view of each service plan.
66+
67+
For example, to provision a `m4.large` plan database:
68+
69+
```
70+
$ deis addons:create deis-postgresql:m4.large --app wooden-rowboat
71+
Creating deis-postgresql:m4.large... done
72+
Binding deis-postgresql:m4.large to wooden-rowboat... done, v5
73+
```
74+
75+
Once the instance has been attached to the application, a DATABASE_URL environment variable will be
76+
available in the application's environment and will contain the URL used to access the newly
77+
provisioned service. The environment variables exposed by the instance will be viewable through
78+
`deis config:list`.
79+
80+
## Deprovisioning the Add-on
81+
82+
To deprovision a `m4.large` plan database:
83+
84+
```
85+
$ deis addons:destroy deis-postgresql:m4.large
86+
Un-binding deis-postgresql:m4.large from wooden-rowboat... done, v6
87+
Destroying deis-postgresql:m4.large... done
88+
```
89+
90+
91+
[broker]: ../reference-guide/terms.md#service-broker
92+
[Open Service Broker API]: https://github.com/openservicebrokerapi/servicebroker
93+
[service-catalog]: https://github.com/kubernetes-incubator/service-catalog

src/reference-guide/terms.md

+5
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,8 @@ The Deis scheduler client is implemented in the Controller component.
8080
## Service
8181

8282
A Kubernetes Service is an abstraction which defines a logical set of Pods and a policy by which to access them. In Workflow, a Service is used to load-balance an application's [Containers](#containers) internally through a virtual IP address.
83+
84+
85+
## Service Broker
86+
87+
A service broker is an endpoint that manages a set of plans (tiers) for a given service, such as MySQL, Postgres or Logstash.

0 commit comments

Comments
 (0)