New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split plugins to individual packages for DEB/RPM packaging. #13927
base: master
Are you sure you want to change the base?
Conversation
7227565
to
ffb4d47
Compare
This ensures they have accurate and cnocise descriptions of what they do, and that the descriptions are the same for both the RPM and DEB packages.
Most users do not actually use it, so make life easier for them by reducing our dependency footprint and cutting down on how much they need to download.
4e7702f
to
e2b7912
Compare
The code is in a separate package to simplify handling updates for it separately from the main agent code in the future. The eBPF plugin will still be installed by default in most cases when installing the Netdata Agent
The python.d plugin will still be installed by default in most cases when installing the Netdata Agent
The go.d plugin will still be installed by default in most cases when installing the Netdata Agent
The apps plugin will still be installed by default in most cases when installing the Netdata Agent
We should be modifying permissions and filecaps for plugins in the specific packages that install those plugins.
This should get rid of the duplicate files warnings, as well as probably producing a more technically correct RPM.
They should be folded at 76 characters.
b419d53
to
cc2a449
Compare
All platforms we build RPMs for have both netns and systemd support, so quit supporting platforms that don’t in our spec file.
They lack the required dependencies.
Also, start using CAP_PERFMON for it in RPM packages when available.
|
@Ferroin I was taking a look in the Actions to verify the final result of CI, and I observed an unexpected result: bash-5.2$ rpm2targz netdata-plugin-ebpf-code-1.36.0-1.el8.x86_64.rpm
bash-5.2$ rpm2targz netdata-plugin-ebpf-1.36.0-1.el8.x86_64.rpm
bash-5.2$ tar -xvf netdata-plugin-ebpf-code-1.36.0-1.el8.x86_64.tar.gz
./
./usr/
./usr/libexec/
./usr/libexec/netdata/
./usr/libexec/netdata/plugins.d/
./usr/libexec/netdata/plugins.d/ebpf.d/My expectation was to see all binaries from latest release inside this package, but I am seeing only a directory. Is this really expected? |
No, that’s definitely not expected. |


Summary
This continues the trend that was started a few years back with the CUPS and IPMI collectors of using separate packages for individual plugins. The following plugins are being split to their own packages in this PR:
Long term, I hope to decouple the packaging of the Go plugin and the eBPF programs from the main agent repository so that those can be updated on their own.
Test Plan
Local testing is probably most easily done by building the packages locally.
With this PR, there should be additional packages created for each of the plugins listed above, plus one extra package called
netdata-plugin-ebpf-code. Oracle Linux, CentOS, and Alma Linux should not include the nfacct plugin, as they do not have the required dependencies available.Because of how RPM and dpkg handle soft dependencies when installing package files directly (instead of from a repository), metadata inspection will be required to verify the soft dependencies outlined in the description above. RPM package metadata can be inspected by running
rpm -qipon the package file. DEB package metadata cna be inspected by runningdpkg-deb -Ion the package file.Additional Information
Fixes: #7857
This PR has two goals:
This PR also includes an assortment of cleanups and minor fixes for the existing DEB/RPM packaging code, such as properly splitting out postinst scripts to their dependent packages for the DEB packages, tidying up the file list for the spec file, and formatting package descriptions more consistently.