diff --git a/.gitignore b/.gitignore index e69de29..c6775de 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/ansible-pcp-2.1.3.tar.gz diff --git a/ansible-pcp.spec b/ansible-pcp.spec new file mode 100644 index 0000000..5f8e548 --- /dev/null +++ b/ansible-pcp.spec @@ -0,0 +1,122 @@ +%if 0%{?rhel} +%global collection_namespace redhat +%global collection_name rhel_metrics +%bcond_with ansible +%else +%global collection_namespace performancecopilot +%global collection_name metrics +%bcond_without ansible +%endif + +Name: ansible-pcp +Version: 2.1.3 +Release: 1%{?dist} +Summary: Ansible Metric collection for Performance Co-Pilot +License: MIT +URL: %{ansible_collection_url} +Source: https://github.com/performancecopilot/ansible-pcp/archive/v%{version}/%{name}-%{version}.tar.gz + +%if %{with ansible} +BuildRequires: ansible >= 2.9.10 +BuildRequires: python3-ansible-lint +%endif +BuildArch: noarch + +%description +A collection containing roles for Performance Co-Pilot (PCP) and related +software such as Redis and Grafana. The collection is made up of several +Ansible roles, including: + +%{collection_namespace}.%{collection_name}.pcp +A role for core PCP capabilities, configuring live performance analysis +with a large base set of metrics from the kernel and system services, as +well as data recording and rule inference. + +%{collection_namespace}.%{collection_name}.redis +A role for configuring a local Redis server, suitable for use with a +Performance Co-Pilot archive repository (for single or many hosts) and +fast, scalable querying of metrics. + +%{collection_namespace}.%{collection_name}.grafana +A role for configuring a local Grafana server, providing web frontend +visuals for Performance Co-Pilot metrics, both live and historically. +Data sources for Vector (live), Redis (historical) and interactive +bpftrace (eBPF) scripts can be configured by this role. The PCP REST +API service (from the core pcp role) should be configured in order to +use this role. + +%{collection_namespace}.%{collection_name}.bpftrace +A role that extends the core PCP role, providing metrics from bpftrace +scripts using Linux eBPF facilities. Configuring authentication of a +local user capable of running bpftrace scripts via the PCP agent is a +key task of this role. + +%{collection_namespace}.%{collection_name}.elasticsearch +A role that extends the core PCP role, providing metrics from a live +ElasticSearch instance for PCP analysis or exporting of PCP metric +values (and metadata) to ElasticSearch for the indexing and querying +of performance data. + +%prep +%autosetup +mv .yamllint.yml yamllint.yml +mv .yamllint_defaults.yml yamllint_defaults.yml +%if 0%{?rhel} +rm -vr roles/repository tests/*repository* tests/*/*repository* docs/repository +%endif +rm -vr .github .gitignore .ansible-lint .*.yml +sed -i \ + -e 's/^name: .*/name: %{collection_name}/g' \ + -e 's/^namespace: .*/namespace: %{collection_namespace}/g' \ + galaxy.yml +find . -name \*.yml -o -name \*.md | while read file; do + sed -i \ + -e 's/performancecopilot.metrics/%{collection_namespace}.%{collection_name}/g' \ + $file +done + +%if %{without ansible} +%define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace} +# Empty command. We don't have ansible-galaxy. +%define ansible_collection_build() tar -cf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{version}.tar.gz . +# Simply copy everything instead of galaxy-installing the built artifact. +%define ansible_collection_install() mkdir -p %{buildroot}%{ansible_collection_files}/%{collection_name}; (cd %{buildroot}%{ansible_collection_files}/%{collection_name}; tar -xf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{version}.tar.gz) +%endif + +%build +%ansible_collection_build + +%install +%ansible_collection_install + +%check +mv yamllint.yml .yamllint.yml +mv yamllint_defaults.yml .yamllint_defaults.yml +%if %{with ansible} +ansible-lint `find roles -name \*.yml` +%endif + +%files +%doc README.md +%license LICENSE +%{ansible_collection_files} + +%changelog +* Wed Jun 09 2021 Nathan Scott 2.1.3-1 +- Initial version of RHEL-9 package (BZ 1957566) +- Latest upstream release + +* Fri Feb 05 2021 Nathan Scott 2.1.2-1 +- Add RHEL macros to the spec alongside Fedora +- Latest upstream release + +* Tue Jan 26 2021 Fedora Release Engineering - 2.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Nov 11 2020 Nathan Scott 2.0.3-1 +- Updated for new version with changed namespace +- Ansible collection macros now used in the spec +- Added ansible-lint checking in %%check section + +* Fri Oct 23 2020 Nathan Scott 1.0.0-1 +- Initial RPM spec build diff --git a/sources b/sources new file mode 100644 index 0000000..d9c92c9 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (ansible-pcp-2.1.3.tar.gz) = 2ce68060bdb14a34a779741b04b015deb934e3d3186bc209e7b279c2902280a559ed63e6eb0c7779680e5c4089e8d8cf63c26f117b8b8bb57d2e2c47e43910b4