Skip to content

Instantly share code, notes, and snippets.

@colebrumley
Last active August 29, 2015 14:22

Revisions

  1. Cole Brumley renamed this gist May 28, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. Cole Brumley created this gist May 28, 2015.
    175 changes: 175 additions & 0 deletions gistfile1.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,175 @@
    #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