diff --git a/testing/prometheus-opnsense-exporter/APKBUILD b/testing/prometheus-opnsense-exporter/APKBUILD new file mode 100644 index 00000000000..6884c1540f1 --- /dev/null +++ b/testing/prometheus-opnsense-exporter/APKBUILD @@ -0,0 +1,41 @@ +# Maintainer: Guy Godfroy +pkgname=prometheus-opnsense-exporter +_pkgname=opnsense-exporter +pkgver=0.0.5 +pkgrel=0 +pkgdesc="Prometheus exporter for OPNSense" +url="https://github.com/AthennaMind/opnsense-exporter" +license="Apache-2.0" +arch="all" +makedepends="go" +install="$pkgname.pre-install $pkgname.pre-upgrade" +subpackages="$pkgname-openrc" +source="$_pkgname-$pkgver.tar.gz::https://github.com/AthennaMind/opnsense-exporter/archive/v$pkgver.tar.gz + opnsense-exporter.initd + opnsense-exporter.confd + " +builddir="$srcdir/$_pkgname-$pkgver" +options="!check net" # no test suite available + +build() { + go build \ + -ldflags "-X github.com/prometheus/common/version.Version=$pkgver" \ + -v -o opnsense-exporter +} + +check() { + go test ./... +} + +package() { + install -Dm755 opnsense-exporter "$pkgdir"/usr/bin/opnsense-exporter + + install -Dm755 "$srcdir"/opnsense-exporter.initd "$pkgdir"/etc/init.d/opnsense-exporter + install -Dm644 "$srcdir"/opnsense-exporter.confd "$pkgdir"/etc/conf.d/opnsense-exporter +} + +sha512sums=" +7f28b9f27b71f3d6a780aad5c27d26730ef24dfef801709bb793881bf7fedd197bc4dededaaf68123cc8ee97d0ab32826f4ae708a9cafdb8a802262556a0adb7 opnsense-exporter-0.0.5.tar.gz +6ea912d9ded233ac09802f2f08aaf3e4a6d830fe5164435ba8d8bfdd74874c1855649f0c9127d18b0047c7fe7991631d8c7602c9faa41a79da98d0bd8ded58c0 opnsense-exporter.initd +77b35cef4066b2d8a119467a02f2d7946d9d8a38622e0fd1a90c36f7a43a247ef580b613ca361a01bd3df4b03b236f71b9e118e3172c729c9e7c594875f43cf6 opnsense-exporter.confd +" diff --git a/testing/prometheus-opnsense-exporter/opnsense-exporter.confd b/testing/prometheus-opnsense-exporter/opnsense-exporter.confd new file mode 100644 index 00000000000..81044826100 --- /dev/null +++ b/testing/prometheus-opnsense-exporter/opnsense-exporter.confd @@ -0,0 +1,13 @@ +# /etc/conf.d/opnsense-exporter + +# Mandatory parameters +PROTOCOL="https" +ADDRESS="192.168.0.1" +API_KEY="change_me" +API_SECRET="change_me" +INSTANCE_LABEL="opnsense" + +# Custom arguments can be specified like: +# +# ARGS="--web.listen-address=':9100'" +ARGS="" diff --git a/testing/prometheus-opnsense-exporter/opnsense-exporter.initd b/testing/prometheus-opnsense-exporter/opnsense-exporter.initd new file mode 100755 index 00000000000..1fdffacc056 --- /dev/null +++ b/testing/prometheus-opnsense-exporter/opnsense-exporter.initd @@ -0,0 +1,20 @@ +#!/sbin/openrc-run +supervisor=supervise-daemon + +command="/usr/bin/opnsense-exporter" +command_args="--opnsense.protocol=$PROTOCOL --opnsense.address=$ADDRESS --opnsense.api-key=$API_KEY --opnsense.api-secret=$API_SECRET --exporter.instance-label=$INSTANCE_LABEL $ARGS" +command_background="yes" +command_user="prometheus:prometheus" + +logdir="/var/log/prometheus" +error_log="$logdir/${SVCNAME}.log" +pidfile="/var/run/${SVCNAME}.pid" + +depend() { + need net + after firewall +} + +start_pre() { + checkpath -f -o $command_user -m644 $error_log +} diff --git a/testing/prometheus-opnsense-exporter/prometheus-opnsense-exporter.pre-install b/testing/prometheus-opnsense-exporter/prometheus-opnsense-exporter.pre-install new file mode 100755 index 00000000000..120995cf353 --- /dev/null +++ b/testing/prometheus-opnsense-exporter/prometheus-opnsense-exporter.pre-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S prometheus 2>/dev/null +adduser -S -D -h /var/lib/prometheus -s /sbin/nologin -G prometheus -g prometheus prometheus 2>/dev/null + +exit 0 diff --git a/testing/prometheus-opnsense-exporter/prometheus-opnsense-exporter.pre-upgrade b/testing/prometheus-opnsense-exporter/prometheus-opnsense-exporter.pre-upgrade new file mode 120000 index 00000000000..8ac335ad1c8 --- /dev/null +++ b/testing/prometheus-opnsense-exporter/prometheus-opnsense-exporter.pre-upgrade @@ -0,0 +1 @@ +prometheus-opnsense-exporter.pre-install \ No newline at end of file