Skip to content

Commit

Permalink
rhel: Add systemd-units for ovn-ic services
Browse files Browse the repository at this point in the history
New ovn-ic.service and ovn-ic-db.service systemd units were added
to manage ovn-ic and ovsdb-servers for OVN IC respectively.
ovn-ic-db.service manages both OVN_IC_Northbound and OVN_IC_Southbound
OVSDB server processes.

Signed-off-by: Vladislav Odintsov <odivlad@gmail.com>
  • Loading branch information
odivlad committed Feb 2, 2021
1 parent 291e547 commit 6dbef7e
Show file tree
Hide file tree
Showing 4 changed files with 128 additions and 4 deletions.
2 changes: 2 additions & 0 deletions rhel/automake.mk
Expand Up @@ -13,6 +13,8 @@ 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-ic-db.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
67 changes: 63 additions & 4 deletions rhel/ovn-fedora.spec.in
Expand Up @@ -161,7 +161,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 ovn-ic-db; 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 +256,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 +272,26 @@ fi
fi
%endif

%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

%if 0%{?systemd_preun:1}
%systemd_preun ovn-ic-db.service
%else
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
/bin/systemctl --no-reload disable ovn-ic-db.service >/dev/null 2>&1 || :
/bin/systemctl stop ovn-ic-db.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 +332,24 @@ fi
fi
%endif

%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

%if 0%{?systemd_post:1}
%systemd_post ovn-ic-db.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 +383,22 @@ fi
fi
%endif

%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

%if 0%{?systemd_postun:1}
%systemd_postun ovn-ic-db.service
%else
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
%endif

%postun host
%if 0%{?systemd_postun_with_restart:1}
%systemd_postun_with_restart ovn-controller.service
Expand Down Expand Up @@ -421,7 +475,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 @@ -432,13 +485,16 @@ fi
%{_bindir}/ovn-docker-underlay-driver

%files central
%{_bindir}/ovn-northd
%{_bindir}/ovn-ic
%{_bindir}/ovn-northd
%{_mandir}/man8/ovn-ic.8*
%{_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-ic.service
%{_unitdir}/ovn-ic-db.service
%{_unitdir}/ovn-northd.service
%{_prefix}/lib/firewalld/services/ovn-central-firewall-service.xml

Expand All @@ -454,5 +510,8 @@ fi
%{_unitdir}/ovn-controller-vtep.service

%changelog
* Mon Feb 1 2021 Vladislav Odintsov <odivlad@gmail.com>
- Added ovn-ic, ovn-ic-db systemd-units.

* 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-db.service
@@ -0,0 +1,32 @@
# See ovn-ic(8) for details about ovn-ic.
#
# To customize the ovn-ic-db service, you may create a configuration file
# in the /etc/systemd/system/ovn-ic-db.d/ directory. For example, to specify
# additional options to be passed to the "ovn-ctl start_ic_ovsdb" command, you
# could place the following contents in
# /etc/systemd/system/ovn-ic-db.d/local.conf:
#
# [System]
# Environment="OVN_IC_DB_OPTS=--db-ic-nb-create-insecure-remote=yes --db-ic-sb-create-insecure-remote=yes"
#
# Alternatively, you may specify environment variables in the file /etc/sysconfig/ovn-ic-db:
#
# OVN_IC_DB_OPTS="--db-ic-nb-create-insecure-remote=yes --db-ic-sb-create-insecure-remote=yes"

[Unit]
Description=OVN global (IC) northbound and southbound OVSDB servers
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-db
ExecStartPre=-/usr/bin/chown -R ${OVN_USER_ID} ${OVN_DBDIR}
ExecStart=/usr/share/ovn/scripts/ovn-ctl \
--ovn-user=${OVN_USER_ID} start_ic_ovsdb $OVN_IC_DB_OPTS
ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_ic_ovsdb

[Install]
WantedBy=multi-user.target
31 changes: 31 additions & 0 deletions rhel/usr_lib_systemd_system_ovn-ic.service
@@ -0,0 +1,31 @@
# 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
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 6dbef7e

Please sign in to comment.