Skip to content

Commit

Permalink
refactor(makefile): dispatch to relevant coreos utilities
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Gabriel Monroy authored and Matthew Fisher committed Apr 15, 2014
1 parent 4220183 commit 8110aaf
Show file tree
Hide file tree
Showing 9 changed files with 231 additions and 109 deletions.
41 changes: 36 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
@@ -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'
34 changes: 23 additions & 11 deletions builder/Makefile
Original file line number Diff line number Diff line change
@@ -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
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'
32 changes: 24 additions & 8 deletions cache/Makefile
Original file line number Diff line number Diff line change
@@ -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'
36 changes: 28 additions & 8 deletions controller/Makefile
Original file line number Diff line number Diff line change
@@ -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
Expand Down
57 changes: 27 additions & 30 deletions database/Makefile
Original file line number Diff line number Diff line change
@@ -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'
33 changes: 25 additions & 8 deletions discovery/Makefile
Original file line number Diff line number Diff line change
@@ -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'
32 changes: 24 additions & 8 deletions logger/Makefile
Original file line number Diff line number Diff line change
@@ -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'
32 changes: 24 additions & 8 deletions registry/Makefile
Original file line number Diff line number Diff line change
@@ -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'
43 changes: 20 additions & 23 deletions router/Makefile
Original file line number Diff line number Diff line change
@@ -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'

0 comments on commit 8110aaf

Please sign in to comment.