Project

General

Profile

Download (8.36 KB) Statistics
| Branch: | Tag: | Revision:
# template: smart_proxy_plugin
%global gem_name smart_proxy_salt
%global plugin_name salt

%global foreman_proxy_min_version 2.5
%global foreman_proxy_dir %{_datadir}/foreman-proxy
%global foreman_proxy_statedir %{_sharedstatedir}/foreman-proxy
%global foreman_proxy_bundlerd_dir %{foreman_proxy_dir}/bundler.d
%global foreman_proxy_settingsd_dir %{_sysconfdir}/foreman-proxy/settings.d

%global salt_config_dir %{_sysconfdir}/salt
%global salt_proxy_runners_dir %{foreman_proxy_dir}/salt/runners
%global salt_proxy_reactors_dir %{foreman_proxy_dir}/salt/reactors
%global salt_state_grains_dir %{foreman_proxy_statedir}/salt/grains

Name: rubygem-%{gem_name}
Version: 5.1.0
Release: 1%{?foremandist}%{?dist}
Summary: SaltStack Plug-In for Foreman's Smart Proxy
License: GPLv3
URL: https://github.com/theforeman/smart_proxy_salt
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem

# salt-specific dependencies
Requires: salt-master
Requires: python3
BuildRequires: python3-rpm-macros

# start specfile generated dependencies
Requires: foreman-proxy >= %{foreman_proxy_min_version}
Requires: ruby >= 2.7
Requires: ruby < 4
BuildRequires: ruby >= 2.7
BuildRequires: ruby < 4
BuildRequires: rubygems-devel
BuildArch: noarch
Provides: foreman-proxy-plugin-%{plugin_name} = %{version}
# end specfile generated dependencies

%description
This plug-in adds support for Salt to Foreman's Smart Proxy.

%package doc
Summary: Documentation for %{name}
Requires: %{name} = %{version}-%{release}
BuildArch: noarch

%description doc
Documentation for %{name}.

%prep
%setup -q -n %{gem_name}-%{version}

%build
# Create the gem as gem install only works on a gem file
gem build ../%{gem_name}-%{version}.gemspec

# %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir
# by default, so that we can move it into the buildroot in %%install
%gem_install

