diff options
Diffstat (limited to 'ci/trusty/ubuntu-nodes-controller')
-rw-r--r-- | ci/trusty/ubuntu-nodes-controller/README | 3 | ||||
-rw-r--r-- | ci/trusty/ubuntu-nodes-controller/copyright | 17 | ||||
-rwxr-xr-x | ci/trusty/ubuntu-nodes-controller/hooks/install | 30 | ||||
-rw-r--r-- | ci/trusty/ubuntu-nodes-controller/icon.svg | 279 | ||||
-rwxr-xr-x | ci/trusty/ubuntu-nodes-controller/lxc/add-more-interface | 52 | ||||
-rwxr-xr-x | ci/trusty/ubuntu-nodes-controller/lxc/add-more-interfaces | 52 | ||||
-rw-r--r-- | ci/trusty/ubuntu-nodes-controller/lxc/ubuntu-cloud.trusty.conf | 2 | ||||
-rw-r--r-- | ci/trusty/ubuntu-nodes-controller/metadata.yaml | 7 | ||||
-rw-r--r-- | ci/trusty/ubuntu-nodes-controller/network/interfaces.host | 36 | ||||
-rw-r--r-- | ci/trusty/ubuntu-nodes-controller/revision | 1 |
10 files changed, 479 insertions, 0 deletions
diff --git a/ci/trusty/ubuntu-nodes-controller/README b/ci/trusty/ubuntu-nodes-controller/README new file mode 100644 index 00000000..1a73633f --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/README @@ -0,0 +1,3 @@ +You need to edit: + * network/interfaces.host + * lxc/add-more-interfaces diff --git a/ci/trusty/ubuntu-nodes-controller/copyright b/ci/trusty/ubuntu-nodes-controller/copyright new file mode 100644 index 00000000..43e04d48 --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/copyright @@ -0,0 +1,17 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ + +Files: * +Copyright: Copyright 2012, Canonical Ltd., All Rights Reserved. +License: GPL-3 + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. diff --git a/ci/trusty/ubuntu-nodes-controller/hooks/install b/ci/trusty/ubuntu-nodes-controller/hooks/install new file mode 100755 index 00000000..17265f56 --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/hooks/install @@ -0,0 +1,30 @@ +#!/bin/bash + +set -e +set -u + +## install lxc pre-configuration to setup multiple interfaces +status-set maintenance "setting up lxc clone hook" || true +mkdir -p /usr/local/share/lxc/hooks/ +install -m 755 lxc/add-more-interfaces /usr/local/share/lxc/hooks/ + +dpkg-divert --local \ + --divert /usr/share/lxc/config/ubuntu-cloud.trusty.conf.ubuntu.orig \ + --add /usr/share/lxc/config/ubuntu-cloud.trusty.conf +mkdir -p /usr/share/lxc/config/ +install -m 644 lxc/ubuntu-cloud.trusty.conf /usr/share/lxc/config/ + +## network interfaces +status-set maintenance "setting up network interfaces" || true +apt-get update || true +apt-get install -y ifenslave ethtool bridge-utils vlan + +if ! grep -q 8021q /etc/modules; then + echo 8021q >> /etc/modules +fi + +## write /etc/network/interfaces for the host +install -m 644 network/interfaces.host /etc/network/interfaces +ifup -a + +status-set active || true diff --git a/ci/trusty/ubuntu-nodes-controller/icon.svg b/ci/trusty/ubuntu-nodes-controller/icon.svg new file mode 100644 index 00000000..a5576ed2 --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/icon.svg @@ -0,0 +1,279 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="96" + height="96" + id="svg6517" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="icon.svg"> + <defs + id="defs6519"> + <linearGradient + id="Background"> + <stop + id="stop4178" + offset="0" + style="stop-color:#b8b8b8;stop-opacity:1" /> + <stop + id="stop4180" + offset="1" + style="stop-color:#c9c9c9;stop-opacity:1" /> + </linearGradient> + <filter + style="color-interpolation-filters:sRGB;" + inkscape:label="Inner Shadow" + id="filter1121"> + <feFlood + flood-opacity="0.59999999999999998" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood1123" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="out" + result="composite1" + id="feComposite1125" /> + <feGaussianBlur + in="composite1" + stdDeviation="1" + result="blur" + id="feGaussianBlur1127" /> + <feOffset + dx="0" + dy="2" + result="offset" + id="feOffset1129" /> + <feComposite + in="offset" + in2="SourceGraphic" + operator="atop" + result="composite2" + id="feComposite1131" /> + </filter> + <filter + style="color-interpolation-filters:sRGB;" + inkscape:label="Drop Shadow" + id="filter950"> + <feFlood + flood-opacity="0.25" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood952" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite954" /> + <feGaussianBlur + in="composite1" + stdDeviation="1" + result="blur" + id="feGaussianBlur956" /> + <feOffset + dx="0" + dy="1" + result="offset" + id="feOffset958" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite960" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath873"> + <g + transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)" + id="g875" + inkscape:label="Layer 1" + style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"> + <path + style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline" + d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z" + id="path877" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssssss" /> + </g> + </clipPath> + <filter + inkscape:collect="always" + id="filter891" + inkscape:label="Badge Shadow"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.71999962" + id="feGaussianBlur893" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="4.0745362" + inkscape:cx="-28.607257" + inkscape:cy="88.286442" + inkscape:document-units="px" + inkscape:current-layer="layer3" + showgrid="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:window-width="1680" + inkscape:window-height="1026" + inkscape:window-x="1920" + inkscape:window-y="24" + inkscape:window-maximized="1" + showborder="true" + showguides="true" + inkscape:guide-bbox="true" + inkscape:showpageshadow="false"> + <inkscape:grid + type="xygrid" + id="grid821" /> + <sodipodi:guide + orientation="1,0" + position="16,48" + id="guide823" /> + <sodipodi:guide + orientation="0,1" + position="64,80" + id="guide825" /> + <sodipodi:guide + orientation="1,0" + position="80,40" + id="guide827" /> + <sodipodi:guide + orientation="0,1" + position="64,16" + id="guide829" /> + </sodipodi:namedview> + <metadata + id="metadata6522"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="BACKGROUND" + inkscape:groupmode="layer" + id="layer1" + transform="translate(268,-635.29076)" + style="display:inline"> + <path + style="fill:#ffffff;fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)" + d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z" + id="path6455" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssssss" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="PLACE YOUR PICTOGRAM HERE" + style="display:inline"> + <path + style="fill:#dd4814" + inkscape:connector-curvature="0" + d="m 80.02465,48.074075 c 0,17.686843 -14.339141,32.025811 -32.0271,32.025811 -17.687958,0 -32.026421,-14.338743 -32.026421,-32.025811 0,-17.688199 14.338241,-32.026715 32.026195,-32.026715 17.68796,0 32.027326,14.338516 32.027326,32.026715 z" + id="path4010" /> + <path + style="fill:#ffffff" + inkscape:connector-curvature="0" + d="m 26.220054,43.798393 c -2.362021,0 -4.275962,1.913911 -4.275962,4.275907 0,2.361093 1.913941,4.275231 4.275962,4.275231 2.361119,0 4.275282,-1.914138 4.275282,-4.275231 0,-2.362222 -1.913941,-4.275907 -4.275282,-4.275907 z m 30.529623,19.433315 c -2.045225,1.18066 -2.745267,3.794605 -1.565046,5.838898 1.1809,2.045195 3.794652,2.745681 5.839872,1.565023 2.044543,-1.180434 2.74504,-3.79438 1.564365,-5.839349 -1.180448,-2.044293 -3.794653,-2.745006 -5.839191,-1.564572 z M 35.507719,48.073623 c 0,-4.225745 2.099906,-7.958209 5.311109,-10.218297 l -3.126015,-5.236253 c -3.742,2.500061 -6.52546,6.322008 -7.681724,10.798345 1.350601,1.100895 2.213568,2.777317 2.213568,4.656657 0,1.878886 -0.862967,3.55531 -2.21379,4.655978 1.156042,4.47679 3.93971,8.298736 7.681724,10.798571 L 40.818828,58.29192 C 37.607625,56.032284 35.507719,52.300044 35.507719,48.073623 z M 47.998001,35.583488 c 6.525227,0 11.877689,5.003059 12.438766,11.382461 l 6.093858,-0.08903 c -0.29986,-4.709984 -2.357282,-8.939569 -5.519227,-12.048149 -1.625601,0.614168 -3.503606,0.521072 -5.126722,-0.416225 -1.625149,-0.938201 -2.644935,-2.52085 -2.924231,-4.238398 -1.579953,-0.437239 -3.242841,-0.67563 -4.962218,-0.67563 -2.956999,0 -5.750608,0.694159 -8.232178,1.9234 l 2.970551,5.323701 c 1.599166,-0.744098 3.381133,-1.162131 5.261401,-1.162131 z m 0,24.980495 c -1.88049,0 -3.662235,-0.418033 -5.261623,-1.162131 l -2.971009,5.324152 c 2.481792,1.22879 5.275637,1.923176 8.232632,1.923176 1.719377,0 3.382263,-0.238391 4.962444,-0.67563 0.279296,-1.71755 1.299306,-3.300198 2.924683,-4.239076 1.623114,-0.936846 3.501122,-1.029942 5.126723,-0.415548 3.16172,-3.108806 5.219142,-7.338391 5.518545,-12.048375 l -6.093857,-0.08903 c -0.560621,6.380306 -5.913311,11.382461 -12.438538,11.382461 z m 8.750994,-27.648671 c 2.044997,1.18111 4.6592,0.480398 5.83942,-1.563894 1.1809,-2.045197 0.480858,-4.659142 -1.564362,-5.840027 -2.04477,-1.180434 -4.658747,-0.479947 -5.839647,1.565249 -1.180448,2.044291 -0.479954,4.658463 1.564589,5.838672 z" + id="path4012" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="BADGE" + style="display:none" + sodipodi:insensitive="true"> + <g + style="display:inline" + transform="translate(-340.00001,-581)" + id="g4394" + clip-path="none"> + <g + id="g855"> + <g + inkscape:groupmode="maskhelper" + id="g870" + clip-path="url(#clipPath873)" + style="opacity:0.6;filter:url(#filter891)"> + <path + transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)" + d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z" + sodipodi:ry="12" + sodipodi:rx="12" + sodipodi:cy="552.36218" + sodipodi:cx="252" + id="path844" + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + </g> + <g + id="g862"> + <path + sodipodi:type="arc" + style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4398" + sodipodi:cx="252" + sodipodi:cy="552.36218" + sodipodi:rx="12" + sodipodi:ry="12" + d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z" + transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" /> + <path + transform="matrix(1.25,0,0,1.25,33,-100.45273)" + d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z" + sodipodi:ry="12" + sodipodi:rx="12" + sodipodi:cy="552.36218" + sodipodi:cx="252" + id="path4400" + style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="star" + style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4459" + sodipodi:sides="5" + sodipodi:cx="666.19574" + sodipodi:cy="589.50385" + sodipodi:r1="7.2431178" + sodipodi:r2="4.3458705" + sodipodi:arg1="1.0471976" + sodipodi:arg2="1.6755161" + inkscape:flatsided="false" + inkscape:rounded="0.1" + inkscape:randomized="0" + d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 -0.18379,0.41279 0.0427,4.27917 -0.34859,4.5051 z" + transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" /> + </g> + </g> + </g> + </g> +</svg> diff --git a/ci/trusty/ubuntu-nodes-controller/lxc/add-more-interface b/ci/trusty/ubuntu-nodes-controller/lxc/add-more-interface new file mode 100755 index 00000000..c9bca9fd --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/lxc/add-more-interface @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e +set -u + +cat <<EOF >> "$LXC_CONFIG_FILE" + +## added by juju charm +lxc.network.type = veth +lxc.network.flags = up +lxc.network.link = brData +lxc.network.name = eth1 +lxc.network.hwaddr = 00:16:3e:$(openssl rand -hex 3| sed 's/\(..\)/\1:/g; s/.$//') + +lxc.network.type = veth +lxc.network.flags = up +lxc.network.link = brPublic +lxc.network.name = eth2 +lxc.network.hwaddr = 00:16:3e:$(openssl rand -hex 3| sed 's/\(..\)/\1:/g; s/.$//') +EOF + +USERDATA="$LXC_ROOTFS_PATH/var/lib/cloud/seed/nocloud-net/user-data" + +additional_interfaces=" +- | + cat <<EOF >> /etc/network/interfaces.d/additional-interfaces + ## added by juju charm + ## those interfaces will be brought up by the upstart job as /etc/init/additional-interfaces.conf + ## LP: #1483932 + auto eth1 + iface eth1 inet dhcp + + auto eth2 + iface eth2 inet dhcp + EOF +- machine_agent=\$(hostname | sed -e 's/^juju-/jujud-/') +- | + cat <<EOF > /etc/init/additional-interfaces.conf + ## added by juju charm + ## LP: #1483932 + start on started \${machine_agent} + + script + sleep 10 + ifup -a -i /etc/network/interfaces.d/additional-interfaces + end script + EOF +" +additional_interfaces=$(echo "$additional_interfaces" | sed -e 's/$/\\n/' | tr -d '\n') + +sed -i.orig -e "s@^runcmd:@\0$additional_interfaces@" \ + "$USERDATA" diff --git a/ci/trusty/ubuntu-nodes-controller/lxc/add-more-interfaces b/ci/trusty/ubuntu-nodes-controller/lxc/add-more-interfaces new file mode 100755 index 00000000..c9bca9fd --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/lxc/add-more-interfaces @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e +set -u + +cat <<EOF >> "$LXC_CONFIG_FILE" + +## added by juju charm +lxc.network.type = veth +lxc.network.flags = up +lxc.network.link = brData +lxc.network.name = eth1 +lxc.network.hwaddr = 00:16:3e:$(openssl rand -hex 3| sed 's/\(..\)/\1:/g; s/.$//') + +lxc.network.type = veth +lxc.network.flags = up +lxc.network.link = brPublic +lxc.network.name = eth2 +lxc.network.hwaddr = 00:16:3e:$(openssl rand -hex 3| sed 's/\(..\)/\1:/g; s/.$//') +EOF + +USERDATA="$LXC_ROOTFS_PATH/var/lib/cloud/seed/nocloud-net/user-data" + +additional_interfaces=" +- | + cat <<EOF >> /etc/network/interfaces.d/additional-interfaces + ## added by juju charm + ## those interfaces will be brought up by the upstart job as /etc/init/additional-interfaces.conf + ## LP: #1483932 + auto eth1 + iface eth1 inet dhcp + + auto eth2 + iface eth2 inet dhcp + EOF +- machine_agent=\$(hostname | sed -e 's/^juju-/jujud-/') +- | + cat <<EOF > /etc/init/additional-interfaces.conf + ## added by juju charm + ## LP: #1483932 + start on started \${machine_agent} + + script + sleep 10 + ifup -a -i /etc/network/interfaces.d/additional-interfaces + end script + EOF +" +additional_interfaces=$(echo "$additional_interfaces" | sed -e 's/$/\\n/' | tr -d '\n') + +sed -i.orig -e "s@^runcmd:@\0$additional_interfaces@" \ + "$USERDATA" diff --git a/ci/trusty/ubuntu-nodes-controller/lxc/ubuntu-cloud.trusty.conf b/ci/trusty/ubuntu-nodes-controller/lxc/ubuntu-cloud.trusty.conf new file mode 100644 index 00000000..b7636b58 --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/lxc/ubuntu-cloud.trusty.conf @@ -0,0 +1,2 @@ +## added by juju charm +lxc.hook.clone = /usr/local/share/lxc/hooks/add-more-interfaces diff --git a/ci/trusty/ubuntu-nodes-controller/metadata.yaml b/ci/trusty/ubuntu-nodes-controller/metadata.yaml new file mode 100644 index 00000000..8a57c088 --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/metadata.yaml @@ -0,0 +1,7 @@ +name: ubuntu-nodes-controller +summary: A pristine Ubuntu Server +maintainer: Charmers <juju@lists.ubuntu.com> +description: | + This simply deploys Ubuntu Server. +tags: + - misc diff --git a/ci/trusty/ubuntu-nodes-controller/network/interfaces.host b/ci/trusty/ubuntu-nodes-controller/network/interfaces.host new file mode 100644 index 00000000..9377814c --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/network/interfaces.host @@ -0,0 +1,36 @@ +#### original juju generated part #### +auto lo + +# Primary interface (defining the default route) +iface eth0 inet manual + +# Bridge to use for LXC/KVM containers +auto juju-br0 +iface juju-br0 inet dhcp + bridge_ports eth0 +###################################### + +auto eth2 +iface eth2 inet manual + +auto eth2.721 +iface eth2.721 inet manual + +auto brData +iface brData inet dhcp + bridge_ports eth2.721 + bridge_stp off + bridge_fd 0 + bridge_maxwait 0 + +# The public network interface +auto eth2.724 +iface eth2.724 inet manual + +auto brPublic +iface brPublic inet dhcp + bridge_ports eth2.724 + bridge_stp off + bridge_fd 0 + bridge_maxwait 0 + diff --git a/ci/trusty/ubuntu-nodes-controller/revision b/ci/trusty/ubuntu-nodes-controller/revision new file mode 100644 index 00000000..d00491fd --- /dev/null +++ b/ci/trusty/ubuntu-nodes-controller/revision @@ -0,0 +1 @@ +1 |