This thread contains a patchset. You're looking at the original emails,
but you may wish to use the patch review UI.
Review patch
1
[PATCH v2] community/alertmanager: new aport
This package is running in production at SourceHut.
---
Apologies for the noise, the previous patch was pre-rebase.
community/alertmanager/APKBUILD | 60 +++++++++++++++++++
community/alertmanager/alertmanager.confd | 6 ++
community/alertmanager/alertmanager.initd | 18 ++++++
.../alertmanager/alertmanager.pre-install | 4 ++
4 files changed, 88 insertions(+)
create mode 100644 community/alertmanager/APKBUILD
create mode 100644 community/alertmanager/alertmanager.confd
create mode 100644 community/alertmanager/alertmanager.initd
create mode 100644 community/alertmanager/alertmanager.pre-install
diff --git a/community/alertmanager/APKBUILD b/community/alertmanager/APKBUILD
new file mode 100644
index 0000000000..cb58d90e28
--- /dev/null
@@ -0,0 +1,60 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+pkgname=alertmanager
+pkgver=0.20.0
+pkgrel=0
+pkgdesc="Prometheus Alertmanager"
+url="https://github.com/prometheus/alertmanager"
+arch="all"
+license="Apache-2.0"
+install="$pkgname.pre-install"
+makedepends="go bzr"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/prometheus/alertmanager/archive/v$pkgver.tar.gz
+ alertmanager.confd
+ alertmanager.initd
+"
+subpackages="$pkgname-openrc"
+builddir="$srcdir/$pkgname-$pkgver"
+options="!check" # Requires us to use their weird build system
+
+prepare() {
+ default_prepare
+ go mod vendor
+}
+
+build() {
+ go build \
+ -trimpath \
+ -mod=vendor \
+ -ldflags "-extldflags $LDFLAGS" \
+ -tags netgo \
+ ./cmd/alertmanager
+ go build \
+ -trimpath \
+ -mod=vendor \
+ -ldflags "-extldflags $LDFLAGS" \
+ -tags netgo \
+ ./cmd/amtool
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 alertmanager "$pkgdir"/usr/bin/alertmanager
+ install -Dm755 amtool "$pkgdir"/usr/bin/amtool
+
+ install -Dm755 "$srcdir"/alertmanager.initd \
+ "$pkgdir"/etc/init.d/alertmanager
+ install -Dm644 "$srcdir"/alertmanager.confd \
+ "$pkgdir"/etc/conf.d/alertmanager
+ install -dm644 "$pkgdir"/var/lib/alertmanager/data
+
+ install -Dm644 examples/ha/alertmanager.yml \
+ "$pkgdir"/etc/alertmanager/alertmanager.yml
+}
+
+sha512sums="4bb9353e6ce9b149c5f22a2c305829112dfdf87f9b74e6075a45be0e07fe0f17e869ef9be4bb5e9c53d215dd1f534b1b5a707dd981efce8c5bcae4c1d6ce18bb alertmanager-0.20.0.tar.gz
+58420cf10ed51ec389d21ffdd5b4a0e588f0dc78b1069e32d0db1e0215f64c1c980d8f539ae902839f2f9342090b50ce1db756839f3676ee18b77548ce8f99c8 alertmanager.confd
+def36c9933e91a38d863c06679efd840952ba003a839afe5b5c6423fa6ee8f229755f758c5363564b433756af34509fef282b81dea2532500f1287c47c426787 alertmanager.initd"
diff --git a/community/alertmanager/alertmanager.confd b/community/alertmanager/alertmanager.confd
new file mode 100644
index 0000000000..e2304e8691
--- /dev/null
@@ -0,0 +1,6 @@
+alertmanager_args=
+alertmanager_config_file=/etc/alertmanager/alertmanager.yml
+alertmanager_storage_path=/var/lib/alertmanager/data
+
+output_log=/var/log/alertmanager.log
+error_log=/var/log/alertmanager.log
diff --git a/community/alertmanager/alertmanager.initd b/community/alertmanager/alertmanager.initd
new file mode 100644
index 0000000000..3359279440
--- /dev/null
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+name="alertmanager"
+description="alert manager for the prometheus monitoring system"
+supervisor=supervise-daemon
+command=/usr/bin/alertmanager
+command_args="--config.file=$alertmanager_config_file \
+ --storage.path=$alertmanager_storage_path \
+ $alertmanager_args"
+command_user="prometheus:prometheus"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+start_pre() {
+ [ -n "$output_log" ] && checkpath -f "$output_log" \
+ -m 644 -o prometheus:prometheus
+ [ -n "$error_log" ] && checkpath -f "$error_log" \
+ -m 644 -o prometheus:prometheus
+ checkpath -d "$alertmanager_storage_path" -m 755 -o prometheus:prometheus
+}
diff --git a/community/alertmanager/alertmanager.pre-install b/community/alertmanager/alertmanager.pre-install
new file mode 100644
index 0000000000..379f50ae8c
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+grep '^prometheus' /etc/group >/dev/null || addgroup -S prometheus 2>/dev/null
+grep '^prometheus' /etc/passwd >/dev/null || adduser -SDh/var/lib/prometheus \
+ -s/sbin/nologin -Gprometheus -gprometheus prometheus prometheus 2>/dev/null
--
2.24.1
On 1/6/20 8:18 PM, Drew DeVault wrote:
> This package is running in production at SourceHut.
> ---
> Apologies for the noise, the previous patch was pre-rebase.
>
> community/alertmanager/APKBUILD | 60 +++++++++++++++++++
> community/alertmanager/alertmanager.confd | 6 ++
> community/alertmanager/alertmanager.initd | 18 ++++++
> .../alertmanager/alertmanager.pre-install | 4 ++
> 4 files changed, 88 insertions(+)
> create mode 100644 community/alertmanager/APKBUILD
> create mode 100644 community/alertmanager/alertmanager.confd
> create mode 100644 community/alertmanager/alertmanager.initd
> create mode 100644 community/alertmanager/alertmanager.pre-install
>
> diff --git a/community/alertmanager/APKBUILD b/community/alertmanager/APKBUILD
> new file mode 100644
> index 0000000000..cb58d90e28
> --- /dev/null
> +++ b/community/alertmanager/APKBUILD
> @@ -0,0 +1,60 @@
> +# Maintainer: Drew DeVault <sir@cmpwn.com>
> +pkgname=alertmanager
> +pkgver=0.20.0
> +pkgrel=0
> +pkgdesc="Prometheus Alertmanager"
> +url="https://github.com/prometheus/alertmanager"
> +arch="all"
> +license="Apache-2.0"
> +install="$pkgname.pre-install"
> +makedepends="go bzr"
bzr shouldn't be needed
> +source="
> + $pkgname-$pkgver.tar.gz::https://github.com/prometheus/alertmanager/archive/v$pkgver.tar.gz
> + alertmanager.confd
> + alertmanager.initd
> +"
> +subpackages="$pkgname-openrc"
> +builddir="$srcdir/$pkgname-$pkgver"
> +options="!check" # Requires us to use their weird build system
fill variables in
https://github.com/prometheus/common/blob/master/version/info.go#L27 via
-ldflags
> +
> +prepare() {
> + default_prepare
> + go mod vendor
AM already had all deps vendored. No need to rerun it
> +}
> +
> +build() {
> + go build \
> + -trimpath \
> + -mod=vendor \
> + -ldflags "-extldflags $LDFLAGS" \
> + -tags netgo \
netgo is unneccessary - libc dns resolver is not used by default on
linux anyway.
> + ./cmd/alertmanager
> + go build \
> + -trimpath \
> + -mod=vendor \
> + -ldflags "-extldflags $LDFLAGS" \
> + -tags netgo \
> + ./cmd/amtool
> +}
> +
> +check() {
> + go test ./...
> +}
> +
> +package() {
> + install -Dm755 alertmanager "$pkgdir"/usr/bin/alertmanager
> + install -Dm755 amtool "$pkgdir"/usr/bin/amtool
> +
> + install -Dm755 "$srcdir"/alertmanager.initd \
> + "$pkgdir"/etc/init.d/alertmanager
> + install -Dm644 "$srcdir"/alertmanager.confd \
> + "$pkgdir"/etc/conf.d/alertmanager
> + install -dm644 "$pkgdir"/var/lib/alertmanager/data
> +
> + install -Dm644 examples/ha/alertmanager.yml \
> + "$pkgdir"/etc/alertmanager/alertmanager.yml
> +}
> +
> +sha512sums="4bb9353e6ce9b149c5f22a2c305829112dfdf87f9b74e6075a45be0e07fe0f17e869ef9be4bb5e9c53d215dd1f534b1b5a707dd981efce8c5bcae4c1d6ce18bb alertmanager-0.20.0.tar.gz
> +58420cf10ed51ec389d21ffdd5b4a0e588f0dc78b1069e32d0db1e0215f64c1c980d8f539ae902839f2f9342090b50ce1db756839f3676ee18b77548ce8f99c8 alertmanager.confd
> +def36c9933e91a38d863c06679efd840952ba003a839afe5b5c6423fa6ee8f229755f758c5363564b433756af34509fef282b81dea2532500f1287c47c426787 alertmanager.initd"
> diff --git a/community/alertmanager/alertmanager.confd b/community/alertmanager/alertmanager.confd
> new file mode 100644
> index 0000000000..e2304e8691
> --- /dev/null
> +++ b/community/alertmanager/alertmanager.confd
> @@ -0,0 +1,6 @@
> +alertmanager_args=
> +alertmanager_config_file=/etc/alertmanager/alertmanager.yml
> +alertmanager_storage_path=/var/lib/alertmanager/data
> +
> +output_log=/var/log/alertmanager.log
> +error_log=/var/log/alertmanager.log
> diff --git a/community/alertmanager/alertmanager.initd b/community/alertmanager/alertmanager.initd
> new file mode 100644
> index 0000000000..3359279440
> --- /dev/null
> +++ b/community/alertmanager/alertmanager.initd
> @@ -0,0 +1,18 @@
> +#!/sbin/openrc-run
> +name="alertmanager"
> +description="alert manager for the prometheus monitoring system"
> +supervisor=supervise-daemon
> +command=/usr/bin/alertmanager
> +command_args="--config.file=$alertmanager_config_file \
> + --storage.path=$alertmanager_storage_path \
> + $alertmanager_args"
> +command_user="prometheus:prometheus"
> +pidfile="/run/${RC_SVCNAME}.pid"
pidfile is unneccessary with supervise-daemon
> +
> +start_pre() {
> + [ -n "$output_log" ] && checkpath -f "$output_log" \
> + -m 644 -o prometheus:prometheus
> + [ -n "$error_log" ] && checkpath -f "$error_log" \
> + -m 644 -o prometheus:prometheus
> + checkpath -d "$alertmanager_storage_path" -m 755 -o prometheus:prometheus
> +}
> diff --git a/community/alertmanager/alertmanager.pre-install b/community/alertmanager/alertmanager.pre-install
> new file mode 100644
> index 0000000000..379f50ae8c
> --- /dev/null
> +++ b/community/alertmanager/alertmanager.pre-install
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +grep '^prometheus' /etc/group >/dev/null || addgroup -S prometheus 2>/dev/null
grep '^prometheus:'
> +grep '^prometheus' /etc/passwd >/dev/null || adduser -SDh/var/lib/prometheus \
> + -s/sbin/nologin -Gprometheus -gprometheus prometheus prometheus 2>/dev/null
>