%install
mkdir -p %{buildroot}%{gem_dir}
cp -a .%{gem_dir}/* \
%{buildroot}%{gem_dir}/

mkdir -p %{buildroot}%{_bindir}
cp -a .%{_bindir}/* \
%{buildroot}%{_bindir}/
find %{buildroot}%{gem_instdir}/bin -type f | xargs chmod a+x

# runners
mkdir -p %{buildroot}%{salt_proxy_runners_dir}
mv %{buildroot}%{gem_instdir}/salt/minion_auth/srv/salt/_runners/* \
%{buildroot}%{salt_proxy_runners_dir}
mv %{buildroot}%{gem_instdir}/salt/report_upload/srv/salt/_runners/* \
%{buildroot}%{salt_proxy_runners_dir}
# reactors
mkdir -p %{buildroot}%{salt_proxy_reactors_dir}
mv %{buildroot}%{gem_instdir}/salt/minion_auth/foreman_minion_auth.sls \
%{buildroot}%{salt_proxy_reactors_dir}/
mv %{buildroot}%{gem_instdir}/salt/report_upload/foreman_report_upload.sls \
%{buildroot}%{salt_proxy_reactors_dir}/
# grains
mkdir -p %{buildroot}%{salt_state_grains_dir}
touch %{buildroot}%{salt_state_grains_dir}/autosign_key

# bundler file
mkdir -p %{buildroot}%{foreman_proxy_bundlerd_dir}
mv %{buildroot}%{gem_instdir}/bundler.d/%{plugin_name}.rb \
%{buildroot}%{foreman_proxy_bundlerd_dir}

# sample config
mkdir -p %{buildroot}%{foreman_proxy_settingsd_dir}
mv %{buildroot}%{gem_instdir}/settings.d/salt.saltfile.example \
%{buildroot}%{foreman_proxy_settingsd_dir}/salt.saltfile
mv %{buildroot}%{gem_instdir}/settings.d/salt.yml.example \
%{buildroot}%{foreman_proxy_settingsd_dir}/salt.yml

mkdir -p %{buildroot}%{salt_config_dir}
cp -pa .%{gem_instdir}/etc/foreman.yaml.example %{buildroot}%{salt_config_dir}/foreman.yaml

mkdir -p %{buildroot}%{_bindir}
cp -pa .%{_bindir}/foreman-node %{buildroot}%{_bindir}/foreman-node

mkdir -p %{buildroot}%{_sbindir}
mv %{buildroot}/%{gem_instdir}/sbin/upload-salt-reports %{buildroot}%{_sbindir}/upload-salt-reports

%files
%dir %{gem_instdir}
%{_bindir}/foreman-node
%{_sbindir}/upload-salt-reports
%config(noreplace) %attr(0640, root, foreman-proxy) %{foreman_proxy_settingsd_dir}/salt.saltfile
%config(noreplace) %attr(0640, root, foreman-proxy) %{foreman_proxy_settingsd_dir}/salt.yml
%license %{gem_instdir}/LICENSE
%{gem_instdir}/bin
%exclude %{gem_instdir}/bundler.d
%{gem_instdir}/etc
%{gem_libdir}
%{gem_instdir}/salt
%{gem_instdir}/sbin
%exclude %{gem_instdir}/settings.d
%{foreman_proxy_bundlerd_dir}/%{plugin_name}.rb
%exclude %{gem_cache}
%{gem_spec}
%config(noreplace) %{salt_config_dir}/foreman.yaml
%exclude %{gem_instdir}/etc
%{salt_proxy_runners_dir}
%{salt_proxy_reactors_dir}
%dir %attr(-,foreman-proxy,foreman-proxy) %{salt_state_grains_dir}
%ghost %{salt_state_grains_dir}/autosign_key

%files doc
%doc %{gem_docdir}
%doc %{gem_instdir}/README.md

%post
if [ ! -f %{salt_state_grains_dir}/autosign_key ] ; then
touch %{salt_state_grains_dir}/autosign_key
chmod 640 %{salt_state_grains_dir}/autosign_key
chown foreman-proxy:foreman-proxy %{salt_state_grains_dir}/autosign_key
fi

%changelog
* Fri Apr 19 2024 Nadja Heitmann <nadjah@atix.de> 5.1.0-1
- Update to 5.1.0-1
- Remove python2 support

* Fri Nov 25 2022 Bastian Schmidt <schmidt@atix.de> 5.0.1-1
- Update to 5.0.1
- Drop cron job

* Thu Aug 18 2022 Bastian Schmidt <schmidt@atix.de> 5.0.0-4
- Add automatic report upload via reactor

* Mon May 09 2022 Eric D. Helms <ericdhelms@gmail.com> - 5.0.0-3
- Drop unused smart_proxy_dynflow_core_bundlerd_dir macro

* Tue Apr 05 2022 Bernhard Suttner <suttner@atix.de> - 5.0.0-2
- Fix wrong rubygem wrapper script for shell script 'salt_python_wrapper'

* Mon Feb 14 2022 Bernhard Suttner <suttner@atix.de> 5.0.0-1
- Update to 5.0.0

* Wed Jan 12 2022 Bastian Schmidt <schmidt@atix.de> 4.0.0-1
- Update to 4.0.0
- Add Autosign via Grains authentication
- Remove smart_proxy_salt_core

* Mon Jan 10 2022 Evgeni Golov - 3.1.2-9
- use versioned obsoletes for proxy plugins

* Tue Apr 06 2021 Eric D. Helms <ericdhelms@gmail.com> - 3.1.2-8
- Rebuild for Ruby 2.7

* Wed Mar 17 2021 Adam Ruzicka <aruzicka@redhat.com> 3.1.2-7
- Deploy bundlerd file for foreman proxy

* Thu Jul 09 2020 Bernhard Suttner <suttner@atix.de> - 3.1.2-6
- Fix upload-salt-report path
- Fix hashbang for foreman-node helper script

* Fri Jul 03 2020 Stefan Bogner <bogner@b1-systems.de> - 3.1.2-5
- Do not change hashbang on RHEL < 8

* Tue Jun 23 2020 Markus Bucher <bucher@atix.de> - 3.1.2-4
- Fix hashbang in upload-salt-reports

* Mon Jun 22 2020 Adam Ruzicka <aruzicka@redhat.com> 3.1.2-3
- Prevent local state from being put to /usr/com

* Mon Jun 22 2020 Evgeni Golov - 3.1.2-2
- Fix bundler.d location on EL8

* Tue Jun 09 2020 Bernhard Suttner <suttner@atix.de> 3.1.2-1
- Update to 3.1.2
- Move local state to /var/lib (Co-Authored-By: Adam Ruzicka <aruzicka@redhat.com>)

* Fri Jan 17 2020 Zach Huntington-Meath <zhunting@redhat.com> - 3.1.1-4
- Update spec to remove the ror scl

* Tue Jan 07 2020 Eric D. Helms <ericdhelms@gmail.com> - 3.1.1-3
- Build for SCL

* Mon Nov 18 2019 Eric D. Helms <ericdhelms@gmail.com> - 3.1.1-2
- Update to SCL based template

* Tue Nov 05 2019 Bernhard Suttner <suttner@atix.de> 3.1.1-1
- Update to 3.1.1

* Thu Oct 31 2019 Bernhard Suttner <suttner@atix.de> 3.1.0-1
- Update to 3.1.0

* Fri Aug 02 2019 Adam Ruzicka <aruzicka@redhat.com> 3.0.0-1
- Update to 3.0.0

* Tue May 08 2018 Michael Moll <kvedulv@kvedulv.de> 2.1.9-1
- update smart_proxy_salt to 2.1.9 (kvedulv@kvedulv.de)

* Thu Mar 30 2017 Dominic Cleal <dominic@cleal.org> 2.1.8-1
- update smart_proxy_salt to 2.1.8 (kvedulv@kvedulv.de)

* Mon Oct 10 2016 Dominic Cleal <dominic@cleal.org> 2.1.7-1
- update smart_proxy_salt to 2.1.7 (kvedulv@kvedulv.de)

* Mon Oct 26 2015 Dominic Cleal <dcleal@redhat.com> 2.1.6-1
- Small smart_proxy_salt update (stbenjam@redhat.com)

* Tue Sep 01 2015 Dominic Cleal <dcleal@redhat.com> 2.1.5-1
- Release smart_proxy_salt 2.1.5 (stbenjam@redhat.com)

* Thu Aug 13 2015 Stephen Benjamin <stephen@redhat.com> 2.1.4-1
- Update smart_proxy_salt to 2.1.4

* Fri Jun 26 2015 Dominic Cleal <dcleal@redhat.com> 2.1.3-1
- update smart_proxy_salt to 2.1.3 (kvedulv@kvedulv.de)

* Sat May 09 2015 Stephen Benjamin <stephen@redhat.com> 2.1.2-1
- Update smart_proxy_salt to 2.1.2 (stephen@redhat.com)

* Mon Mar 02 2015 Dominic Cleal <dcleal@redhat.com> 2.0.0-1
- Update smart_proxy_salt to 2.0.0 (dcleal@redhat.com)

* Thu Nov 20 2014 Dominic Cleal <dcleal@redhat.com> 1.0.0-3
- Only require foreman-proxy 1.6.0 or higher (stbenjam@redhat.com)

* Thu Nov 20 2014 Dominic Cleal <dcleal@redhat.com> 1.0.0-2
- Fix cron.d file permissions (stbenjam@redhat.com)

* Wed Nov 19 2014 Stephen Benjamin <stephen@bitbin.de> - 1.0.0-1
- Update to 1.0.0

* Sun Aug 31 2014 Michael Moll <mmoll@mmoll.at> - 0.0.2-1
- update to 0.0.2

* Wed Aug 20 2014 Michael Moll <mmoll@mmoll.at> - 0.0.1-1
- create package
(1-1/2)