Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Commit

Permalink
Refactor docker stack deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
socheatsok78 committed Jun 22, 2024
1 parent d48e7c6 commit 8070dd1
Show file tree
Hide file tree
Showing 9 changed files with 89 additions and 106 deletions.
4 changes: 2 additions & 2 deletions docker-stack/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ it:

networks:
@docker network create --scope=swarm --driver=overlay --attachable dockerswarm_ingress > /dev/null 2>&1 || true
@docker network create --scope=swarm --driver=overlay --attachable dockerswarm_metrics > /dev/null 2>&1 || true
@docker network create --scope=swarm --driver=overlay --attachable prometheus_exporters > /dev/null 2>&1 || true
@docker network create --scope=swarm --driver=overlay --attachable prometheus > /dev/null 2>&1 || true
@docker network create --scope=swarm --driver=overlay --attachable prometheus_gwnetwork > /dev/null 2>&1 || true

deploy: networks
$(MAKE) -C prometheus deploy
Expand Down
9 changes: 6 additions & 3 deletions docker-stack/alertmanager/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
docker-stack-name = default_alertmanager
docker-stack-name = promstack_alertmanager

it:
@echo "make [deploy|remove|clean|reset] docker-stack-name=$(docker-stack-name)"
Expand All @@ -10,7 +10,10 @@ remove:
docker stack rm --detach=false $(docker-stack-name)

clean:
@sleep 10
docker volume ls -q | grep $(docker-stack-name) | xargs docker volume rm

reset: remove clean deploy
reset: remove wait clean deploy

wait:
@echo "Waiting for previous recipe to finish..."
@sleep 10
46 changes: 20 additions & 26 deletions docker-stack/alertmanager/docker-stack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,6 @@ x-exporter-resources-constraints: &x-exporter-resources-constraints
reservations:
memory: 64M

volumes:
alertmanager-data:
alertmanager-configs:

prometheus-data:
prometheus-configs:

networks:
dockerswarm_ingress:
name: dockerswarm_ingress
external: true
dockerswarm_metrics:
name: dockerswarm_metrics
external: true
prometheus_exporters:
name: prometheus_exporters
external: true

configs:
dockerswarm-nodes-alertmanager:
file: ./configs/dockerswarm-nodes-alertmanager.yml
Expand Down Expand Up @@ -71,7 +53,8 @@ services:
mode: host
hostname: alertmanager.{{.Node.ID}}.cluster.local
networks:
dockerswarm_metrics:
alertmanager_internal:
prometheus_gwnetwork:
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
Expand All @@ -84,7 +67,7 @@ services:
command:
- --listen-address=:8080
- --watched-dir=/alertmanager-configs.d
- --reload-url=http://host.docker.internal:9093/-/reload
- --reload-url=http://alertmanager:9093/-/reload
deploy:
mode: global
resources: *x-exporter-resources-constraints
Expand All @@ -94,16 +77,27 @@ services:
- node.role == manager
labels:
io.prometheus.role: "alertmanager-config-reloader"
io.prometheus.enabled: "true"
io.prometheus.job_name: "alertmanager-config-reloader"
io.prometheus.scrape_port: "8080"
io.prometheus.dockerswarm-tasks.should_be_scraped: "false"
io.prometheus.dockerswarm-services.should_be_probed: "false"
logging: *x-default-logging
networks:
dockerswarm_metrics:
extra_hosts:
- "host.docker.internal:host-gateway"
alertmanager_internal:
volumes:
- type: volume
source: alertmanager-configs
target: /alertmanager-configs.d

volumes:
alertmanager-data:
alertmanager-configs:

networks:
alertmanager_internal:
internal: true

prometheus:
name: prometheus
external: true
prometheus_gwnetwork:
name: prometheus_gwnetwork
external: true
9 changes: 6 additions & 3 deletions docker-stack/cadvisor/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
docker-stack-name = default_cadvisor
docker-stack-name = promstack_cadvisor

it:
@echo "make [deploy|remove|clean|reset] docker-stack-name=$(docker-stack-name)"
Expand All @@ -10,7 +10,10 @@ remove:
docker stack rm --detach=false $(docker-stack-name)

clean:
@sleep 10
docker volume ls -q | grep $(docker-stack-name) | xargs docker volume rm

reset: remove clean deploy
reset: remove wait clean deploy

wait:
@echo "Waiting for previous recipe to finish..."
@sleep 10
25 changes: 6 additions & 19 deletions docker-stack/cadvisor/docker-stack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,6 @@ x-exporter-resources-constraints: &x-exporter-resources-constraints
reservations:
memory: 64M

volumes:
alertmanager-data:
alertmanager-configs:

prometheus-data:
prometheus-configs:

networks:
dockerswarm_ingress:
name: dockerswarm_ingress
external: true
dockerswarm_metrics:
name: dockerswarm_metrics
external: true
prometheus_exporters:
name: prometheus_exporters
external: true

configs:
dockerswarm-nodes-cadvisor:
file: ./configs/dockerswarm-nodes-cadvisor.yml
Expand Down Expand Up @@ -59,7 +41,7 @@ services:
target: 8080
mode: host
networks:
prometheus_exporters:
prometheus_gwnetwork:
hostname: cadvisor.{{.Node.ID}}.cluster.local
volumes:
- type: bind
Expand Down Expand Up @@ -92,3 +74,8 @@ services:
# source: /dev/kmsg
# target: /dev/kmsg
# read_only: true

