mirror of
https://github.com/prymitive/karma
synced 2026-02-13 20:59:53 +00:00
40 lines
1.5 KiB
Makefile
40 lines
1.5 KiB
Makefile
DOCKER_NAME := alertmanager-karma-mock
|
|
DOCKER_IMAGE := prom/alertmanager
|
|
DOCKER_ARGS := --name $(DOCKER_NAME) --rm -d -p 9093:9093 \
|
|
-v $(CURDIR)/alertmanager.yml:/etc/alertmanager/config.yml \
|
|
-v $(CURDIR)/alertmanager.yml:/etc/alertmanager/alertmanager.yml
|
|
|
|
# list of Alertmanager versions to generate mock files for
|
|
VERSIONS := 0.22.0 022.1 0.23.0 0.24.0 0.25.0 0.26.0 0.27.0
|
|
|
|
%/.ok: livemock.py
|
|
$(eval VERSION := $(word 1, $(subst /, ,$@)))
|
|
$(eval VERSION_MAJOR := $(word 2,$(subst ., ,$(VERSION))))
|
|
$(eval API := $(shell (test $(VERSION_MAJOR) -gt 16 && echo 2) || echo 1))
|
|
|
|
@echo "+ Generating mock files for Alertmanager $(VERSION) with API $(API)"
|
|
docker pull $(DOCKER_IMAGE):v$(VERSION)
|
|
@docker rm -f $(DOCKER_NAME) > /dev/null 2>&1 || true
|
|
|
|
@echo "+ Starting Alertmanager"
|
|
docker run $(DOCKER_ARGS) $(DOCKER_IMAGE):v$(VERSION)
|
|
@sleep 15
|
|
|
|
@echo "+ Sending mock alerts and silences"
|
|
@python3 livemock.py
|
|
@echo "+ Collecting API responses"
|
|
|
|
@mkdir -p $(CURDIR)/$(VERSION)/api/v$(API) $(CURDIR)/$(VERSION)/api/v$(API)/alerts
|
|
@curl --fail -s localhost:9093/metrics > $(CURDIR)/$(VERSION)/metrics
|
|
@curl --fail -s localhost:9093/api/v$(API)/silences | python3 -m json.tool > $(CURDIR)/$(VERSION)/api/v$(API)/silences
|
|
@curl --fail -s localhost:9093/api/v$(API)/alerts/groups | python3 -m json.tool > $(CURDIR)/$(VERSION)/api/v$(API)/alerts/groups
|
|
|
|
@touch $(VERSION)/.ok
|
|
@docker rm -f $(DOCKER_NAME)
|
|
@echo "+ Done"
|
|
|
|
.PHONY: all
|
|
all: $(foreach version, $(VERSIONS), $(version)/.ok)
|
|
|
|
.DEFAULT_GOAL := all
|