Skip to content

Instantly share code, notes, and snippets.

@colebrumley
Last active August 29, 2015 14:22
Show Gist options
  • Save colebrumley/7229da41c9f21aa08d13 to your computer and use it in GitHub Desktop.
Save colebrumley/7229da41c9f21aa08d13 to your computer and use it in GitHub Desktop.
user-data.weave.yml
#cloud-config
---
coreos:
etcd:
discovery: https://discovery.etcd.io/559e1af13634ecbb80dfa0a0d04cff9a
addr: $public_ipv4:4001
peer-addr: $public_ipv4:7001
fleet:
public-ip: $public_ipv4
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
- name: docker-tcp.socket
command: start
enable: true
content: |
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=2375
Service=docker.service
BindIPv6Only=both
[Install]
WantedBy=sockets.target
- name: 10-weave.network
runtime: false
content: |
[Match]
Type=bridge
Name=weave*
[Network]
- name: install-weave.service
command: start
enable: true
content: |
[Unit]
After=network-online.target
After=docker.service
Description=Install Weave
Documentation=http://zettio.github.io/weave/
Requires=network-online.target
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/bin/mkdir -p /opt/bin/
ExecStartPre=/usr/bin/curl \
--silent \
--location \
https://github.com/weaveworks/weave/releases/download/latest_release/weave \
--output /opt/bin/weave
ExecStartPre=/usr/bin/chmod +x /opt/bin/weave
ExecStartPre=/usr/bin/docker pull zettio/weave:latest
ExecStartPre=/usr/bin/docker pull zettio/weavetools:latest
ExecStartPre=/usr/bin/docker pull zettio/weavedns:latest
ExecStartPre=/usr/bin/docker pull weaveworks/weaveexec:latest
ExecStart=/bin/echo Weave Installed
- name: weave.service
command: start
enable: true
content: |
[Unit]
After=install-weave.service
Description=Weave Network
Documentation=http://zettio.github.io/weave/
Requires=install-weave.service
[Service]
EnvironmentFile=/etc/weave.%H.env
ExecStartPre=/opt/bin/weave launch -iprange 10.99.0.0/16 $WEAVE_LAUNCH_ARGS
ExecStart=/usr/bin/docker logs -f weave
SuccessExitStatus=2
ExecStop=/opt/bin/weave stop
- name: weave-dns.service
command: start
enable: true
content: |
[Unit]
After=weave.service
Description=Weave Network
Documentation=http://zettio.github.io/weave/
Requires=install-weave.service
Requires=weave.service
[Service]
EnvironmentFile=/etc/weave.%H.env
ExecStartPre=/opt/bin/weave launch-dns 10.99.0.0/16
ExecStart=/usr/bin/docker logs -f weavedns
SuccessExitStatus=2
ExecStop=/opt/bin/weave stop-dns
- name: load-services.service
command: start
content: |
[Service]
Type=oneshot
ExecStart=/srv/load.sh
write_files:
- path: /etc/weave.core-01.env
permissions: 416
owner: root
content: |
WEAVE_LAUNCH_ARGS=""
- path: /etc/weave.core-02.env
permissions: 416
owner: root
content: |
WEAVE_LAUNCH_ARGS="172.17.8.101"
- path: /etc/weave.core-03.env
permissions: 416
owner: root
content: WEAVE_LAUNCH_ARGS="172.17.8.101"
- path: /etc/fleet/influxdb.service
permissions: 416
owner: root
content: |
[Unit]
Description=InfluxDB Service
[Service]
TimeoutStartSec=10m
Restart=always
ExecStartPre=-/usr/bin/docker kill influxdb
ExecStartPre=-/usr/bin/docker rm -f influxdb
ExecStartPre=/usr/bin/docker pull kubernetes/heapster_influxdb:v0.3
ExecStartPre=/opt/bin/weave run --with-dns -p 8083:8083 -p 8086:8086 --name influxdb -h influxdb.weave.local kubernetes/heapster_influxdb:v0.3
ExecStart=/usr/bin/docker logs -f influxdb
ExecStop=/usr/bin/docker stop -t 2 influxdb
[X-Fleet]
X-Conflicts=influxdb.service
- path: /etc/fleet/heapster.service
permissions: 416
owner: root
content: |
[Unit]
Description=Heapster Service
[Service]
EnvironmentFile=/etc/environment
TimeoutStartSec=10m
Restart=always
ExecStartPre=-/usr/bin/docker kill heapster
ExecStartPre=-/usr/bin/docker rm -f heapster
ExecStartPre=/usr/bin/docker pull elcolio/heapster-docker
ExecStartPre=/bin/bash -c '/opt/bin/weave run --with-dns --name heapster elcolio/heapster-docker --source="cadvisor:coreos?cadvisorPort=4194&fleetEndpoint=http://${COREOS_PUBLIC_IPV4}:4001" --sink=influxdb:http://influxdb.weave.local:8086'
ExecStart=/usr/bin/docker logs -f heapster
ExecStop=/usr/bin/docker stop -t 2 heapster
[X-Fleet]
X-Conflicts=heapster.service
- path: /etc/fleet/cadvisor.service
permissions: 416
owner: root
content: |-
[Unit]
Description=cAdvisor Service
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=10m
Restart=always
ExecStartPre=-/usr/bin/docker kill cadvisor
ExecStartPre=-/usr/bin/docker rm -f cadvisor
ExecStartPre=/usr/bin/docker pull google/cadvisor
ExecStartPre=/opt/bin/weave run --with-dns -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -p 4194:4194 --name cadvisor google/cadvisor:latest --logtostderr --port=4194
ExecStart=/usr/bin/docker logs -f cadvisor
ExecStop=/usr/bin/docker stop -t 2 cadvisor
[X-Fleet]
Global=true
- path: /srv/load.sh
permissions: '0755'
content: |-
#!/bin/bash
if [[ $HOSTNAME -eq "core-01" ]]; then
for var in $(ls /etc/fleet); do
fleetctl load /etc/fleet/$var
done
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment