|
| 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:standard |
| 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 | +slug name |
| 36 | +--------------- ---------------------- |
| 37 | +bonsai Bonsai Elasticsearch |
| 38 | +deis-postgresql Deis Workflow Postgres |
| 39 | +librato Librato |
| 40 | +``` |
| 41 | + |
| 42 | +## Provisioning the Add-on |
| 43 | + |
| 44 | +Most service brokers offers a variety of plans, usually spread across different tiers of service: |
| 45 | +hobby, standard, premium, and enterprise. For a detailed breakdown on the available plans, check |
| 46 | +the documentation for the applicable service broker to help choose the right service tier for the |
| 47 | +application. |
| 48 | + |
| 49 | +For example, to provision a `standard` plan database: |
| 50 | + |
| 51 | +``` |
| 52 | +$ deis addons:create deis-postgresql:standard --app wooden-rowboat |
| 53 | +Creating deis-postgresql:standard... done |
| 54 | +Attaching deis-postgresql:standard to wooden-rowboat... done, v5 |
| 55 | +``` |
| 56 | + |
| 57 | +Once the instance has been attached to the application, a DATABASE_URL setting will be available in |
| 58 | +the application's configuration and will contain the URL used to access the newly provisioned |
| 59 | +service. The environment variables exposed by the instance will be viewable through |
| 60 | +`deis config:list`. |
| 61 | + |
| 62 | +## Deprovisioning the Add-on |
| 63 | + |
| 64 | +To deprovision a `standard` plan database: |
| 65 | + |
| 66 | +``` |
| 67 | +$ deis addons:destroy deis-postgresql:standard |
| 68 | +Destroying deis-postgresql:standard... done, v6 |
| 69 | +``` |
| 70 | + |
| 71 | + |
| 72 | +[broker]: ../reference-guide/terms.md#service-broker |
| 73 | +[Open Service Broker API]: https://github.com/openservicebrokerapi/servicebroker |
| 74 | +[service-catalog]: https://github.com/kubernetes-incubator/service-catalog |
0 commit comments