summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Klinkovský2021-10-02 12:45:15 +0200
committerJakub Klinkovský2021-10-02 12:45:15 +0200
commit270d88505ceca1118b792388d493b662e970adea (patch)
treee7ca5420b1915fd8d4d473005e1b2f0e24c72e06
downloadaur-270d88505ceca1118b792388d493b662e970adea.tar.gz
initial commit
-rw-r--r--.SRCINFO20
-rw-r--r--PKGBUILD56
-rw-r--r--prometheus-nvidia-gpu-exporter.conf2
-rw-r--r--prometheus-nvidia-gpu-exporter.service45
-rw-r--r--prometheus-nvidia-gpu-exporter.sysusers1
5 files changed, 124 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..21c06afa87ef
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,20 @@
+pkgbase = prometheus-nvidia-gpu-exporter
+ pkgdesc = Prometheus exporter for Nvidia GPU metrics
+ pkgver = r31.e7d86ca
+ pkgrel = 3
+ url = https://github.com/cfsmp3/nvidia_gpu_prometheus_exporter
+ arch = x86_64
+ license = Apache
+ makedepends = go
+ makedepends = git
+ backup = etc/conf.d/prometheus-nvidia-gpu-exporter
+ source = git+https://github.com/cfsmp3/nvidia_gpu_prometheus_exporter.git
+ source = prometheus-nvidia-gpu-exporter.conf
+ source = prometheus-nvidia-gpu-exporter.service
+ source = prometheus-nvidia-gpu-exporter.sysusers
+ b2sums = SKIP
+ b2sums = 47fb8b927f0f8f83521ffabe83076ae0dee39de9ea35e8f14520e6bd2bea746eff2c73838dcf0b4e84b71d4dbfc8280b1f874afc95f7f696aba4cfd9fccdc36a
+ b2sums = 41982b18a355b80a2b7a14e92bfcd7ca4d2bd8020c922c1219261d0b15a91eaab895eb2317a16625cd61d71527b9420fb188fffeb2ed765ff256a6eaeccb9330
+ b2sums = b275bf80f0dfaa8a89bb97ea28a0c5afd3e900fd82ded97c628f47cebd5442f402c62f0f814099968b31f821248d9661815deae6517917ce8eec6400d96967a6
+
+pkgname = prometheus-nvidia-gpu-exporter
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..425de299e593
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Jakub Klinkovský <j.l.k@gmx.com>
+
+pkgname=prometheus-nvidia-gpu-exporter
+_pkgname=nvidia_gpu_prometheus_exporter
+pkgver=r31.e7d86ca
+pkgrel=3
+pkgdesc="Prometheus exporter for Nvidia GPU metrics"
+arch=(x86_64)
+url="https://github.com/cfsmp3/nvidia_gpu_prometheus_exporter"
+license=(Apache)
+makedepends=(go git)
+backup=("etc/conf.d/prometheus-nvidia-gpu-exporter")
+source=("git+$url.git"
+ "$pkgname.conf"
+ "$pkgname.service"
+ "$pkgname.sysusers")
+b2sums=('SKIP'
+ '47fb8b927f0f8f83521ffabe83076ae0dee39de9ea35e8f14520e6bd2bea746eff2c73838dcf0b4e84b71d4dbfc8280b1f874afc95f7f696aba4cfd9fccdc36a'
+ '41982b18a355b80a2b7a14e92bfcd7ca4d2bd8020c922c1219261d0b15a91eaab895eb2317a16625cd61d71527b9420fb188fffeb2ed765ff256a6eaeccb9330'
+ 'b275bf80f0dfaa8a89bb97ea28a0c5afd3e900fd82ded97c628f47cebd5442f402c62f0f814099968b31f821248d9661815deae6517917ce8eec6400d96967a6')
+
+pkgver() {
+ cd "$_pkgname"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+prepare() {
+ cd "$_pkgname"
+ go mod vendor
+ mkdir -p build
+}
+
+build() {
+ cd "$_pkgname"
+ export CGO_CPPFLAGS="${CPPFLAGS}"
+ export CGO_CFLAGS="${CFLAGS}"
+ export CGO_CXXFLAGS="${CXXFLAGS}"
+ export CGO_LDFLAGS="${LDFLAGS}"
+ export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
+ go build -o build .
+}
+
+package() {
+ # systemd files
+ install -Dm644 "$pkgname.service" "$pkgdir/usr/lib/systemd/system/$pkgname.service"
+ install -Dm644 "$pkgname.sysusers" "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
+ install -Dm644 "$pkgname.conf" "$pkgdir/etc/conf.d/$pkgname"
+
+ cd "$_pkgname"
+
+ # binary
+ install -Dm755 "build/$_pkgname" "$pkgdir/usr/bin/$pkgname"
+
+ # license
+ install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" "$srcdir/$_pkgname/LICENSE"
+}
diff --git a/prometheus-nvidia-gpu-exporter.conf b/prometheus-nvidia-gpu-exporter.conf
new file mode 100644
index 000000000000..2d1043e03289
--- /dev/null
+++ b/prometheus-nvidia-gpu-exporter.conf
@@ -0,0 +1,2 @@
+# Specify additional arguments to pass to prometheus-nvidia-gpu-exporter on startup
+NVIDIA_GPU_EXPORTER_ARGS=""
diff --git a/prometheus-nvidia-gpu-exporter.service b/prometheus-nvidia-gpu-exporter.service
new file mode 100644
index 000000000000..ac8c366ed6a3
--- /dev/null
+++ b/prometheus-nvidia-gpu-exporter.service
@@ -0,0 +1,45 @@
+[Unit]
+Description=Prometheus exporter for nvidia-gpu metrics
+Requires=network-online.target
+After=network-online.target
+
+[Service]
+EnvironmentFile=-/etc/conf.d/prometheus-nvidia-gpu-exporter
+ExecStart=/usr/bin/prometheus-nvidia-gpu-exporter $NVIDIA_GPU_EXPORTER_ARGS
+ExecReload=/bin/kill -HUP $MAINPID
+User=nvidia-gpu-exporter
+Group=nvidia-gpu-exporter
+Restart=on-failure
+RestartSec=5s
+
+NoNewPrivileges=true
+LimitNOFILE=1048576
+UMask=0077
+
+ProtectSystem=strict
+ProtectHome=true
+PrivateUsers=yes
+PrivateTmp=true
+#PrivateDevices=true # this is actually needed to access the GPUs
+ProtectHostname=true
+#ProtectClock=true # this is actually needed - no idea why...
+ProtectKernelTunables=true
+ProtectKernelModules=true
+ProtectKernelLogs=true
+ProtectControlGroups=true
+RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
+RestrictNamespaces=true
+LockPersonality=true
+MemoryDenyWriteExecute=true
+RestrictRealtime=true
+RestrictSUIDSGID=true
+RemoveIPC=true
+CapabilityBoundingSet=
+AmbientCapabilities=
+
+SystemCallFilter=@system-service
+SystemCallFilter=~@privileged @resources
+SystemCallArchitectures=native
+
+[Install]
+WantedBy=multi-user.target
diff --git a/prometheus-nvidia-gpu-exporter.sysusers b/prometheus-nvidia-gpu-exporter.sysusers
new file mode 100644
index 000000000000..4ca4b93b474c
--- /dev/null
+++ b/prometheus-nvidia-gpu-exporter.sysusers
@@ -0,0 +1 @@
+u nvidia-gpu-exporter - "Prometheus Nvidia GPU exporter user"