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
1=== modified file 'README.md'
2--- README.md 2014-07-17 00:49:18 +0000
3+++ README.md 2014-07-29 17:53:29 +0000
4@@ -130,6 +130,7 @@
5 deployment targets available:
6
7 * landscape
8+ * landscape-dense
9 * landscape-dense-maas
10
11 Targets that start with an underscore should be ignored as they are used
12@@ -156,15 +157,34 @@
13 * add another database unit if you want database replication. The replication
14 configuration happens automatically.
15
16-Landscape dense target
17-----------------------
18-If you are using juju backed by the MAAS provider, and have big enough machines
19-registered with MAAS, you can try out the landscape-dense-maas target. It
20-behaves like its "landscape" counterpart, but everything is deployed into the
21-bootstrap node using LXC.
22-
23-The reason it only works with MAAS for now is that MAAS is the only provider so
24-far that can offer external network connectivity to units deployed into LXC.
25+"landscape-dense" target
26+------------------------
27+The "landscape-dense" target deploys everything on the bootstrap node in the
28+following way:
29+ * apache2, the frontend, is deployed directly on the bootstrap node,
30+ using the co-location feature
31+ * the other services are deployed into containers
32+
33+On non-MAAS providers, containers do not get routable IP addresses. But the
34+only service that needs to be reachable from the "outside" is the frontend, so
35+it doesn't matter that, for example, postgresql or rabbitmq-server or any of
36+the other services have private internal-only addresses. Apache2 can still
37+see them and proxy connections as needed.
38+
39+You will need a big enough bootstrap machine for this deployment. Comfortable
40+constraints are:
41+ * 20Gb disk for deployment and OS (about half used for /var/lib)
42+ * 10Gb of RAM
43+
44+"landscape-dense-maas" target
45+-----------------------------
46+The "landscape-dense-maas" target is just like the "landscape-dense" one,
47+but everything is deployed using containers. Even the frontend.
48+
49+This works when MAAS is the provider because in this case containers get
50+routable IP addresses, so the frontend can be inside a container too.
51+
52+The hardware constraints are the same as for the "landscape-dense" target.
53
54 Customized deployments
55 -----------------------
56
57=== modified file 'config/landscape-deployments.yaml'
58--- config/landscape-deployments.yaml 2014-07-24 11:07:56 +0000
59+++ config/landscape-deployments.yaml 2014-07-29 17:53:29 +0000
60@@ -58,6 +58,12 @@
61 - [landscape-msg, haproxy]
62 - ["landscape-msg:db-admin", "postgresql:db-admin"]
63
64+landscape-dense:
65+ inherits: landscape-dense-maas
66+ services:
67+ apache2:
68+ to: 0
69+
70 landscape-dense-maas:
71 inherits: landscape
72 services:

Subscribers

People subscribed via source and target branches