@@ -6,45 +6,40 @@ include ${REPO_BASE_DIR}/scripts/common-services.Makefile
66include ${REPO_BASE_DIR}/scripts/common.Makefile
77
88#
9- # Running cluster
9+ # Operations
1010#
1111
12- STACK_IS_RUNNING := $( shell docker stack ls --format '{{.Name}}' | grep -q "^ $( STACK_NAME ) $$" && echo true || echo false)
12+ include ${REPO_BASE_DIR}/services/rabbit/.operations.Makefile
1313
14- .PHONY : up
15- up : ${TEMP_COMPOSE} \
16- prune-docker-stack-configs \
17- prune-docker-stack-secrets \
18- guard-optional-bool-FORCE
19- up : # # Deploy rabbit
20- @if [ " $( STACK_IS_RUNNING) " = " false" ] || [ " $( FORCE) " = " true" ] ; then \
21- docker stack deploy --detach=false --with-registry-auth --prune --compose-file ${TEMP_COMPOSE} ${STACK_NAME} ; \
22- else \
23- echo " Stack $( STACK_NAME) is already running. To avoid unexpected behavior, skipping deploy" ; \
24- echo " Check README to learn more about updates. To enforce deploy, use 'FORCE=true'" ; \
25- fi
26-
27- up-aws : up
28-
29- up-master : up
30-
31- up-dalco : up
14+ #
15+ # Docker compose files
16+ #
3217
33- up-local : up
18+ # ## Load Balancer
19+ docker-compose.loadbalancer.yml : docker-compose.loadbalancer.yml.j2 \
20+ .env \
21+ configs/rabbitmq.conf \
22+ configs/erlang.cookie.secret \
23+ configs/haproxy.cfg \
24+ venv \
25+ $(VENV_BIN ) /j2
26+ @$(call jinja, $< , .env, $@ )
3427
35- up-public : up
28+ # ## Node
3629
37- ${TEMP_COMPOSE} : docker-compose.yml .env
38- @${REPO_BASE_DIR} /scripts/docker-stack-config.bash -e .env $< > $@
30+ node0% .env : template.node0x.env
31+ @set -o allexport; . $(REPO_CONFIG_LOCATION ) ; set +o allexport; \
32+ export NODE_INDEX=$* ; \
33+ envsubst < $< > $@
3934
40- docker-compose.yml : docker-compose.yml.j2 \
41- .env \
35+ docker-compose.node0 % . yml : docker-compose.node0x .yml.j2 \
36+ node0% .env \
4237 configs/rabbitmq.conf \
4338 configs/erlang.cookie.secret \
4439 configs/haproxy.cfg \
4540 venv \
4641 $(VENV_BIN ) /j2
47- @$(call jinja, $< , .env, $@ )
42+ @$(call jinja, $< , node0 $* .env, $@ )
4843
4944#
5045# Config / Secret files
@@ -61,41 +56,3 @@ configs/rabbitmq.conf: configs/rabbitmq.conf.j2 .env venv
6156configs/haproxy.cfg : configs/haproxy.cfg.j2 .env venv
6257 # generate $@
6358 @$(call jinja, $< , .env, $@ )
64-
65- #
66- # Deleting volumes (data)
67- #
68-
69- # ## May be needed to start cluster fresh new to enforce new configuration
70-
71- CLEAN_VOLUMES_TEMP_COMPOSE := .stack.${STACK_NAME}.clean-volumes.yaml
72- CLEAN_VOLUMES_STACK_NAME := ${STACK_NAME}-clean-volumes
73-
74- docker-compose.clean-volumes.yaml : docker-compose.clean-volumes.yaml.j2 .env
75- @$(call jinja, $< , .env, $@ )
76-
77- ${CLEAN_VOLUMES_TEMP_COMPOSE} : docker-compose.clean-volumes.yaml .env
78- @${REPO_BASE_DIR} /scripts/docker-stack-config.bash -e .env $< > $@
79-
80- TIMEOUT = 2m
81- delete-volumes : ${CLEAN_VOLUMES_TEMP_COMPOSE} guard-optional-TIMEOUT guard-optional-bool-FORCE_CONFIRM
82- delete-volumes : # # Delete rabbit data volumes
83- @$(call confirm_action,Forever delete all rabbit data?,deleteforever,${FORCE_CONFIRM})
84- # # avoid accumulating tasks https://github.com/moby/moby/issues/45443
85- @docker stack rm --detach=false ${CLEAN_VOLUMES_STACK_NAME}
86- # # use --detach=false to wait until all jobs complete successfully
87- @timeout ${TIMEOUT} \
88- docker stack deploy --detach=false --with-registry-auth --prune --compose-file ${CLEAN_VOLUMES_TEMP_COMPOSE} ${CLEAN_VOLUMES_STACK_NAME}
89- # # cleaning up
90- @docker stack rm ${CLEAN_VOLUMES_STACK_NAME}
91-
92- #
93- # Destroy cluster with data (to start fresh new)
94- #
95-
96- down : guard-optional-bool-FORCE_CONFIRM # # Stop rabbit cluster
97- @$(call confirm_action,Are you sure you want to stop the Rabbit cluster?,stopcluster,${FORCE_CONFIRM})
98- @docker stack rm ${STACK_NAME}
99-
100- destroy-cluster-with-data : down delete-volumes # # Destroy rabbit cluster with data
101- @echo " Cluster has been destroyed. Data has been deleted"
0 commit comments