Skip to content

Commit

Permalink
rhel: Add systemd-unit for ovn-ic and move IC to sub-rpm ovn-ic.
Browse files Browse the repository at this point in the history
This commit adds new systemd-unit `ovn-ic.service` to manage OVN Interconnection
daemons using systemd.

Submitted-at: ovn-org#65
Signed-off-by: Vladislav Odintsov <odivlad@gmail.com>
Signed-off-by: Numan Siddique <numans@ovn.org>
  • Loading branch information
odivlad authored and numansiddique committed Dec 22, 2020
1 parent 3733d52 commit 8abe98f
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 6 deletions.
1 change: 1 addition & 0 deletions rhel/automake.mk
Expand Up @@ -13,6 +13,7 @@ EXTRA_DIST += \
rhel/ovn-fedora.spec.in \
rhel/usr_lib_systemd_system_ovn-controller.service \
rhel/usr_lib_systemd_system_ovn-controller-vtep.service \
rhel/usr_lib_systemd_system_ovn-ic.service \
rhel/usr_lib_systemd_system_ovn-northd.service \
rhel/usr_lib_firewalld_services_ovn-central-firewall-service.xml \
rhel/usr_lib_firewalld_services_ovn-host-firewall-service.xml \
Expand Down
58 changes: 52 additions & 6 deletions rhel/ovn-fedora.spec.in
Expand Up @@ -84,6 +84,14 @@ Provides: openvswitch-ovn-central = %{?epoch:%{epoch}:}%{version}-%{release}
%description central
OVN DB servers and ovn-northd running on a central node.

%package ic
Summary: Open Virtual Network interconnection support
License: ASL 2.0
Requires: ovn

%description ic
OVN IC DB servers and ovn-ic.

%package host
Summary: Open Virtual Network support
License: ASL 2.0
Expand Down Expand Up @@ -161,7 +169,7 @@ install -p -D -m 0644 \
rhel/usr_share_ovn_scripts_systemd_sysconfig.template \
$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/ovn

for service in ovn-controller ovn-controller-vtep ovn-northd; do
for service in ovn-controller ovn-controller-vtep ovn-northd ovn-ic; do
install -p -D -m 0644 \
rhel/usr_lib_systemd_system_${service}.service \
$RPM_BUILD_ROOT%{_unitdir}/${service}.service
Expand Down Expand Up @@ -256,7 +264,7 @@ if [ $1 -eq 1 ] ; then
if [[ "$?" = "0" && "$ovn_status" = "0" ]]; then
# ovn-controller-vtep service is running which means old
# openvswitch-ovn-vtep is installed and it will be cleaned up. So
# start ovn-controller-vtep service when posttrans host is called.
# start ovn-controller-vtep service when posttrans vtep is called.
touch %{_localstatedir}/lib/rpm-state/ovn-controller-vtep
fi
fi
Expand All @@ -272,6 +280,17 @@ fi
fi
%endif

%preun ic
%if 0%{?systemd_preun:1}
%systemd_preun ovn-ic.service
%else
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
/bin/systemctl --no-reload disable ovn-ic.service >/dev/null 2>&1 || :
/bin/systemctl stop ovn-ic.service >/dev/null 2>&1 || :
fi
%endif

%preun host
%if 0%{?systemd_preun:1}
%systemd_preun ovn-controller.service
Expand Down Expand Up @@ -312,6 +331,16 @@ fi
fi
%endif

%post ic
%if 0%{?systemd_post:1}
%systemd_post ovn-ic.service
%else
# Package install, not upgrade
if [ $1 -eq 1 ]; then
/bin/systemctl daemon-reload >dev/null || :
fi
%endif

%post host
%if 0%{?systemd_post:1}
%systemd_post ovn-controller.service
Expand Down Expand Up @@ -345,6 +374,17 @@ fi
fi
%endif

%postun ic
%if 0%{?systemd_postun_with_restart:1}
%systemd_postun_with_restart ovn-ic.service
%else
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ "$1" -ge "1" ] ; then
# Package upgrade, not uninstall
/bin/systemctl try-restart ovn-ic.service >/dev/null 2>&1 || :
fi
%endif