networks:
prometheus_gwnetwork:
name: prometheus_gwnetwork
external: true
9 changes: 6 additions & 3 deletions docker-stack/node-exporter/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
docker-stack-name = default_node_exporter
docker-stack-name = promstack_node_exporter

it:
@echo "make [deploy|remove|clean|reset] docker-stack-name=$(docker-stack-name)"
Expand All @@ -10,7 +10,10 @@ remove:
docker stack rm --detach=false $(docker-stack-name)

clean:
@sleep 10
docker volume ls -q | grep $(docker-stack-name) | xargs docker volume rm

reset: remove clean deploy
reset: remove wait clean deploy

wait:
@echo "Waiting for previous recipe to finish..."
@sleep 10
25 changes: 6 additions & 19 deletions docker-stack/node-exporter/docker-stack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,6 @@ x-exporter-resources-constraints: &x-exporter-resources-constraints
reservations:
memory: 64M

volumes:
alertmanager-data:
alertmanager-configs:

prometheus-data:
prometheus-configs:

networks:
dockerswarm_ingress:
name: dockerswarm_ingress
external: true
dockerswarm_metrics:
name: dockerswarm_metrics
external: true
prometheus_exporters:
name: prometheus_exporters
external: true

configs:
dockerswarm-nodes-node-exporter:
file: ./configs/dockerswarm-nodes-node-exporter.yml
Expand Down Expand Up @@ -58,10 +40,15 @@ services:
target: 9100
mode: host
networks:
prometheus_exporters:
prometheus_gwnetwork:
hostname: node-exporter.{{.Node.ID}}.cluster.local
volumes:
- type: bind
source: /
target: /rootfs
read_only: true

networks:
prometheus_gwnetwork:
name: prometheus_gwnetwork
external: true
9 changes: 6 additions & 3 deletions docker-stack/prometheus/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
docker-stack-name = default_prometheus
docker-stack-name = promstack_prometheus

it:
@echo "make [deploy|remove|clean|reset] docker-stack-name=$(docker-stack-name)"
Expand All @@ -10,7 +10,10 @@ remove:
docker stack rm --detach=false $(docker-stack-name)

clean:
@sleep 10
docker volume ls -q | grep $(docker-stack-name) | xargs docker volume rm

reset: remove clean deploy
reset: remove wait clean deploy

wait:
@echo "Waiting for previous recipe to finish..."
@sleep 10
59 changes: 31 additions & 28 deletions docker-stack/prometheus/docker-stack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,6 @@ x-exporter-resources-constraints: &x-exporter-resources-constraints
reservations:
memory: 64M

volumes:
alertmanager-data:
alertmanager-configs:

prometheus-data:
prometheus-configs:

networks:
dockerswarm_ingress:
name: dockerswarm_ingress
external: true
dockerswarm_metrics:
name: dockerswarm_metrics
external: true
prometheus_exporters:
name: prometheus_exporters
external: true

services:

# ====================================================
Expand Down Expand Up @@ -68,9 +50,9 @@ services:
mode: host
hostname: prometheus.svc.cluster.local
networks:
dockerswarm_ingress:
dockerswarm_metrics:
prometheus_exporters:
prometheus_internal:
prometheus:
prometheus_gwnetwork:
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
Expand Down Expand Up @@ -99,6 +81,8 @@ services:
labels:
io.prometheus.role: "prometheus-configs-provider"
logging: *x-default-logging
networks:
prometheus_internal:
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
Expand All @@ -115,8 +99,8 @@ services:
command:
- --listen-address=:8080
- --watched-dir=/prometheus-configs.d
- --reload-url=http://host.docker.internal:9090/-/reload
- --runtimeinfo-url=http://host.docker.internal:9090/api/v1/status/runtimeinfo
- --reload-url=http://prometheus:9090/-/reload
- --runtimeinfo-url=http://prometheus:9090/api/v1/status/runtimeinfo
- --watch-interval=15s
- --reload-timeout=10s
deploy:
Expand All @@ -134,9 +118,7 @@ services:
io.prometheus.dockerswarm-services.should_be_probed: "false"
logging: *x-default-logging
networks:
dockerswarm_metrics:
extra_hosts:
- "host.docker.internal:host-gateway"
prometheus_internal:
volumes:
- type: volume
source: prometheus-configs
Expand All @@ -161,6 +143,27 @@ services:
logging: *x-default-logging
hostname: blackbox-exporter.svc.cluster.local
networks:
prometheus_internal:
prometheus_gwnetwork:
prometheus:
dockerswarm_ingress:
dockerswarm_metrics:
prometheus_exporters:

volumes:
prometheus-data:
prometheus-configs:

networks:
prometheus_internal:
internal: true

prometheus:
name: prometheus
external: true
prometheus_gwnetwork:
name: prometheus_gwnetwork
external: true

# Custom ingress network
dockerswarm_ingress:
name: dockerswarm_ingress
external: true

0 comments on commit 8070dd1

Please sign in to comment.