From 8110aaf91b876ea885c96a5031fdc795c4cd5489 Mon Sep 17 00:00:00 2001 From: Gabriel Monroy Date: Thu, 3 Apr 2014 13:17:59 -0600 Subject: [PATCH] refactor(makefile): dispatch to relevant coreos utilities chore(makefile): stop on uninstall chore(makefile): separate clean and full-clean chore(makefile): separate clean and full-clean perf(makefile): batch ssh calls in root makefile fix(Makefile): run make cmds on vagrant in order to be consistent, all commands should be run under vagrant. --- Makefile | 41 ++++++++++++++++++++++++++++---- builder/Makefile | 34 ++++++++++++++++++--------- cache/Makefile | 32 ++++++++++++++++++------- controller/Makefile | 36 +++++++++++++++++++++------- database/Makefile | 57 +++++++++++++++++++++------------------------ discovery/Makefile | 33 +++++++++++++++++++------- logger/Makefile | 32 ++++++++++++++++++------- registry/Makefile | 32 ++++++++++++++++++------- router/Makefile | 43 ++++++++++++++++------------------ 9 files changed, 231 insertions(+), 109 deletions(-) diff --git a/Makefile b/Makefile index b4bc0f7189..5a730c1135 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,40 @@ +# +# Deis Makefile +# + +# ordered list of deis components +COMPONENTS=registry logger database cache controller builder router + +all: build run + test_client: python -m unittest discover client.tests build: - for image in builder cache controller database discovery logger registry deis; do \ - pushd $$image; \ - docker build -t deis/$$image .; \ - popd; \ - done + vagrant ssh -c 'cd share && for c in $(COMPONENTS); do cd $$c && docker build -t deis/$$c . && cd ..; done' + +install: + vagrant ssh -c 'cd share && for c in $(COMPONENTS); do cd $$c && sudo systemctl enable $$(pwd)/systemd/* && cd ..; done' + +uninstall: stop + vagrant ssh -c 'cd share && for c in $(COMPONENTS); do cd $$c && sudo systemctl disable $$(pwd)/systemd/* && cd ..; done' + +start: + vagrant ssh -c 'cd share && for c in $(COMPONENTS); do cd $$c/systemd && sudo systemctl start * && cd ../..; done' + +stop: + vagrant ssh -c 'cd share && for c in $(COMPONENTS); do cd $$c/systemd && sudo systemctl stop * && cd ../..; done' + +restart: + vagrant ssh -c 'cd share && for c in $(COMPONENTS); do cd $$c/systemd && sudo systemctl restart * && cd ../..; done' + +logs: + vagrant ssh -c 'journalctl -f -u deis-* -u docker.service' + +run: install restart logs + +clean: uninstall + vagrant ssh -c 'cd share && for c in $(COMPONENTS); do docker rm -f deis-$$c; done' + +full-clean: clean + vagrant ssh -c 'cd share && for c in $(COMPONENTS); do docker rmi deis-$$c; done' diff --git a/builder/Makefile b/builder/Makefile index 2923edddfa..e4c00d0ba3 100644 --- a/builder/Makefile +++ b/builder/Makefile @@ -1,16 +1,28 @@ build: - docker build -t deis/builder . + vagrant ssh -c 'cd share/builder && docker build -t deis/builder .' -config: - -etcdctl -C $${ETCD:-127.0.0.1:4001} setdir /deis - -etcdctl -C $${ETCD:-127.0.0.1:4001} setdir /deis/builder - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/builder/port $${PORT:-22} +install: + vagrant ssh -c 'sudo systemctl enable /home/core/share/builder/systemd/*' -run: - docker run -privileged -e ETCD=$${ETCD:-127.0.0.1:4001} -p $${PORT:-2222}:$${PORT:-22} -rm deis/builder ; exit 0 +uninstall: stop + vagrant ssh -c 'sudo systemctl disable /home/core/share/builder/systemd/*' -shell: - docker run -privileged -e $${ETCD:-127.0.0.1:4001} -t -i -rm deis/builder /bin/bash +start: + vagrant ssh -c 'sudo systemctl start deis-builder.service' -clean: - -docker rmi deis/builder \ No newline at end of file +stop: + vagrant ssh -c 'sudo systemctl stop deis-builder.service' + +restart: + vagrant ssh -c 'sudo systemctl restart deis-builder.service' + +logs: + vagrant ssh -c 'sudo journalctl -f -u deis-builder.service' + +run: install restart logs + +clean: uninstall + vagrant ssh -c 'sudo docker rm -f deis-builder' + +full-clean: clean + vagrant ssh -c 'sudo docker rmi deis/builder' diff --git a/cache/Makefile b/cache/Makefile index 9713d79792..b7e07a8a42 100644 --- a/cache/Makefile +++ b/cache/Makefile @@ -1,12 +1,28 @@ build: - docker build -t deis/cache . + vagrant ssh -c 'cd share/cache && sudo docker build -t deis/cache .' -run: - docker run -rm -p :6379 -e ETCD=$${ETCD:-127.0.0.1:4001} deis/cache - exit 0 +install: + vagrant ssh -c 'sudo systemctl enable /home/core/share/cache/systemd/*' -shell: - docker run -t -i -rm deis/cache /bin/bash +uninstall: stop + vagrant ssh -c 'sudo systemctl disable /home/core/share/cache/systemd/*' -clean: - -docker rmi deis/cache +start: + vagrant ssh -c 'sudo systemctl start deis-cache.service' + +stop: + vagrant ssh -c 'sudo systemctl stop deis-cache.service' + +restart: + vagrant ssh -c 'sudo systemctl restart deis-cache.service' + +logs: + vagrant ssh -c 'sudo journalctl -f -u deis-cache.service' + +run: install restart logs + +clean: uninstall + vagrant ssh -c 'sudo docker rm -f deis-cache' + +full-clean: clean + vagrant ssh -c 'sudo docker rmi deis/cache' diff --git a/controller/Makefile b/controller/Makefile index 8cdcd43f17..c3dc9b93d8 100644 --- a/controller/Makefile +++ b/controller/Makefile @@ -1,15 +1,35 @@ +.PHONY: all test logs + +all: build run + build: - docker build -t deis/controller . + vagrant ssh -c 'cd share/controller && sudo docker build -t deis/controller .' + +install: + vagrant ssh -c 'sudo systemctl enable /home/core/share/controller/systemd/*' + +uninstall: stop + vagrant ssh -c 'sudo systemctl disable /home/core/share/controller/systemd/*' + +start: + vagrant ssh -c 'sudo systemctl start deis-controller.service' + +stop: + vagrant ssh -c 'sudo systemctl stop deis-controller.service' + +restart: + vagrant ssh -c 'sudo systemctl restart deis-controller.service' + +logs: + vagrant ssh -c 'sudo journalctl -f -u deis-controller.service' -run: - docker run -p $${PORT:-8000}:$${PORT:-8000} -e ETCD=$${ETCD:-127.0.0.1:4001} -name deis-controller deis/controller - exit 0 +run: install restart logs -shell: - docker run -t -i -e ETCD=$${ETCD:-127.0.0.1:4001} deis/controller /bin/bash +clean: uninstall + vagrant ssh -c 'sudo docker rm -f deis-controller' -clean: - -docker rmi deis/controller +full-clean: clean + vagrant ssh -c 'sudo docker rmi deis/controller' test: python manage.py test --noinput api web diff --git a/database/Makefile b/database/Makefile index b14279364f..d4e32dbda0 100644 --- a/database/Makefile +++ b/database/Makefile @@ -1,31 +1,28 @@ build: - docker build -t deis/database . - -env: - export PG_ADMIN_USER=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/database/admin-user` - export PG_ADMIN_PASS=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/database/admin-pass` - export PG_USER_NAME=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/database/user` - export PG_USER_PASS=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/database/password` - export PG_USER_DB=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/database/name` - env - -config: - -etcdctl -C $${ETCD:-127.0.0.1:4001} setdir /deis - -etcdctl -C $${ETCD:-127.0.0.1:4001} setdir /deis/database - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/database/engine $${DATABASE_ENGINE:-databaseql_psycopg2} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/database/admin-user $${DATABASE_ADMIN_USER:-database} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/database/admin-pass $${DATABASE_ADMIN_PASS:-changeme123} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/database/host $${DATABASE_HOST:-127.0.0.1} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/database/user $${DATABASE_USER:-docker} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/database/password $${DATABASE_PASS:-changeme123} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/database/name $${DATABASE_NAME:-docker} - -run: - docker run -p :5432 -e ETCD=$${ETCD:-127.0.0.1:4001} deis/database - exit 0 - -shell: - docker run -t -i -rm deis/database /bin/bash - -clean: - -docker rmi deis/database + vagrant ssh -c 'cd share/database && sudo docker build -t deis/database .' + +install: + vagrant ssh -c 'sudo systemctl enable /home/core/share/database/systemd/*' + +uninstall: stop + vagrant ssh -c 'sudo systemctl disable /home/core/share/database/systemd/*' + +start: + vagrant ssh -c 'sudo systemctl start deis-database.service' + +stop: + vagrant ssh -c 'sudo systemctl stop deis-database.service' + +restart: + vagrant ssh -c 'sudo systemctl restart deis-database.service' + +logs: + vagrant ssh -c 'sudo journalctl -f -u deis-database.service' + +run: install restart logs + +clean: uninstall + vagrant ssh -c 'sudo docker rm -f deis-database' + +full-clean: clean + vagrant ssh -c 'sudo docker rmi deis/database' diff --git a/discovery/Makefile b/discovery/Makefile index 25acab2113..c9f46a86db 100644 --- a/discovery/Makefile +++ b/discovery/Makefile @@ -1,11 +1,28 @@ build: - docker build -t deis/discovery . - -run: - docker run -p 4001:4001 -p 7001:7001 -e PUBLIC_IP=10.0.1.8 -rm deis/discovery ; exit 0 + vagrant ssh -c 'cd share/discovery && sudo docker build -t deis/discovery .' -shell: - docker run -t -i -rm -e PUBLIC_IP=10.0.1.8 deis/discovery /bin/bash +install: + vagrant ssh -c 'sudo systemctl enable /home/core/share/discovery/systemd/*' -clean: - docker rmi deis/discovery +uninstall: + -vagrant ssh -c 'sudo systemctl disable /home/core/share/discovery/systemd/*' + +start: + vagrant ssh -c 'sudo systemctl start deis-discovery.service' + +stop: + -vagrant ssh -c 'sudo systemctl stop deis-discovery.service' + +restart: + vagrant ssh -c 'sudo systemctl restart deis-discovery.service' + +logs: + vagrant ssh -c 'sudo journalctl -f -u deis-discovery.service' + +run: install restart logs + +clean: stop uninstall + vagrant ssh -c 'sudo docker rm -f deis-discovery' + +full-clean: clean + vagrant ssh -c 'sudo docker rmi deis/discovery' diff --git a/logger/Makefile b/logger/Makefile index 11aaf22bb9..2a72e6e44f 100644 --- a/logger/Makefile +++ b/logger/Makefile @@ -1,12 +1,28 @@ build: - docker build -t deis/logger . + vagrant ssh -c 'cd share/logger && sudo docker build -t deis/logger .' -run: - docker run -rm -p :514 -e ETCD=$${ETCD:-127.0.0.1:4001} deis/logger - exit 0 +install: + vagrant ssh -c 'sudo systemctl enable /home/core/share/logger/systemd/*' -shell: - docker run -t -i -rm deis/logger /bin/bash +uninstall: stop + vagrant ssh -c 'sudo systemctl disable /home/core/share/logger/systemd/*' -clean: - -docker rmi deis/logger +start: + vagrant ssh -c 'sudo systemctl start deis-logger.service' + +stop: + vagrant ssh -c 'sudo systemctl stop deis-logger.service' + +restart: + vagrant ssh -c 'sudo systemctl restart deis-logger.service' + +logs: + vagrant ssh -c 'sudo journalctl -f -u deis-logger.service' + +run: install restart logs + +clean: uninstall + vagrant ssh -c 'sudo docker rm -f deis-logger' + +full-clean: clean + vagrant ssh -c 'sudo docker rmi deis/logger' diff --git a/registry/Makefile b/registry/Makefile index 30cfa17bb8..22057544ea 100644 --- a/registry/Makefile +++ b/registry/Makefile @@ -1,12 +1,28 @@ build: - docker build -t deis/registry . + vagrant ssh -c 'cd share/registry && sudo docker build -t deis/registry .' -run: - docker run -rm -p :5000 -e ETCD=$${ETCD:-127.0.0.1:4001} deis/registry - exit 0 +install: + vagrant ssh -c 'sudo systemctl enable /home/core/share/registry/systemd/*' -shell: - docker run -t -i -rm deis/registry /bin/bash +uninstall: stop + vagrant ssh -c 'sudo systemctl disable /home/core/share/registry/systemd/*' -clean: - -docker rmi deis/registry +start: + vagrant ssh -c 'sudo systemctl start deis-registry.service' + +stop: + -vagrant ssh -c 'sudo systemctl stop deis-registry.service' + +restart: + vagrant ssh -c 'sudo systemctl restart deis-registry.service' + +logs: + vagrant ssh -c 'sudo journalctl -f -u deis-registry.service' + +run: install restart logs + +clean: uninstall + vagrant ssh -c 'sudo docker rm -f deis-registry' + +full-clean: clean + vagrant ssh -c 'sudo docker rmi deis/registry' diff --git a/router/Makefile b/router/Makefile index 2a7e4092b6..491561849d 100644 --- a/router/Makefile +++ b/router/Makefile @@ -1,31 +1,28 @@ build: - docker build -t deis/router . + vagrant ssh -c 'cd share/router && sudo docker build -t deis/router .' -env: - export ROUTER_HOST=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/router/host` - export ROUTER_PORT=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/router/port` - export ROUTER_WORKER_CONNECTIONS=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/router/workerConnections` - export ROUTER_WORKER_PROCESSES=`etcdctl -C $${ETCD:-127.0.0.1:4001} get /deis/router/workerProcesses` - env +install: + vagrant ssh -c 'sudo systemctl enable /home/core/share/router/systemd/*' -config: - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/router/host $${ROUTER_HOST:-127.0.0.1} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/router/port $${ROUTER_PORT:-80} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/router/workerConnections $${ROUTER_WORKER_CONNECTIONS:-1024} - etcdctl -C $${ETCD:-127.0.0.1:4001} set /deis/router/workerProcesses $${ROUTER_WORKER_PROCESSES:-2} +uninstall: stop + vagrant ssh -c 'sudo systemctl disable /home/core/share/router/systemd/*' -run: - docker run -d -p 80:80 -e ETCD=$${ETCD:-172.17.42.1:4001} -e HOST=$${HOST:-172.17.42.1} --name deis-router deis/router +start: + vagrant ssh -c 'sudo systemctl start deis-router.service' -shell: - docker run -t -i -rm deis/router /bin/bash +stop: + vagrant ssh -c 'sudo systemctl stop deis-router.service' -kill: - docker kill deis-router - docker rm deis-router +restart: + vagrant ssh -c 'sudo systemctl restart deis-router.service' -clean: - docker rmi deis/router +logs: + vagrant ssh -c 'sudo journalctl -f -u deis-router.service' -test: - docker build . +run: install restart logs + +clean: uninstall + vagrant ssh -c 'sudo docker rm -f deis-router' + +full-clean: clean + vagrant ssh -c 'sudo docker rmi deis/router'