diff --git a/testing/mimir/APKBUILD b/testing/mimir/APKBUILD new file mode 100644 index 00000000000..26a49f6d483 --- /dev/null +++ b/testing/mimir/APKBUILD @@ -0,0 +1,58 @@ +# Contributor: Guy Godfroy +# Maintainer: Guy Godfroy +pkgname=mimir +pkgver=2.10.4 +pkgrel=0 +pkgdesc="Horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus" +options="net" +url="https://github.com/grafana/mimir" +license="AGPL-3.0-or-later" +arch="x86_64 aarch64 ppc64le riscv64" # needs 64 bits +makedepends="go bash" +checkdepends="tzdata" +subpackages="$pkgname-openrc" +install="mimir.pre-install" +source="$pkgname-$pkgver.tar.gz::https://github.com/grafana/mimir/archive/refs/tags/mimir-$pkgver.tar.gz + $pkgname.initd + $pkgname.confd + $pkgname.yaml + " +builddir="$srcdir/$pkgname-$pkgname-$pkgver" + +export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}" +export GOTMPDIR="${GOTMPDIR:-"$srcdir"}" +export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}" + +prepare() { + default_prepare + mkdir build +} + +build() { + go build -v \ + -o build \ + ./cmd/... +} + +check() { + # not stable test for fluent-bit + # tsdb/index fails on aarch64 + # shell check suggests to break it + # shellcheck disable=SC2046 + TZ=UTC GOGC=10 go test -p=2 $(go list ./... | grep -Ev 'fluent-bit|stores/tsdb/index|TestAlertmanager_StateReplication') +} + +package() { + mkdir -p "$pkgdir"/etc/$pkgname + install -Dm0755 build/* -t "$pkgdir"/usr/bin + install -Dm644 "$srcdir"/$pkgname.yaml "$pkgdir"/etc/mimir/mimir.yaml + install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname + install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname +} + +sha512sums=" +fa2361baf16587238e11d9d9a646c980ec0838a8402c81c8344b482c91524c9db36a0b57214f0359a8029eb5497fe8625c0187555b8236b6b97b8de63b45c411 mimir-2.10.4.tar.gz +7e0121d8d464d202ed8689d9831c2a86740ae4cf0da12f7e723bd90895ff7b3f33a1355dfe6a443e7e5d2a87b159a26b3eef937463a576205bd78dbdb8c01460 mimir.initd +246f0c875828b819bd8f11d49afecd63480626f4d96d95a1431c2d755e356ebe6109b7e0d34262f668c783609f7781cace26a73bfbe660b6626854f0d34fba72 mimir.confd +f4e1ef6f40faaeaa2a46112c023596c94b4d910274b257f5cb19198cfc6c068c3b6fe762b949354547948449a952a5ed1fb93b3cb090e69459cd5b780b4b3d44 mimir.yaml +" diff --git a/testing/mimir/mimir.confd b/testing/mimir/mimir.confd new file mode 100644 index 00000000000..a9d2f31365b --- /dev/null +++ b/testing/mimir/mimir.confd @@ -0,0 +1,5 @@ +# The mimir config file +MIMIR_CONF="/etc/mimir/mimir.yaml" + +# Add any extra options to pass to mimir to this setting. +#MIMIR_OPTS="" diff --git a/testing/mimir/mimir.initd b/testing/mimir/mimir.initd new file mode 100644 index 00000000000..8a753681baf --- /dev/null +++ b/testing/mimir/mimir.initd @@ -0,0 +1,11 @@ +#!/sbin/openrc-run + +configfile="${MIMIR_CONF:-/etc/mimir/mimir.yaml}" + +command=/usr/bin/mimir +command_args="-config.file=${configfile} + ${MIMIR_OPTS}" +command_background=yes +command_user=mimir:grafana +make_pidfile=yes +pidfile=/var/run/mimir.pid diff --git a/testing/mimir/mimir.pre-install b/testing/mimir/mimir.pre-install new file mode 100755 index 00000000000..4a84c04e8e3 --- /dev/null +++ b/testing/mimir/mimir.pre-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S grafana 2>/dev/null +adduser -S -D -h /var/lib/mimir -s /bin/false -G grafana -g grafana mimir 2>/dev/null + +exit 0 diff --git a/testing/mimir/mimir.yaml b/testing/mimir/mimir.yaml new file mode 100644 index 00000000000..5c58c51259d --- /dev/null +++ b/testing/mimir/mimir.yaml @@ -0,0 +1,50 @@ +# Do not use this configuration in production. +# It is for demonstration purposes only. +multitenancy_enabled: false + +activity_tracker: + filepath: /var/lib/mimir/metrics-activity.log + +blocks_storage: + backend: filesystem + bucket_store: + sync_dir: /var/lib/mimir/tsdb-sync + filesystem: + dir: /var/lib/mimir/data/tsdb + tsdb: + dir: /var/lib/mimir/tsdb + +compactor: + data_dir: /var/lib/mimir/compactor + sharding_ring: + kvstore: + store: memberlist + +distributor: + ring: + instance_addr: 127.0.0.1 + kvstore: + store: memberlist + +ingester: + ring: + instance_addr: 127.0.0.1 + kvstore: + store: memberlist + replication_factor: 1 + +ruler: + rule_path: /var/lib/mimir/data-ruler/ + +ruler_storage: + backend: filesystem + filesystem: + dir: /var/lib/mimir/rules + +server: + http_listen_port: 9009 + log_level: error + +store_gateway: + sharding_ring: + replication_factor: 1