From 74271ef07c56caf8d9b9e16ee7b74eae243d897b Mon Sep 17 00:00:00 2001 From: Matt Mix Date: Mon, 20 Nov 2023 11:59:32 -0600 Subject: [PATCH] Add RPM spec file and systemd service unit. (#26) * Add RPM spec file and systemd service unit. * Move to packaging/rpm --------- Co-authored-by: Matt Mix Co-authored-by: mattmix --- packaging/rpm/cgroup_exporter.service | 32 ++++++++++++++++++ packaging/rpm/cgroup_exporter.spec | 45 +++++++++++++++++++++++++ packaging/rpm/cgroup_exporter.sysconfig | 4 +++ 3 files changed, 81 insertions(+) create mode 100644 packaging/rpm/cgroup_exporter.service create mode 100644 packaging/rpm/cgroup_exporter.spec create mode 100644 packaging/rpm/cgroup_exporter.sysconfig diff --git a/packaging/rpm/cgroup_exporter.service b/packaging/rpm/cgroup_exporter.service new file mode 100644 index 0000000..46b025f --- /dev/null +++ b/packaging/rpm/cgroup_exporter.service @@ -0,0 +1,32 @@ +[Unit] +Description=cgroup exporter +After=network.target network-online.target + +[Service] +Type=simple +EnvironmentFile=-/etc/sysconfig/cgroup_exporter +ExecStart=/usr/sbin/cgroup_exporter --config.paths $CONFIG_PATHS $OPTIONS +Restart=always +User=cgroup_exporter +Group=cgroup_exporter +NoNewPrivileges=yes +PrivateTmp=yes +PrivateDevices=yes +DevicePolicy=closed +ProtectSystem=strict +ProtectHome=yes +ProtectControlGroups=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +RestrictAddressFamilies=AF_INET AF_INET6 +RestrictNamespaces=yes +RestrictRealtime=yes +RestrictSUIDSGID=yes +MemoryDenyWriteExecute=yes +LockPersonality=yes +RemoveIPC=yes +CapabilityBoundingSet= +SystemCallFilter=@system-service + +[Install] +WantedBy=multi-user.target diff --git a/packaging/rpm/cgroup_exporter.spec b/packaging/rpm/cgroup_exporter.spec new file mode 100644 index 0000000..f7d4212 --- /dev/null +++ b/packaging/rpm/cgroup_exporter.spec @@ -0,0 +1,45 @@ +Name: cgroup_exporter +Version: 0.9.1 +Release: 1%{?dist} +Summary: The cgroup_exporter produces metrics from cgroups. + +License: Apache License +Source0: %{name}-%{version}.tar.gz +URL: https://github.com/treydock/cgroup_exporter + +BuildRequires: go-toolset +Requires: systemd + +%description + +The cgroup_exporter produces metrics from cgroups. + +This exporter by default listens on port 9306 and all metrics are exposed via the /metrics endpoint. + +%global debug_package %{nil} + +%prep +%autosetup + +%build +go build -v -o %{name} + +%install +install -Dpm 0755 %{name} %{buildroot}%{_sbindir}/%{name} +install -Dpm 0644 packaging/rpm/%{name}.service %{buildroot}%{_unitdir}/%{name}.service +install -Dpm 0644 packaging/rpm/%{name}.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/%{name} + +%clean +rm -rf %{buildroot} + +%pre +%{_sbindir}/useradd -c "cgroup exporter user" -s /bin/false -r -d / cgroup_exporter 2>/dev/null || : + +%files +%{_sbindir}/%{name} +%{_unitdir}/%{name}.service +%config(noreplace) %{_sysconfdir}/sysconfig/%{name} + +%changelog +* Fri Nov 10 2023 Initial RPM +- diff --git a/packaging/rpm/cgroup_exporter.sysconfig b/packaging/rpm/cgroup_exporter.sysconfig new file mode 100644 index 0000000..ca0d29f --- /dev/null +++ b/packaging/rpm/cgroup_exporter.sysconfig @@ -0,0 +1,4 @@ +# cgroup subsystem paths to look at, comma separated +CONFIG_PATHS=/user.slice +# Additional options +OPTIONS=