%postun host
%if 0%{?systemd_postun_with_restart:1}
%systemd_postun_with_restart ovn-controller.service
Expand Down Expand Up @@ -421,7 +461,6 @@ fi
%{_mandir}/man5/ovn-sb.5*
%{_mandir}/man8/ovn-ic-nbctl.8*
%{_mandir}/man8/ovn-ic-sbctl.8*
%{_mandir}/man8/ovn-ic.8*
%{_mandir}/man5/ovn-ic-nb.5*
%{_mandir}/man5/ovn-ic-sb.5*
%{_prefix}/lib/ocf/resource.d/ovn/ovndb-servers
Expand All @@ -433,15 +472,19 @@ fi

%files central
%{_bindir}/ovn-northd
%{_bindir}/ovn-ic
%{_mandir}/man8/ovn-northd.8*
%config %{_datadir}/ovn/ovn-nb.ovsschema
%config %{_datadir}/ovn/ovn-sb.ovsschema
%config %{_datadir}/ovn/ovn-ic-nb.ovsschema
%config %{_datadir}/ovn/ovn-ic-sb.ovsschema
%{_unitdir}/ovn-northd.service
%{_prefix}/lib/firewalld/services/ovn-central-firewall-service.xml

%files ic
%{_bindir}/ovn-ic
%{_mandir}/man8/ovn-ic.8*
%config %{_datadir}/ovn/ovn-ic-nb.ovsschema
%config %{_datadir}/ovn/ovn-ic-sb.ovsschema
%{_unitdir}/ovn-ic.service

%files host
%{_bindir}/ovn-controller
%{_mandir}/man8/ovn-controller.8*
Expand All @@ -454,5 +497,8 @@ fi
%{_unitdir}/ovn-controller-vtep.service

%changelog
* Wed Dec 9 2020 Vladislav Odintsov <odivlad@gmail.com>
- Added ovn-ic systemd-unit and subpackage.

* Thu Dec 20 2018 Numan Siddique <nusiddiq@redhat.com>
- OVS/OVN split.
32 changes: 32 additions & 0 deletions rhel/usr_lib_systemd_system_ovn-ic.service
@@ -0,0 +1,32 @@
# See ovn-ic(8) for details about ovn-ic.
#
# To customize the ovn-ic service, you may create a configuration file
# in the /etc/systemd/system/ovn-ic.d/ directory. For example, to specify
# additional options to be passed to the "ovn-ctl start_ic" command, you
# could place the following contents in
# /etc/systemd/system/ovn-ic.d/local.conf:
#
# [System]
# Environment="OVN_IC_OPTS=--db-ic-nb-sock=/usr/local/var/run/ovn/ovn_ic_nb_db.sock --db-ic-sb-sock=/usr/local/var/run/ovn/ovn_ic_sb_db.sock"
#
# Alternatively, you may specify environment variables in the file /etc/sysconfig/ovn-ic:
#
# OVN_IC_OPTS="--db-ic-nb-sock=/usr/local/var/run/ovn/ovn_ic_nb_db.sock --db-ic-sb-sock=/usr/local/var/run/ovn/ovn_ic_sb_db.sock"

[Unit]
Description=OVN ic management daemon
After=syslog.target

[Service]
Type=oneshot
RemainAfterExit=yes
Environment=OVN_RUNDIR=%t/ovn OVN_DBDIR=/var/lib/ovn
EnvironmentFile=-/etc/sysconfig/ovn
EnvironmentFile=-/etc/sysconfig/ovn-ic
ExecStartPre=-/usr/bin/chown -R ${OVN_USER_ID} ${OVN_DBDIR}
ExecStart=/usr/share/ovn/scripts/ovn-ctl \
--ovn-user=${OVN_USER_ID} start_ic $OVN_IC_OPTS
ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_ic

[Install]
WantedBy=multi-user.target

0 comments on commit 8abe98f

Please sign in to comment.