Merge lp:~ahasenack/landscape-charm/new-dense-target-experiment into lp:~landscape/landscape-charm/trunk

Proposed by Andreas Hasenack
Status: Merged
Approved by: Andreas Hasenack
Approved revision: 203
Merged at revision: 201
Proposed branch: lp:~ahasenack/landscape-charm/new-dense-target-experiment
Merge into: lp:~landscape/landscape-charm/trunk
Diff against target: 72 lines (+35/-9)
2 files modified
README.md (+29/-9)
config/landscape-deployments.yaml (+6/-0)
To merge this branch: bzr merge lp:~ahasenack/landscape-charm/new-dense-target-experiment
Reviewer Review Type Date Requested Status
Free Ekanayaka (community) Approve
Geoff Teale (community) Approve
Review via email: mp+228736@code.launchpad.net

Commit message

New deployer target called "landscape-dense", that deploys a working LDS on the bootstrap node on providers other than MAAS.

Description of the change

This adds a new deployer target called "landscape-dense". It's just like "landscape-dense-maas", but works on other providers where containers don't get routable IP addresses.

The trick is simple: we only need the frontend (apache2) to be reachable from the "outside". So I co-locate apache2 on the bootstrap node, and deploy the rest on containers.

I wondered if we need to keep the maas-only target. It's cleaner, in the sense that no hulk-smashing is done. But landscape-dense works everywhere. Discuss! :)

To post a comment you must log in.
Revision history for this message
Geoff Teale (tealeg) wrote :

+1 Tested on scapestack, works a treat!

review: Approve
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Thanks, but to really test this you need to deploy the bundle on an environment that is not MAAS, because on MAAS the containers get routable IP addresses :)

Revision history for this message
Free Ekanayaka (free.ekanayaka) wrote :

+1

As mentioned at standup, Juju is going to implement containers routing for non-MAAS providers, so this code might eventually become obsolete.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'README.md'
--- README.md 2014-07-17 00:49:18 +0000
+++ README.md 2014-07-29 17:53:29 +0000
@@ -130,6 +130,7 @@
130deployment targets available:130deployment targets available:
131131
132 * landscape132 * landscape
133 * landscape-dense
133 * landscape-dense-maas134 * landscape-dense-maas
134135
135Targets that start with an underscore should be ignored as they are used136Targets that start with an underscore should be ignored as they are used
@@ -156,15 +157,34 @@
156 * add another database unit if you want database replication. The replication157 * add another database unit if you want database replication. The replication
157 configuration happens automatically.158 configuration happens automatically.
158159
159Landscape dense target160"landscape-dense" target
160----------------------161------------------------
161If you are using juju backed by the MAAS provider, and have big enough machines162The "landscape-dense" target deploys everything on the bootstrap node in the
162registered with MAAS, you can try out the landscape-dense-maas target. It163following way:
163behaves like its "landscape" counterpart, but everything is deployed into the164 * apache2, the frontend, is deployed directly on the bootstrap node,
164bootstrap node using LXC.165 using the co-location feature
165166 * the other services are deployed into containers
166The reason it only works with MAAS for now is that MAAS is the only provider so167
167far that can offer external network connectivity to units deployed into LXC.168On non-MAAS providers, containers do not get routable IP addresses. But the
169only service that needs to be reachable from the "outside" is the frontend, so
170it doesn't matter that, for example, postgresql or rabbitmq-server or any of
171the other services have private internal-only addresses. Apache2 can still
172see them and proxy connections as needed.
173
174You will need a big enough bootstrap machine for this deployment. Comfortable
175constraints are:
176 * 20Gb disk for deployment and OS (about half used for /var/lib)
177 * 10Gb of RAM
178
179"landscape-dense-maas" target
180-----------------------------
181The "landscape-dense-maas" target is just like the "landscape-dense" one,
182but everything is deployed using containers. Even the frontend.
183
184This works when MAAS is the provider because in this case containers get
185routable IP addresses, so the frontend can be inside a container too.
186
187The hardware constraints are the same as for the "landscape-dense" target.
168188
169Customized deployments189Customized deployments
170-----------------------190-----------------------
171191
=== modified file 'config/landscape-deployments.yaml'
--- config/landscape-deployments.yaml 2014-07-24 11:07:56 +0000
+++ config/landscape-deployments.yaml 2014-07-29 17:53:29 +0000
@@ -58,6 +58,12 @@
58 - [landscape-msg, haproxy]58 - [landscape-msg, haproxy]
59 - ["landscape-msg:db-admin", "postgresql:db-admin"]59 - ["landscape-msg:db-admin", "postgresql:db-admin"]
6060
61landscape-dense:
62 inherits: landscape-dense-maas
63 services:
64 apache2:
65 to: 0
66
61landscape-dense-maas:67landscape-dense-maas:
62 inherits: landscape68 inherits: landscape
63 services:69 services:

Subscribers

People subscribed via source and target branches