UNPKG

cfk

Version:
188 lines (180 loc) 6.63 kB
services: reporter: image: "finboxio/reporter:${CFK_VERSION}" container_name: reporter hostname: "${HOSTNAME}-reporter.weave.local" volumes: - "/var/run/weave/weave.sock:/var/run/docker.sock" - "/data/reporter:/srv/reporter" environment: CFK_START_AFTER: "discovery" HOSTNAME: "${HOSTNAME}" DOMAIN: "${DOMAIN}" SLACK_HOOK: "${SLACK_HOOK}" SLACK_CHANNEL: "${SLACK_CHANNEL}" router: image: "finboxio/router:${CFK_VERSION}" container_name: router hostname: "${HOSTNAME}-router.weave.local" dns: - "172.42.0.1" - "8.8.8.8" - "8.8.4.4" ports: - "80:80" - "81:81" - "9090:9090" - "${HOST_IP}:53:53" - "${HOST_IP}:53:53/udp" environment: CFK_START_AFTER: "reporter" CFK_ROLE: "${CFK_ROLE}" CFK_VERSION: "${CFK_VERSION}" CONSUL_MINWAIT: "${CONSUL_MINWAIT}" CONSUL_MAXWAIT: "${CONSUL_MAXWAIT}" CONSUL_MAXSTALE: "${CONSUL_MAXSTALE}" SERVICE_80_NAME: "router" SERVICE_80_TAGS: "${CFK_ROLE},http,admin" SERVICE_81_NAME: "proxy-router" SERVICE_81_TAGS: "${CFK_ROLE},http,admin" SERVICE_9090_NAME: "haproxy" SERVICE_9090_TAGS: "${CFK_ROLE},http,admin" SERVICE_53_NAME: "router-dns" HOSTNAME: "${HOSTNAME}" HAPROXY_DOMAIN: "${DOMAIN}" CONSUL_URL: "${HOST_IP}:8500" ADMIN_USER: "${ADMIN_USER}" ADMIN_PASS: "${ADMIN_PASS}" FORCE_SSL: "${FORCE_SSL}" FALLBACK_URL: "${FALLBACK_URL}" REQUIRED_SERVICES: router-9090,agent-consul-8500,agent-mesos-5051 agent-consul: image: gliderlabs/consul-agent:0.6 container_name: agent-consul hostname: agent-consul.weave.local ports: - "8300:8300" - "8301:8301" - "8301:8301/udp" - "8302:8302" - "8302:8302/udp" - "8400:8400" - "8500:8500" - "8600:8600" - "8600:8600/udp" command: "-node ${HOSTNAME} -advertise ${HOST_IP}" volumes: - "/usr/bin/jq:/usr/bin/jq" environment: CFK_START_AFTER: "router" CFK_START_PRECONDITION: > dig +short @${HOST_IP} ${HOSTNAME}-router.weave.local | grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' GOMAXPROCS: 2 SERVICE_8500_NAME: "agent-consul" SERVICE_8500_TAGS: "${CFK_ROLE},http,admin" SERVICE_8500_CHECK_HTTP: "/v1/status/leader" SERVICE_8500_CHECK_INTERVAL: "30s" SERVICE_8500_CHECK_TIMEOUT: "5s" SERVICE_8600_NAME: "consul-dns" SERVICE_8300_IGNORE: "true" SERVICE_8301_IGNORE: "true" SERVICE_8302_IGNORE: "true" SERVICE_8400_IGNORE: "true" SERVICE_53_IGNORE: "true" # logstash: # image: logstash:2.1 # container_name: logstash # hostname: "${HOSTNAME}-logstash.weave.local" # volumes: # - "/data/logstash:/srv/logstash" # - "/data/reporter:/srv/reporter" # command: "logstash -e \"input { file { path => '/srv/reporter/containers.log' codec => json sincedb_path => '/srv/logstash/sincedb' } } output { elasticsearch { hosts => 'elasticsearch' } }\"" # environment: # CFK_START_AFTER: "consul-agent" # CFK_START_PRECONDITION: > # curl -s -f localhost:8500/v1/health/service/elasticsearch # | jq -e ".[] | .Checks | .[] # | jq -s ".[] | select(.Status==\"warning\" or .Status==\"critical\")" # | jq -s "." # | jq -e "length == 0" reaper: image: "finboxio/reaper:${CFK_VERSION}" container_name: reaper hostname: "${HOSTNAME}-reaper.weave.local" volumes: - "/var/run/weave/weave.sock:/var/run/docker.sock" environment: CFK_START_AFTER: "agent-consul" CFK_START_PRECONDITION: > curl -s -f localhost:8500/v1/health/service/consul | jq -e ".[] | .Checks | .[]" | jq -s ".[] | select(.Status==\"warning\" or .Status==\"critical\")" | jq -s "." | jq -e "length == 0" GRACE_PERIOD: "600" CONSUL_URL: "${HOST_IP}:8500" HOSTNAME: "${HOSTNAME}" DOMAIN: "${DOMAIN}" INTERVAL: "30" MAX_FAILURES: "9" SLACK_HOOK: "${SLACK_HOOK}" SLACK_CHANNEL: "${SLACK_CHANNEL}" registrator: # TODO: Switch back to original gliderlabs/registrator once https://github.com/gliderlabs/registrator/pull/245 is merged image: johnydays/registrator container_name: registrator hostname: "${HOSTNAME}-registrator.weave.local" volumes: - "/var/run/weave/weave.sock:/tmp/docker.sock" command: "-internal -retry-attempts -1 -deregister always -resync 30 consul://${HOST_IP}:8500" environment: CFK_START_AFTER: "agent-consul" CFK_START_PRECONDITION: > curl -s -f localhost:8500/v1/health/service/consul | jq -e ".[] | .Checks | .[]" | jq -s ".[] | select(.Status==\"warning\" or .Status==\"critical\")" | jq -s "." | jq -e "length == 0" HOSTNAME: "${HOSTNAME}" agent-mesos: image: mesosphere/mesos-slave:0.28.1 container_name: agent-mesos hostname: agent-mesos.weave.local ports: - "5051:5051" privileged: true pid: host volumes: - "/var/run/weave/weave.sock:/var/run/weave/weave.sock" - "/usr/bin/docker:/usr/bin/docker:ro" - "/usr/lib/x86_64-linux-gnu/libapparmor.so.1.1.0:/usr/lib/x86_64-linux-gnu/libapparmor.so.1" - "/tmp/mesos:/tmp/mesos" environment: CFK_START_AFTER: "registrator" CFK_START_PRECONDITION: > curl -s -f localhost:8500/v1/health/service/mesos | jq -e ".[] | .Checks | .[]" | jq -s ".[] | select(.Status==\"warning\" or .Status==\"critical\")" | jq -s "." | jq -e "length == 0" && curl -s -f localhost:8500/v1/health/service/mesos | jq -e ".[] | .Checks | .[] | select(.ServiceName==\"mesos\")" | jq -s ".[] | select(.Status==\"passing\")" | jq -s "." | jq -e "length >= ${QUORUM_NUM}" SERVICE_NAME: "agent-mesos" SERVICE_TAGS: "${CFK_ROLE},http,admin" SERVICE_CHECK_SCRIPT: > curl -s -f http://mesos.router.local/master/state.json | jq ".slaves | .[].id" | grep $$(curl -s http://${HOST_IP}:5051/state.json | jq ".id") MESOS_CONTAINERIZERS: "docker,mesos" MESOS_DEFAULT_CONTAINER_IMAGE: "ubuntu:14.04" MESOS_DOCKER: "/usr/bin/docker" MESOS_DOCKER_PULLER_TIMEOUT_SECS: "300" MESOS_DOCKER_STOP_TIMEOUT: "10secs" MESOS_DOCKER_SOCKET: "/var/run/weave/weave.sock" MESOS_EXECUTOR_REGISTRATION_TIMEOUT: "10mins" MESOS_MASTER: "zk://zookeeper:2181/mesos" MESOS_HOSTNAME: "${HOSTNAME}"