From 2961a0f1e2c6196e98e715bd462e8c28f238f004 Mon Sep 17 00:00:00 2001 From: Simon Pasquier Date: Mon, 19 Sep 2022 16:52:23 +0200 Subject: [PATCH] Use prometheus-alertmanager-test-webhook image from quay.io/prometheus-operator (#5025) * example/alertmanager-webhook: build image for amd64 and arm64 Closes #5012 Signed-off-by: Simon Pasquier * test/e2e: remove use of legacy coreos image Signed-off-by: Simon Pasquier Signed-off-by: Simon Pasquier --- .gitignore | 1 + example/alertmanager-webhook/Dockerfile | 7 +++++++ example/alertmanager-webhook/Makefile | 14 ++++++++++++++ example/alertmanager-webhook/README.md | 15 +++++++++++++++ .../main.go | 7 ++++++- example/alertmanger-webhook/Dockerfile | 5 ----- example/alertmanger-webhook/Makefile | 3 --- test/e2e/alertmanager_test.go | 2 +- 8 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 example/alertmanager-webhook/Dockerfile create mode 100644 example/alertmanager-webhook/Makefile create mode 100644 example/alertmanager-webhook/README.md rename example/{alertmanger-webhook => alertmanager-webhook}/main.go (78%) delete mode 100644 example/alertmanger-webhook/Dockerfile delete mode 100644 example/alertmanger-webhook/Makefile diff --git a/.gitignore b/.gitignore index 912d29fb3..1e8c00c42 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /admission-webhook /po-lint /prometheus-config-reloader +example/alertmanager-webhook/linux/ .build/ *~ *.tgz diff --git a/example/alertmanager-webhook/Dockerfile b/example/alertmanager-webhook/Dockerfile new file mode 100644 index 000000000..9572c84f5 --- /dev/null +++ b/example/alertmanager-webhook/Dockerfile @@ -0,0 +1,7 @@ +FROM scratch + +ARG ARCH="amd64" + +COPY linux/${ARCH}/alertmanager-webhook /bin/alertmanager-webhook + +ENTRYPOINT ["/bin/alertmanager-webhook"] diff --git a/example/alertmanager-webhook/Makefile b/example/alertmanager-webhook/Makefile new file mode 100644 index 000000000..998546f07 --- /dev/null +++ b/example/alertmanager-webhook/Makefile @@ -0,0 +1,14 @@ +IMAGE ?= quay.io/prometheus-operator/prometheus-alertmanager-test-webhook +TAG ?= latest + +.PHONY: build +build: + GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -tags netgo -o linux/amd64/ . + GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -tags netgo -o linux/arm64/ . + +.PHONY: push +push: build + buildah manifest create $(IMAGE):$(TAG) + buildah bud --arch amd64 --build-arg ARCH=amd64 --manifest $(IMAGE):$(TAG) -t $(IMAGE):$(TAG)-amd64 . + buildah bud --arch arm64 --build-arg ARCH=arm64 --manifest $(IMAGE):$(TAG) -t $(IMAGE):$(TAG)-arm64 . + buildah manifest push --all $(IMAGE):$(TAG) docker://$(IMAGE):$(TAG) diff --git a/example/alertmanager-webhook/README.md b/example/alertmanager-webhook/README.md new file mode 100644 index 000000000..333b19e0a --- /dev/null +++ b/example/alertmanager-webhook/README.md @@ -0,0 +1,15 @@ +This directory contains a very simple program that can receive alert +notifications from Alertmanager. It is used by the end-to-end tests to verify +that Alertmanager works as expected. + +The program is available at `quay.io/prometheus-operator/prometheus-alertmanager-test-webhook:latest`. + +## Updating the image on quay.io + +The image requires very few updates since the program is very simple and only used for testing. + +Pre-requisites: +* Credentials to push the image to `quay.io/prometheus-operator/prometheus-alertmanager-test-webhook`. +* Buildah CLI + the `qemu-user-static` package. + +Running `make manifest` should be all that is needed. diff --git a/example/alertmanger-webhook/main.go b/example/alertmanager-webhook/main.go similarity index 78% rename from example/alertmanger-webhook/main.go rename to example/alertmanager-webhook/main.go index ecde07ae5..8ffb3839f 100644 --- a/example/alertmanger-webhook/main.go +++ b/example/alertmanager-webhook/main.go @@ -19,8 +19,13 @@ import ( "net/http" ) +const ( + port = "5001" +) + func main() { - _ = http.ListenAndServe(":5001", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + fmt.Printf("Listening for Alertmanager notifications on :%s\n", port) + _ = http.ListenAndServe(":"+port, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Println("Alertmanager Notification Payload Received") })) } diff --git a/example/alertmanger-webhook/Dockerfile b/example/alertmanger-webhook/Dockerfile deleted file mode 100644 index 180cde804..000000000 --- a/example/alertmanger-webhook/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM quay.io/prometheus/busybox:latest - -COPY main /bin/main - -ENTRYPOINT ["/bin/main"] diff --git a/example/alertmanger-webhook/Makefile b/example/alertmanger-webhook/Makefile deleted file mode 100644 index 2fb916234..000000000 --- a/example/alertmanger-webhook/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -all: - CGO_ENABLED=0 go build --installsuffix cgo main.go - docker build -t quay.io/coreos/prometheus-alertmanager-test-webhook . diff --git a/test/e2e/alertmanager_test.go b/test/e2e/alertmanager_test.go index 7c892ef3a..552a63925 100644 --- a/test/e2e/alertmanager_test.go +++ b/test/e2e/alertmanager_test.go @@ -528,7 +528,7 @@ func testAMZeroDowntimeRollingDeployment(t *testing.T) { Containers: []v1.Container{ { Name: "webhook-server", - Image: "quay.io/coreos/prometheus-alertmanager-test-webhook", + Image: "quay.io/prometheus-operator/prometheus-alertmanager-test-webhook:latest", Ports: []v1.ContainerPort{ { Name: "web",