Skip to content

Commit 2e0e59b

Browse files
author
Gabriel Monroy
committed
refactor(makefile): remove fleet, switch to deisctl and custom images
1 parent 5afb880 commit 2e0e59b

10 files changed

Lines changed: 226 additions & 323 deletions

File tree

Makefile

Lines changed: 32 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -4,155 +4,51 @@
44

55
include includes.mk
66

7-
define check_for_errors
8-
@if $(FLEETCTL) list-units -no-legend | awk '($$4 == "failed")' | egrep -q "deis-.+service"; then \
9-
echo "\033[0;31mOne or more services failed! Check which services by running 'make status'\033[0m" ; \
10-
echo "\033[0;31mYou can get detailed output with 'fleetctl status deis-servicename.service'\033[0m" ; \
11-
echo "\033[0;31mThis usually indicates an error with Deis - please open an issue on GitHub or ask for help in IRC\033[0m" ; \
12-
exit 1 ; \
13-
fi
14-
endef
15-
16-
define deis_units
17-
$(shell $(FLEETCTL) list-units -no-legend=true | \
18-
awk '($$4 ~ "$(1)")' | \
19-
sed -n 's/\(deis-.*\.service\).*/\1/p' | tr '\n' ' ')
20-
endef
21-
22-
# TODO: re-evaluate the fragile start order
23-
COMPONENTS=builder cache controller database logger registry
24-
ALL_COMPONENTS=$(COMPONENTS) router
25-
START_COMPONENTS=logger cache database
26-
27-
ALL_UNITS = $(foreach C,$(COMPONENTS),$(wildcard $(C)/systemd/*.service))
28-
START_UNITS = $(foreach C,$(START_COMPONENTS),$(wildcard $(C)/systemd/*.service))
29-
30-
DATA_CONTAINER_TEMPLATES=builder/systemd/deis-builder-data.service database/systemd/deis-database-data.service logger/systemd/deis-logger-data.service registry/systemd/deis-registry-data.service
7+
COMPONENTS=builder cache controller database logger registry router
8+
START_ORDER=logger database cache registry controller builder router
319

3210
all: build run
3311

34-
build: rsync
35-
$(call ssh_all,'cd share && for c in $(ALL_COMPONENTS); do cd $$c && docker build -t deis/$$c . && cd ..; done')
36-
37-
clean: uninstall
38-
$(call ssh_all,'for c in $(ALL_COMPONENTS); do docker rm -f deis-$$c; done')
39-
40-
full-clean: clean
41-
$(call ssh_all,'for c in $(ALL_COMPONENTS); do docker rmi deis-$$c; done')
42-
43-
install: check-fleet install-routers install-data-containers
44-
$(FLEETCTL) load $(START_UNITS)
45-
$(FLEETCTL) load registry/systemd/*.service
46-
$(FLEETCTL) load controller/systemd/*.service
47-
$(FLEETCTL) load builder/systemd/*.service
48-
49-
install-data-containers: check-fleet
50-
@$(foreach T, $(DATA_CONTAINER_TEMPLATES), \
51-
UNIT=`basename $(T)` ; \
52-
EXISTS=`$(FLEETCTL) list-units | grep $$UNIT` ; \
53-
if [ "$$EXISTS" != "" ]; then \
54-
echo $$UNIT already loaded. Skipping... ; \
55-
else \
56-
cp $(T).template . ; \
57-
NEW_FILENAME=`ls *.template | sed 's/\.template//g'`; \
58-
mv *.template $$NEW_FILENAME ; \
59-
MACHINE_ID=`$(FLEETCTL) list-machines --no-legend --full | awk 'BEGIN { OFS="\t"; srand() } { print rand(), $$1 }' | sort -n | cut -f2- | head -1` ; \
60-
sed -e "s/CHANGEME/$$MACHINE_ID/" $$NEW_FILENAME > $$NEW_FILENAME.bak ; \
61-
rm -f $$NEW_FILENAME ; \
62-
mv $$NEW_FILENAME.bak $$NEW_FILENAME ; \
63-
$(FLEETCTL) load $$NEW_FILENAME ; \
64-
rm -f $$NEW_FILENAME ; \
65-
fi ; \
66-
)
12+
dev-registry: check-docker
13+
@# pull registry image if it doesn't already exist
14+
@docker history registry:0.8.1 >/dev/null 2>&1 || docker pull registry:0.8.1
6715

68-
install-routers: check-fleet
69-
@$(foreach R, $(ROUTER_UNITS), \
70-
$(FLEETCTL) load router/systemd/$(R) ; \
71-
)
16+
@# run registry container if it doesn't already exist
17+
@docker inspect registry >/dev/null 2>&1 || docker run -d -p 5000:5000 --name registry registry:0.8.1
7218

73-
pull:
74-
$(call ssh_all,'for c in $(ALL_COMPONENTS); do docker pull deis/$$c:latest; done')
75-
$(call ssh_all,'docker pull deis/slugrunner:latest')
19+
@echo
20+
@echo "To configure the registry for local Deis development:"
21+
@echo " export DEIS_REGISTRY=`boot2docker ip 2>/dev/null`:5000"
7622

77-
restart: stop start
23+
build: check-docker
24+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) build ;)
7825

79-
rsync:
80-
$(call rsync_all)
26+
push: check-docker check-registry
27+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) push ;)
8128

82-
run: install start
29+
full-clean:
30+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) full-clean ;)
31+
32+
install:
33+
@$(foreach C, $(START_ORDER), $(MAKE) -C $(C) install ;)
34+
35+
uninstall:
36+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) uninstall ;)
8337

84-
start: check-fleet start-warning start-routers
85-
@# logger cache database
86-
$(call echo_yellow,"Waiting for deis-cache to start...")
87-
$(FLEETCTL) start -no-block $(START_UNITS)
88-
@until $(FLEETCTL) list-units | egrep -q "deis-cache\..+(running|failed)"; \
89-
do sleep 2; \
90-
printf "\033[0;33mStatus:\033[0m "; $(FLEETCTL) list-units | \
91-
grep "deis-cache\." | awk '{printf "%-10s (%s) \r", $$3, $$4}'; \
92-
sleep 8; \
93-
done
94-
$(call check_for_errors)
95-
96-
@# registry
97-
$(call echo_yellow,"Waiting for deis-registry to start...")
98-
$(FLEETCTL) start -no-block registry/systemd/*.service
99-
@until $(FLEETCTL) list-units | egrep -q "deis-registry\..+(running|failed)"; \
100-
do sleep 2; \
101-
printf "\033[0;33mStatus:\033[0m "; $(FLEETCTL) list-units | \
102-
grep "deis-registry\." | awk '{printf "%-10s (%s) \r", $$3, $$4}'; \
103-
sleep 8; \
104-
done
105-
$(call check_for_errors)
106-
107-
@# controller
108-
$(call echo_yellow,"Waiting for deis-controller to start...")
109-
$(FLEETCTL) start -no-block controller/systemd/*.service
110-
@until $(FLEETCTL) list-units | egrep -q "deis-controller\..+(running|failed)"; \
111-
do sleep 2; \
112-
printf "\033[0;33mStatus:\033[0m "; $(FLEETCTL) list-units | \
113-
grep "deis-controller\." | awk '{printf "%-10s (%s) \r", $$3, $$4}'; \
114-
sleep 8; \
115-
done
116-
$(call check_for_errors)
117-
118-
@# builder
119-
$(call echo_yellow,"Waiting for deis-builder to start...")
120-
$(FLEETCTL) start -no-block builder/systemd/*.service
121-
@until $(FLEETCTL) list-units | egrep -q "deis-builder\..+(running|failed)"; \
122-
do sleep 2; \
123-
printf "\033[0;33mStatus:\033[0m "; $(FLEETCTL) list-units | \
124-
grep "deis-builder\." | awk '{printf "%-10s (%s) \r", $$3, $$4}'; \
125-
sleep 8; \
126-
done
127-
$(call check_for_errors)
128-
129-
$(call echo_yellow,"Your Deis cluster is ready to go! Continue following the README to login and use Deis.")
130-
131-
start-routers: check-fleet start-warning
132-
$(call echo_yellow,"Waiting for 1 of $(DEIS_NUM_ROUTERS) deis-routers to start...")
133-
$(foreach R,$(ROUTER_UNITS),$(FLEETCTL) start -no-block $(R);)
134-
@until $(FLEETCTL) list-units | egrep -q "deis-router.+(running)"; \
135-
do sleep 2; \
136-
printf "\033[0;33mStatus:\033[0m "; $(FLEETCTL) list-units | \
137-
grep "deis-router" | head -n 1 | \
138-
awk '{printf "%-10s (%s) \r", $$3, $$4}'; \
139-
sleep 8; \
140-
done
141-
$(call check_for_errors)
142-
143-
start-warning:
144-
$(call echo_cyan,"Deis components may take a long time to start the first time they are initialized.")
145-
146-
status: check-fleet
147-
$(FLEETCTL) list-units
148-
149-
stop: check-fleet
150-
$(FLEETCTL) stop -block-attempts=600 $(strip $(call deis_units,active))
38+
start:
39+
@$(foreach C, $(START_ORDER), $(MAKE) -C $(C) start ;)
40+
41+
stop:
42+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) stop ;)
43+
44+
restart: stop start
45+
46+
run: install start
15147

15248
test: test-components test-integration
15349

15450
test-components:
155-
@$(foreach C,$(ALL_COMPONENTS), \
51+
@$(foreach C,$(COMPONENTS), \
15652
echo \\nTesting deis/$(C) ; \
15753
$(MAKE) -C $(C) test ; \
15854
)
@@ -162,7 +58,3 @@ test-integration:
16258

16359
test-smoke:
16460
$(MAKE) -C tests/ test-smoke
165-
166-
uninstall: check-fleet stop
167-
$(FLEETCTL) unload -block-attempts=600 $(call deis_units,.)
168-
$(FLEETCTL) destroy $(strip $(call deis_units,.))

builder/Makefile

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,38 @@
11
include ../includes.mk
22

3-
build:
4-
$(call rsync_all)
5-
$(call ssh_all,'cd share/builder && docker build -t deis/builder .')
3+
build: check-docker
4+
docker build -t deis/builder:$(GIT_TAG) .
65

7-
install: check-fleet
8-
$(FLEETCTL) load systemd/*
6+
push: check-docker check-registry check-deisctl
7+
docker tag deis/builder:$(GIT_TAG) $(REGISTRY)/deis/builder:$(GIT_TAG)
8+
docker push $(REGISTRY)/deis/builder:$(GIT_TAG)
9+
deisctl config builder set image=$$DEIS_REGISTRY/deis/builder:$(GIT_TAG)
910

10-
uninstall: check-fleet stop
11-
$(FLEETCTL) unload systemd/*
12-
$(FLEETCTL) destroy systemd/*
11+
clean: check-docker check-registry
12+
docker rmi deis/builder:$(GIT_TAG)
13+
docker rmi $(REGISTRY)/deis/builder:$(GIT_TAG)
1314

14-
start: check-fleet
15-
$(FLEETCTL) start -no-block systemd/*
15+
full-clean: check-docker check-registry
16+
docker images -q deis/builder | xargs docker rmi -f
17+
docker images -q $(REGISTRY)/deis/builder | xargs docker rmi -f
1618

17-
stop: check-fleet
18-
$(FLEETCTL) stop -block-attempts=600 systemd/*
19+
install: check-deisctl
20+
deisctl install builder-data
21+
deisctl scale builder=1
1922

20-
restart: stop start
23+
uninstall: check-deisctl
24+
deisctl scale builder=0
25+
deisctl uninstall builder-data
2126

22-
run: install start
27+
start: check-deisctl
28+
deisctl start builder
2329

24-
clean: uninstall
25-
$(call ssh_all,'sudo docker rm -f deis-builder')
30+
stop: check-deisctl
31+
deisctl stop builder
2632

27-
full-clean: clean
28-
$(call ssh_all,'sudo docker rmi deis/builder')
33+
restart: stop start
34+
35+
run: install start
2936

3037
test: test-unit test-functional
3138

cache/Makefile

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,36 @@
11
include ../includes.mk
22

3-
build:
4-
$(call rsync_all)
5-
$(call ssh_all,'cd share/cache && sudo docker build -t deis/cache .')
3+
build: check-docker
4+
docker build -t deis/cache:$(GIT_TAG) .
65

7-
install: check-fleet
8-
$(FLEETCTL) load systemd/*
6+
push: check-docker check-registry check-deisctl
7+
docker tag deis/cache:$(GIT_TAG) $(REGISTRY)/deis/cache:$(GIT_TAG)
8+
docker push $(REGISTRY)/deis/cache:$(GIT_TAG)
9+
deisctl config cache set image=$$DEIS_REGISTRY/deis/cache:$(GIT_TAG)
910

10-
uninstall: check-fleet stop
11-
$(FLEETCTL) unload systemd/*
12-
$(FLEETCTL) destroy systemd/*
11+
clean: check-docker check-registry
12+
docker rmi deis/cache:$(GIT_TAG)
13+
docker rmi $(REGISTRY)/deis/cache:$(GIT_TAG)
1314

14-
start: check-fleet
15-
$(FLEETCTL) start -no-block systemd/*
15+
full-clean: check-docker check-registry
16+
docker images -q deis/cache | xargs docker rmi -f
17+
docker images -q $(REGISTRY)/deis/cache | xargs docker rmi -f
1618

17-
stop: check-fleet
18-
$(FLEETCTL) stop -block-attempts=600 systemd/*
19+
install: check-deisctl
20+
deisctl scale cache=1
1921

20-
restart: stop start
22+
uninstall: check-deisctl
23+
deisctl scale cache=0
2124

22-
run: install start
25+
start: check-deisctl
26+
deisctl start cache
2327

24-
clean: uninstall
25-
$(call ssh_all,'sudo docker rm -f deis-cache')
28+
stop: check-deisctl
29+
deisctl stop cache
2630

27-
full-clean: clean
28-
$(call ssh_all,'sudo docker rmi deis/cache')
31+
restart: stop start
32+
33+
run: install start
2934

3035
test: test-unit test-functional
3136

contrib/coreos/user-data

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ coreos:
44
etcd:
55
# generate a new token for each unique cluster from https://discovery.etcd.io/new
66
# uncomment the following line and replace it with your discovery URL
7-
# discovery: https://discovery.etcd.io/12345693838asdfasfadf13939923
7+
discovery: https://discovery.etcd.io/c560a81e5972043805d8b430adea1a58
88
addr: $private_ipv4:4001
99
peer-addr: $private_ipv4:7001
1010
# give etcd more time if it's under heavy load - prevent leader election thrashing

controller/Makefile

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,37 @@ include ../includes.mk
44

55
all: build run
66

7-
build:
8-
$(call rsync_all)
9-
$(call ssh_all,'cd share/controller && sudo docker build -t deis/controller .')
7+
build: check-docker
8+
docker build -t deis/controller:$(GIT_TAG) .
109

11-
install: check-fleet
12-
$(FLEETCTL) load systemd/*
10+
push: check-docker check-registry check-deisctl
11+
docker tag deis/controller:$(GIT_TAG) $(REGISTRY)/deis/controller:$(GIT_TAG)
12+
docker push $(REGISTRY)/deis/controller:$(GIT_TAG)
13+
deisctl config controller set image=$$DEIS_REGISTRY/deis/controller:$(GIT_TAG)
1314

14-
uninstall: check-fleet stop
15-
$(FLEETCTL) unload systemd/*
16-
$(FLEETCTL) destroy systemd/*
15+
clean: check-docker check-registry
16+
docker rmi deis/controller:$(GIT_TAG)
17+
docker rmi $(REGISTRY)/deis/controller:$(GIT_TAG)
1718

18-
start: check-fleet
19-
$(FLEETCTL) start -no-block systemd/*
19+
full-clean: check-docker check-registry
20+
docker images -q deis/controller | xargs docker rmi -f
21+
docker images -q $(REGISTRY)/deis/controller | xargs docker rmi -f
2022

21-
stop: check-fleet
22-
$(FLEETCTL) stop -block-attempts=600 systemd/*
23+
install: check-deisctl
24+
deisctl scale controller=1
2325

24-
restart: stop start
26+
uninstall: check-deisctl
27+
deisctl scale controller=0
2528

26-
run: install start
29+
start: check-deisctl
30+
deisctl start controller
2731

28-
clean: uninstall
29-
$(call ssh_all,'sudo docker rm -f deis-controller')
32+
stop: check-deisctl
33+
deisctl stop controller
3034

31-
full-clean: clean
32-
$(call ssh_all,'sudo docker rmi deis/controller')
35+
restart: stop start
36+
37+
run: install start
3338

3439
runserver:
3540
python manage.py runserver

0 commit comments

Comments
 (0)