rpm-packaging/openstack/heat-agents/heat-agents.spec.j2

192 lines
8.0 KiB
Django/Jinja

{% set pypi_name = 'heat-agents' %}
{% set upstream_version = upstream_version('2.1.1') %}
{% set rpm_release = '1' %}
{% set source = url_pypi() %}
Name: {{ py2name(py_versions='py3') }}
Version: {{ py2rpmversion() }}
Release: {{ py2rpmrelease() }}
Summary: OpenStack Heat agents
License: {{ license('Apache-2.0') }}
Group: Development/Languages/Python
URL: https://docs.openstack.org/heat-agents
Source0: {{ source }}
BuildRequires: openstack-macros
BuildRequires: {{ py3('os-apply-config') }}
BuildRequires: {{ py3('os-refresh-config') }}
BuildRequires: {{ py3('pbr') }}
BuildArch: noarch
%description
Heat Agents are python hooks for deploying software configurations using heat.
%prep
%autosetup -p1 -n {{ pypi_name }}-{{ upstream_version }}
%py_req_cleanup
# Replace "env python" shebag to the correct python executable
# if we don't do that brp-mangle-shebangs will choke on CentOS 8
for python_script in $(grep "%{_bindir}/env python" . -rl)
do
sed -i "s#%{_bindir}/env python.*#%{_bindir}/python3#g" $python_script
done
%build
%install
# Use os-apply-config to bootstrap /etc/os-collect-config.conf
# from heat boot data
install -p -D -m 755 heat-config/os-refresh-config/configure.d/20-os-apply-config %{buildroot}%{_libexecdir}/os-refresh-config/configure.d/20-os-apply-config
install -p -D -m 600 heat-config/os-apply-config/%{_sysconfdir}/os-collect-config.conf %{buildroot}%{_libexecdir}/os-apply-config/templates/%{_sysconfdir}/os-collect-config.conf
# utilities which can be run by deployment scripts
install -p -D -m 755 heat-config/bin/heat-config-notify %{buildroot}/%{_bindir}/heat-config-notify
install -p -D -m 755 heat-config/bin/heat-config-rebuild-deployed %{buildroot}/%{_bindir}/heat-config-rebuild-deployed
# os-refresh-config script to run heat deployment resources
install -p -D -m 600 heat-config/os-apply-config/%{_localstatedir}/run/heat-config/heat-config %{buildroot}%{_libexecdir}/os-apply-config/templates/run/heat-config/heat-config
install -p -D -m 755 heat-config/os-refresh-config/configure.d/55-heat-config %{buildroot}%{_libexecdir}/os-refresh-config/configure.d/55-heat-config
# hook to perform configuration with scripts
install -p -D -m 755 heat-config-script/install.d/hook-script.py %{buildroot}%{_libexecdir}/heat-config/hooks/script
# hook to perform configuration with puppet
install -p -D -m 755 heat-config-puppet/install.d/hook-puppet.py %{buildroot}%{_libexecdir}/heat-config/hooks/puppet
# hook to perform configuration with ansible
install -p -D -m 755 heat-config-ansible/install.d/hook-ansible.py %{buildroot}%{_libexecdir}/heat-config/hooks/ansible
# hook to perform configuration with os-apply-config
install -p -D -m 755 heat-config-apply-config/install.d/hook-apply-config.py %{buildroot}%{_libexecdir}/heat-config/hooks/apply-config
# hook to perform configuration with hiera
install -p -D -m 755 heat-config-hiera/install.d/hook-hiera.py %{buildroot}%{_libexecdir}/heat-config/hooks/hiera
# hook to perform configuration with json-file
install -p -D -m 755 heat-config-json-file/install.d/hook-json-file.py %{buildroot}%{_libexecdir}/heat-config/hooks/json-file
# hook to perform configuration with docker commands
install -p -D -m 755 heat-config-docker-cmd/os-refresh-config/configure.d/50-heat-config-docker-cmd %{buildroot}%{_libexecdir}/os-refresh-config/configure.d/50-heat-config-docker-cmd
install -p -D -m 755 heat-config-docker-cmd/install.d/hook-docker-cmd.py %{buildroot}%{_libexecdir}/heat-config/hooks/docker-cmd
%package -n python3-heat-agent
Summary: Agent for performing Heat software deployments
Requires: {{ py3('dib-utils') }}
Requires: {{ py3('heat-cfntools') }}
Requires: {{ py3('python-heatclient') }}
Requires: {{ py3('os-apply-config') }}
Requires: {{ py3('os-collect-config') }}
Requires: {{ py3('os-refresh-config') }}
Requires: {{ py3('requests') }}
Requires: {{ py3('python-zaqarclient') }}
%description -n python3-heat-agent
Heat Agents are python hooks for deploying software configurations using heat.
This package installs and configures os-collect-config to allow Heat software
deployments to perform script based configuration tasks.
%package -n python3-heat-agent-puppet
Summary: Agent for performing Puppet based Heat software deployments
Requires: puppet
Requires: python3-heat-agent
%description -n python3-heat-agent-puppet
Heat Agents are python hooks for deploying software configurations using heat.
This package installs and configures os-collect-config to allow Heat software
deployments to perform puppet based configuration tasks.
%package -n python3-heat-agent-ansible
Summary: Agent for performing Ansible based Heat software deployments
Requires: {{ py2pkg('ansible') }}
Requires: python3-heat-agent
%description -n python3-heat-agent-ansible
Heat Agents are python hooks for deploying software configurations using heat.
This package installs and configures os-collect-config to allow Heat software
deployments to perform ansible based configuration tasks.
%package -n python3-heat-agent-apply-config
Summary: Agent for performing os-apply-config based Heat software deployments
Requires: python3-heat-agent
Requires: {{ py3('os-apply-config') }}
%description -n python3-heat-agent-apply-config
Heat Agents are python hooks for deploying software configurations using heat.
This package installs and configures os-collect-config to allow Heat software
deployments to perform os-apply-config based configuration tasks.
%package -n python3-heat-agent-hiera
Summary: Agent for performing hiera based Heat software deployments
Requires: python3-heat-agent
%description -n python3-heat-agent-hiera
Heat Agents are python hooks for deploying software configurations using heat.
This package installs and configures os-collect-config to allow Heat software
deployments to perform hiera based configuration tasks.
%package -n python3-heat-agent-json-file
Summary: Agent for performing json-file based Heat software deployments
Requires: python3-heat-agent
%description -n python3-heat-agent-json-file
Heat Agents are python hooks for deploying software configurations using heat.
This package installs and configures os-collect-config to allow Heat software
deployments to perform json-file based configuration tasks.
%package -n python3-heat-agent-docker-cmd
Summary: Agent for performing Docker based Heat software deployments
Requires: python3-heat-agent
%description -n python3-heat-agent-docker-cmd
Heat Agents are python hooks for deploying software configurations using heat.
This package installs and configures os-collect-config to allow Heat software
deployments to perform docker based configuration tasks.
%files
%license LICENSE
%files -n python3-heat-agent
%license LICENSE
%dir %{_libexecdir}/os-refresh-config/configure.d/
%dir %{_libexecdir}/os-apply-config/templates/run/heat-config
%{_bindir}/heat-config-notify
%{_bindir}/heat-config-rebuild-deployed
%dir %{_libexecdir}/os-apply-config/templates/%{_sysconfdir}/
%dir %{_libexecdir}/os-apply-config/templates/run/
%{_libexecdir}/os-apply-config/templates/%{_sysconfdir}/os-collect-config.conf
%{_libexecdir}/os-apply-config/templates/run/heat-config/heat-config
%{_libexecdir}/os-refresh-config/configure.d/20-os-apply-config
%{_libexecdir}/os-refresh-config/configure.d/55-heat-config
%dir %{_libexecdir}/heat-config
%dir %{_libexecdir}/heat-config/hooks
%{_libexecdir}/heat-config/hooks/script
%files -n python3-heat-agent-puppet
%license LICENSE
%{_libexecdir}/heat-config/hooks/puppet
%files -n python3-heat-agent-ansible
%{_libexecdir}/heat-config/hooks/ansible
%files -n python3-heat-agent-apply-config
%{_libexecdir}/heat-config/hooks/apply-config
%files -n python3-heat-agent-hiera
%{_libexecdir}/heat-config/hooks/hiera
%files -n python3-heat-agent-json-file
%{_libexecdir}/heat-config/hooks/json-file
%files -n python3-heat-agent-docker-cmd
%{_libexecdir}/heat-config/hooks/docker-cmd
%{_libexecdir}/os-refresh-config/configure.d/50-heat-config-docker-cmd
%changelog