File uyuni-proxy-systemd-services-git-0.ef1610d.obscpio of Package uyuni-proxy-systemd-services.24170
07070100000000000041FD000000000000000000000001627A1B8F00000000000000000000000000000000000000000000001D00000000uyuni-proxy-systemd-services07070100000001000081B4000000000000000000000001627A1B8F00000311000000000000000000000000000000000000002700000000uyuni-proxy-systemd-services/README.md# Creating systemd services
## First things first
Create the pod; create containers and add them to the pod.
## Generate systemd services
```
mkdir systemd-services-generation
cd systemd-services-generation
podman generate systemd --files --name --new proxy-pod
# replace KillMode=none with TimeoutStopSec=60 as per https://github.com/containers/podman/pull/8889
sed -i 's/KillMode=none/TimeoutStopSec=60/' *-proxy-*.service
mv *-proxy-*.service /etc/systemd/system/.
```
## Start services
```
systemctl daemon-reload
systemctl start pod-proxy-pod.service
```
## NOTE
Remember to customize and parameterize values that are meant to be, because `podman generate systemd` will create services with the output value of each parameter based on the created/running instances.
07070100000002000081B4000000000000000000000001627A1B8F00000436000000000000000000000000000000000000003700000000uyuni-proxy-systemd-services/uyuni-proxy-httpd.service# uyuni-proxy-httpd.service
# autogenerated by Podman 2.1.1
# Tue Mar 1 09:09:51 CET 2022
[Unit]
Description=Uyuni proxy httpd container service
Wants=network.target
After=network-online.target
BindsTo=uyuni-proxy-pod.service
After=uyuni-proxy-pod.service
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
EnvironmentFile=/etc/sysconfig/uyuni-proxy-systemd-services
Restart=on-failure
ExecStartPre=/bin/rm -f %t/uyuni-proxy-httpd.pid %t/uyuni-proxy-httpd.ctr-id
ExecStart=/usr/bin/podman run --conmon-pidfile %t/uyuni-proxy-httpd.pid --cidfile %t/uyuni-proxy-httpd.ctr-id --cgroups=no-conmon --pod-id-file %t/uyuni-proxy-pod.pod-id -d --replace -dt -v ${CONFIG_DIR}:/etc/uyuni:ro -v ${RHN_CACHE_DIR}:/var/cache/rhn -v ${TFTPBOOT_DIR}:/srv/tftpboot --name uyuni-proxy-httpd ${NAMESPACE}/proxy-httpd
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/uyuni-proxy-httpd.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/uyuni-proxy-httpd.ctr-id
PIDFile=%t/uyuni-proxy-httpd.pid
TimeoutStopSec=60
Type=forking
[Install]
WantedBy=multi-user.target default.target
07070100000003000081B4000000000000000000000001627A1B8F00000528000000000000000000000000000000000000003500000000uyuni-proxy-systemd-services/uyuni-proxy-pod.service# uyuni-proxy-pod.service
# autogenerated by Podman 2.1.1
# Tue Mar 1 09:09:51 CET 2022
[Unit]
Description=Podman uyuni-proxy-pod.service
Wants=network.target
After=network-online.target
Requires=uyuni-proxy-httpd.service uyuni-proxy-salt-broker.service uyuni-proxy-squid.service uyuni-proxy-ssh.service uyuni-proxy-tftpd.service
Before=uyuni-proxy-httpd.service uyuni-proxy-salt-broker.service uyuni-proxy-squid.service uyuni-proxy-ssh.service uyuni-proxy-tftpd.service
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
EnvironmentFile=/etc/sysconfig/uyuni-proxy-systemd-services
Restart=on-failure
ExecStartPre=/bin/rm -f %t/uyuni-proxy-pod.pid %t/uyuni-proxy-pod.pod-id
ExecStartPre=/usr/bin/podman pod create --infra-conmon-pidfile %t/uyuni-proxy-pod.pid --pod-id-file %t/uyuni-proxy-pod.pod-id --name proxy-pod --publish 8022:22 --publish 69:69 --publish 8080:8080 --publish 443:443 --publish 4505:4505 --publish 4506:4506 --replace $EXTRA_POD_ARGS
ExecStart=/usr/bin/podman pod start --pod-id-file %t/uyuni-proxy-pod.pod-id
ExecStop=/usr/bin/podman pod stop --ignore --pod-id-file %t/uyuni-proxy-pod.pod-id -t 10
ExecStopPost=/usr/bin/podman pod rm --ignore -f --pod-id-file %t/uyuni-proxy-pod.pod-id
PIDFile=%t/uyuni-proxy-pod.pid
TimeoutStopSec=60
Type=forking
[Install]
WantedBy=multi-user.target default.target
07070100000004000081B4000000000000000000000001627A1B8F00000434000000000000000000000000000000000000003D00000000uyuni-proxy-systemd-services/uyuni-proxy-salt-broker.service# uyuni-proxy-salt-broker.service
# autogenerated by Podman 2.1.1
# Tue Mar 1 09:09:51 CET 2022
[Unit]
Description=Uyuni proxy salt broker container service
Wants=network.target
After=network-online.target
BindsTo=uyuni-proxy-pod.service
After=uyuni-proxy-pod.service
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
EnvironmentFile=/etc/sysconfig/uyuni-proxy-systemd-services
Restart=on-failure
ExecStartPre=/bin/rm -f %t/uyuni-proxy-salt-broker.pid %t/uyuni-proxy-salt-broker.ctr-id
ExecStart=/usr/bin/podman run --conmon-pidfile %t/uyuni-proxy-salt-broker.pid --cidfile %t/uyuni-proxy-salt-broker.ctr-id --cgroups=no-conmon --pod-id-file %t/uyuni-proxy-pod.pod-id -d --replace -dt -v ${CONFIG_DIR}:/etc/uyuni:ro --name uyuni-proxy-salt-broker ${NAMESPACE}/proxy-salt-broker
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/uyuni-proxy-salt-broker.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/uyuni-proxy-salt-broker.ctr-id
PIDFile=%t/uyuni-proxy-salt-broker.pid
TimeoutStopSec=60
Type=forking
[Install]
WantedBy=multi-user.target default.target
07070100000005000081B4000000000000000000000001627A1B8F00000243000000000000000000000000000000000000003900000000uyuni-proxy-systemd-services/uyuni-proxy-services.config# This file is expected to be found in `/etc/sysconfig/container-proxy-services.config`,
# the EnvironmentFile services property is pointing there
NAMESPACE=registry.opensuse.org/systemsmanagement/uyuni/stable/containers/uyuni
CONFIG_DIR=/etc/uyuni/proxy
SQUID_CACHE_DIR=/var/lib/uyuni/proxy-squid-cache
RHN_CACHE_DIR=/var/lib/uyuni/proxy-rhn-cache
TFTPBOOT_DIR=/var/lib/uyuni/proxy-tftpboot
# Pass additional parameters to the pod start command.
#
# Example:
# ADD_HOSTS='--add-host=server.tf.local:192.168.122.254 --add-host=client.tf.local:192.168.122.89'
EXTRA_POD_ARGS=''
07070100000006000081B4000000000000000000000001627A1B8F00000415000000000000000000000000000000000000003700000000uyuni-proxy-systemd-services/uyuni-proxy-squid.service# uyuni-proxy-squid.service
# autogenerated by Podman 2.1.1
# Tue Mar 1 09:09:51 CET 2022
[Unit]
Description=Uyuni proxy squid container service
Wants=network.target
After=network-online.target
BindsTo=uyuni-proxy-pod.service
After=uyuni-proxy-pod.service
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
EnvironmentFile=/etc/sysconfig/uyuni-proxy-systemd-services
Restart=on-failure
ExecStartPre=/bin/rm -f %t/uyuni-proxy-squid.pid %t/uyuni-proxy-squid.ctr-id
ExecStart=/usr/bin/podman run --conmon-pidfile %t/uyuni-proxy-squid.pid --cidfile %t/uyuni-proxy-squid.ctr-id --cgroups=no-conmon --pod-id-file %t/uyuni-proxy-pod.pod-id --replace -d -v ${CONFIG_DIR}:/etc/uyuni:ro -v ${SQUID_CACHE_DIR}:/var/cache/squid --name uyuni-proxy-squid ${NAMESPACE}/proxy-squid
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/uyuni-proxy-squid.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/uyuni-proxy-squid.ctr-id
PIDFile=%t/uyuni-proxy-squid.pid
TimeoutStopSec=60
Type=forking
[Install]
WantedBy=multi-user.target default.target
07070100000007000081B4000000000000000000000001627A1B8F000003DC000000000000000000000000000000000000003500000000uyuni-proxy-systemd-services/uyuni-proxy-ssh.service# uyuni-proxy-ssh.service
# autogenerated by Podman 2.1.1
# Tue Mar 1 09:09:51 CET 2022
[Unit]
Description=Uyuni proxy SSH container service
Wants=network.target
After=network-online.target
BindsTo=uyuni-proxy-pod.service
After=uyuni-proxy-pod.service
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
EnvironmentFile=/etc/sysconfig/uyuni-proxy-systemd-services
Restart=on-failure
ExecStartPre=/bin/rm -f %t/uyuni-proxy-ssh.pid %t/uyuni-proxy-ssh.ctr-id
ExecStart=/usr/bin/podman run --conmon-pidfile %t/uyuni-proxy-ssh.pid --cidfile %t/uyuni-proxy-ssh.ctr-id --cgroups=no-conmon --pod-id-file %t/uyuni-proxy-pod.pod-id -d --replace -dt -v ${CONFIG_DIR}:/etc/uyuni:ro --name uyuni-proxy-ssh ${NAMESPACE}/proxy-ssh
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/uyuni-proxy-ssh.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/uyuni-proxy-ssh.ctr-id
PIDFile=%t/uyuni-proxy-ssh.pid
TimeoutStopSec=60
Type=forking
[Install]
WantedBy=multi-user.target default.target
07070100000008000081B4000000000000000000000001627A1B8F0000002F000000000000000000000000000000000000004400000000uyuni-proxy-systemd-services/uyuni-proxy-systemd-services-rpmlintrcaddFilter('systemd-service-without-service_*')
07070100000009000081B4000000000000000000000001627A1B8F00000385000000000000000000000000000000000000004200000000uyuni-proxy-systemd-services/uyuni-proxy-systemd-services.changes-------------------------------------------------------------------
Tue May 10 10:00:13 CEST 2022 - jgonzalez@suse.com
- version 4.3.4-1
* Rename container_images_path specfile macro to less generic one
-------------------------------------------------------------------
Wed May 04 15:26:57 CEST 2022 - jgonzalez@suse.com
- version 4.3.3-1
* Default to SUSE Manager images only when installed from SUSE Manager
-------------------------------------------------------------------
Fri Apr 08 13:39:38 CEST 2022 - jgonzalez@suse.com
- version 4.3.2-1
* Harmonize systemd services names and container names
* Adapted to work on Enterprise Linux.
* Add package to SLE and Client tools (jsc#SLE-24145)
-------------------------------------------------------------------
Fri Mar 11 16:50:18 CET 2022 - jgonzalez@suse.com
- version 4.3.1-1
* Initial systemd services for proxy containers
0707010000000A000081B4000000000000000000000001627A1B8F00000E00000000000000000000000000000000000000003F00000000uyuni-proxy-systemd-services/uyuni-proxy-systemd-services.spec#
# spec file for package uyuni-proxy-systemd-services
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define SERVICES proxy-httpd proxy-salt-broker proxy-squid proxy-ssh proxy-tftpd proxy-pod
Name: uyuni-proxy-systemd-services
Summary: Uyuni proxy server systemd services containers
License: GPL-2.0-only
Group: Applications/Internet
Version: 4.3.4
Release: 1
URL: https://github.com/uyuni-project/uyuni
Source0: %{name}-%{version}-1.tar.gz
Source1: https://raw.githubusercontent.com/uyuni-project/uyuni/%{name}-%{version}-1/containers/proxy-systemd-services/%{name}-rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Requires: podman
%if 0%{?suse_version}
Requires(post): %fillup_prereq
%endif
BuildRequires: systemd-rpm-macros
%description
This package contains systemd services to run the Uyuni proxy containers using podman.
%prep
%setup -q
%build
%install
install -d -m 755 %{buildroot}/%{_sysconfdir}/uyuni/proxy
install -d -m 755 %{buildroot}/%{_localstatedir}/lib/uyuni/proxy-squid-cache
install -d -m 755 %{buildroot}/%{_localstatedir}/lib/uyuni/proxy-rhn-cache
install -d -m 755 %{buildroot}/%{_localstatedir}/lib/uyuni/proxy-tftpboot
install -d -m 755 %{buildroot}%{_sbindir}
%if "%{?susemanager_container_images_path}" != ""
sed 's|^NAMESPACE=.*$|NAMESPACE=%{susemanager_container_images_path}|' -i uyuni-proxy-services.config
%endif
%if !0%{?is_opensuse}
PRODUCT_VERSION=$(echo %{version} | sed 's/^\([0-9]\+\.[0-9]\+\).*$/\1/')
%endif
%if 0%{?rhel}
install -D -m 644 uyuni-proxy-services.config %{buildroot}%{_sysconfdir}/sysconfig/uyuni-proxy-systemd-services.config
%else
install -D -m 644 uyuni-proxy-services.config %{buildroot}%{_fillupdir}/sysconfig.%{name}
%endif
for service in %{SERVICES}; do
install -D -m 644 uyuni-${service}.service %{buildroot}%{_unitdir}/uyuni-${service}.service
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcuyuni-${service}
done
%check
%pre
%if !0%{?rhel}
for service in %{SERVICES}; do
%service_add_pre uyuni-${service}.service
done
%endif
%post
%if 0%{?suse_version}
%fillup_only
%endif
for service in %{SERVICES}; do
%if 0%{?rhel}
%systemd_post uyuni-${service}.service
%else
%service_add_post uyuni-${service}.service
%endif
done
%preun
for service in %{SERVICES}; do
%if 0%{?rhel}
%systemd_preun uyuni-${service}.service
%else
%service_del_preun uyuni-${service}.service
%endif
done
%postun
for service in %{SERVICES}; do
%if 0%{?rhel}
%systemd_postun uyuni-${service}.service
%else
%service_del_postun uyuni-${service}.service
%endif
done
%files
%defattr(-,root,root)
%{_unitdir}/*.service
%{_sbindir}/rcuyuni-*
%if 0%{?rhel}
%{_sysconfdir}/sysconfig/uyuni-proxy-systemd-services.config
%else
%{_fillupdir}/sysconfig.%{name}
%endif
%{_sysconfdir}/uyuni
%{_localstatedir}/lib/uyuni
%changelog
0707010000000B000081B4000000000000000000000001627A1B8F0000041B000000000000000000000000000000000000003700000000uyuni-proxy-systemd-services/uyuni-proxy-tftpd.service# uyuni-proxy-tftpd.service
# autogenerated by Podman 2.1.1
# Tue Mar 1 09:09:51 CET 2022
[Unit]
Description=Uyuni proxy TFTP uyuni-container service
Wants=network.target
After=network-online.target
BindsTo=uyuni-proxy-pod.service
After=uyuni-proxy-pod.service
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
EnvironmentFile=/etc/sysconfig/uyuni-proxy-systemd-services
Restart=on-failure
ExecStartPre=/bin/rm -f %t/uyuni-proxy-tftpd.pid %t/uyuni-proxy-tftpd.ctr-id
ExecStart=/usr/bin/podman run --conmon-pidfile %t/uyuni-proxy-tftpd.pid --cidfile %t/uyuni-proxy-tftpd.ctr-id --cgroups=no-conmon --pod-id-file %t/uyuni-proxy-pod.pod-id -d --replace -dt -v ${CONFIG_DIR}:/etc/uyuni:ro -v ${TFTPBOOT_DIR}:/srv/tftpboot:ro --name uyuni-proxy-tftpd ${NAMESPACE}/proxy-tftpd
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/uyuni-proxy-tftpd.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/uyuni-proxy-tftpd.ctr-id
PIDFile=%t/uyuni-proxy-tftpd.pid
TimeoutStopSec=60
Type=forking
[Install]
WantedBy=multi-user.target default.target
07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!