ambassador: image: cpuguy83/docker-grand-ambassador:0.9.1 volumes: - /var/run/docker.sock:/var/run/docker.sock command: "-name docker_apiserver_1" etcd: hostname: etcd image: quay.io/coreos/etcd:v2.0.12 ports: [ "4001:4001" ] command: > --listen-client-urls 'http://etcd:4001' --advertise-client-urls 'http://etcd:4001' --initial-cluster-state new mesosmaster1: hostname: mesosmaster1 image: mesosphere/mesos:0.23.0-1.0.ubuntu1404 entrypoint: [ "mesos-master" ] ports: [ "5050:5050" ] environment: - MESOS_HOSTNAME=mesosmaster1 - MESOS_PORT=5050 - MESOS_LOG_DIR=/var/log/mesos - MESOS_QUORUM=1 - MESOS_REGISTRY=in_memory - MESOS_WORK_DIR=/var/lib/mesos links: - etcd - "ambassador:apiserver" mesosslave1: hostname: mesosslave1 privileged: true image: mesosphere/mesos-slave-dind:0.23.0-1.0.ubuntu1404.docker181 entrypoint: [ "bash", "-c", "wrapdocker mesos-slave --hostname=$(getent hosts mesosslave1 | cut -d' ' -f1 | sort -u | tail -1)" ] command: ~ environment: - MESOS_MASTER=mesosmaster1:5050 - MESOS_PORT=5051 - MESOS_LOG_DIR=/var/log/mesos - MESOS_LOGGING_LEVEL=INFO - MESOS_RESOURCES=cpus:4;mem:1280;disk:25600;ports:[21000-21099] - MESOS_SWITCH_USER=0 - MESOS_CONTAINERIZERS=docker,mesos - MESOS_WORK_DIR=/var/tmp/mesos - DOCKER_NETWORK_OFFSET=0.0.1.0 - DOCKER_DAEMON_ARGS links: - etcd - mesosmaster1 - "ambassador:apiserver" volumes: - ${MESOS_DOCKER_WORK_DIR}/mesosslave1/mesos:/var/tmp/mesos mesosslave2: hostname: mesosslave2 privileged: true image: mesosphere/mesos-slave-dind:0.23.0-1.0.ubuntu1404.docker181 entrypoint: [ "bash", "-c", "wrapdocker mesos-slave --hostname=$(getent hosts mesosslave2 | cut -d' ' -f1 | sort -u | tail -1)" ] command: ~ environment: - MESOS_MASTER=mesosmaster1:5050 - MESOS_PORT=5051 - MESOS_LOG_DIR=/var/log/mesos - MESOS_LOGGING_LEVEL=INFO - MESOS_RESOURCES=cpus:4;mem:1280;disk:25600;ports:[21000-21099] - MESOS_SWITCH_USER=0 - MESOS_CONTAINERIZERS=docker,mesos - MESOS_WORK_DIR=/var/tmp/mesos - DOCKER_NETWORK_OFFSET=0.0.2.0 - DOCKER_DAEMON_ARGS links: - etcd - mesosmaster1 - "ambassador:apiserver" volumes: - ${MESOS_DOCKER_WORK_DIR}/mesosslave2/mesos:/var/tmp/mesos apiserver: hostname: apiserver image: mesosphere/kubernetes-mesos entrypoint: - /bin/bash - "-ceu" - > echo "Hostname: $(hostname -f) ($(hostname -f | xargs resolveip))" && (grep "mesos-master\s*=" /opt/mesos-cloud.conf || echo " mesos-master = mesosmaster1:5050" >> /opt/mesos-cloud.conf) && await-health-check "-t=${MESOS_DOCKER_ETCD_TIMEOUT}" http://etcd:4001/health && await-health-check "-t=${MESOS_DOCKER_MESOS_TIMEOUT}" http://mesosmaster1:5050/health && await-file "-t=${KUBE_KEYGEN_TIMEOUT}" /var/run/kubernetes/auth/apiserver.crt && km apiserver --address=$(resolveip apiserver) --external-hostname=apiserver --etcd-servers=http://etcd:4001 --port=8888 --admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota --authorization-mode=AlwaysAllow --token-auth-file=/var/run/kubernetes/auth/token-users --basic-auth-file=/var/run/kubernetes/auth/basic-users --service-account-key-file=/var/run/kubernetes/auth/service-accounts.key --service-cluster-ip-range=10.10.10.0/24 --service-node-port-range=30000-32767 --cloud-provider=mesos --cloud-config=/opt/mesos-cloud.conf --tls-cert-file=/var/run/kubernetes/auth/apiserver.crt --tls-private-key-file=/var/run/kubernetes/auth/apiserver.key --v=4 ports: [ "8888:8888", "6443:6443" ] environment: - MESOS_DOCKER_ETCD_TIMEOUT - MESOS_DOCKER_MESOS_TIMEOUT - KUBE_KEYGEN_TIMEOUT volumes: - ${MESOS_DOCKER_WORK_DIR}/auth:/var/run/kubernetes/auth:ro links: - etcd - mesosmaster1 controller: hostname: controller image: mesosphere/kubernetes-mesos entrypoint: - /bin/bash - "-ceu" - > echo "Hostname: $(hostname -f) ($(hostname -f | xargs resolveip))" && (grep "mesos-master\s*=" /opt/mesos-cloud.conf || echo " mesos-master = mesosmaster1:5050" >> /opt/mesos-cloud.conf) && await-health-check "-t=${MESOS_DOCKER_MESOS_TIMEOUT}" http://mesosmaster1:5050/health && await-health-check "-t=${MESOS_DOCKER_API_TIMEOUT}" http://apiserver:8888/healthz && km controller-manager --address=$(resolveip controller) --master=http://apiserver:8888 --cloud-config=/opt/mesos-cloud.conf --service-account-private-key-file=/var/run/kubernetes/auth/service-accounts.key --root-ca-file=/var/run/kubernetes/auth/root-ca.crt --v=4 environment: - MESOS_DOCKER_MESOS_TIMEOUT - MESOS_DOCKER_API_TIMEOUT volumes: - ${MESOS_DOCKER_WORK_DIR}/auth:/var/run/kubernetes/auth:ro links: - mesosmaster1 - apiserver scheduler: hostname: scheduler image: mesosphere/kubernetes-mesos entrypoint: - /bin/bash - "-ceu" - > echo "Hostname: $(hostname -f) ($(hostname -f | xargs resolveip))" && (grep "mesos-master\s*=" /opt/mesos-cloud.conf || echo " mesos-master = mesosmaster1:5050" >> /opt/mesos-cloud.conf) && await-health-check "-t=${MESOS_DOCKER_ETCD_TIMEOUT}" http://etcd:4001/health && await-health-check "-t=${MESOS_DOCKER_MESOS_TIMEOUT}" http://mesosmaster1:5050/health && await-health-check "-t=${MESOS_DOCKER_API_TIMEOUT}" http://apiserver:8888/healthz && km scheduler --address=$(resolveip scheduler) --hostname-override=scheduler --etcd-servers=http://etcd:4001 --mesos-user=root --api-servers=http://apiserver:8888 --mesos-master=mesosmaster1:5050 --cluster-dns=10.10.10.10 --cluster-domain=cluster.local --v=4 environment: - MESOS_DOCKER_ETCD_TIMEOUT - MESOS_DOCKER_MESOS_TIMEOUT - MESOS_DOCKER_API_TIMEOUT links: - etcd - mesosmaster1 - mesosslave1 - mesosslave2 - apiserver keygen: image: mesosphere/kubernetes-mesos-keygen command: - apiserver - /var/run/kubernetes/auth volumes: - ${MESOS_DOCKER_WORK_DIR}/auth:/var/run/kubernetes/auth links: - apiserver