Skip to content

Commit

Permalink
fedora.spec: Create openvswitch-ovn package.
Browse files Browse the repository at this point in the history
This patch creates a new subpackage for OVN, openvswitch-ovn.  It also
installs systemd unit files for ovn-controller and ovn-northd.

If you want to run ovn-controller:

    # systemctl start ovn-controller

If you want to run ovn-northd:

    # systemctl start ovn-northd

Both systemd units are currently set to depend on openvswitch.  If
further ovsdb initialization is required for the OVN databases before
ovn-northd can start, that will be handled automatically by ovn-ctl
when you start the ovn-northd service.

This currently assumes that ovn-northd runs on the same host as
ovsdb-server that is hosting the OVN databases.  That seems like a
reasonable assumption in the current architecture and can be evolved
later when needed.

Signed-off-by: Russell Bryant <rbryant@redhat.com>
CC: Flavio Leitner <fbl@redhat.com>
CC: Ben Pfaff <blp@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
  • Loading branch information
russellb authored and blp committed Jun 15, 2015
1 parent 43d3e69 commit c05ea87
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 8 deletions.
4 changes: 3 additions & 1 deletion rhel/automake.mk
Expand Up @@ -24,7 +24,9 @@ EXTRA_DIST += \
rhel/usr_share_openvswitch_scripts_sysconfig.template \
rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
rhel/usr_lib_systemd_system_openvswitch.service \
rhel/usr_lib_systemd_system_openvswitch-nonetwork.service
rhel/usr_lib_systemd_system_openvswitch-nonetwork.service \
rhel/usr_lib_systemd_system_ovn-controller.service \
rhel/usr_lib_systemd_system_ovn-northd.service

update_rhel_spec = \
$(AM_V_GEN)($(ro_shell) && sed -e 's,[@]VERSION[@],$(VERSION),g') \
Expand Down
77 changes: 70 additions & 7 deletions rhel/openvswitch-fedora.spec.in
Expand Up @@ -83,6 +83,17 @@ Provides: openvswitch-static = %{version}-%{release}
This provides static library, libopenswitch.a and the openvswitch header
files needed to build an external application.

%package ovn
Summary: Open vSwitch - Open Virtual Network support
License: ASL 2.0
Requires: openvswitch

%description ovn
OVN, the Open Virtual Network, is a system to support virtual network
abstraction. OVN complements the existing capabilities of OVS to add
native support for virtual network abstractions, such as virtual L2 and L3
overlays and security groups.


%prep
%setup -q
Expand All @@ -100,13 +111,11 @@ install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch
install -p -D -m 0644 \
rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch
install -p -D -m 0644 \
rhel/usr_lib_systemd_system_openvswitch.service \
$RPM_BUILD_ROOT%{_unitdir}/openvswitch.service
install -p -D -m 0644 \
rhel/usr_lib_systemd_system_openvswitch-nonetwork.service \
$RPM_BUILD_ROOT%{_unitdir}/openvswitch-nonetwork.service

for service in openvswitch openvswitch-nonetwork ovn-controller ovn-northd; do
install -p -D -m 0644 \
rhel/usr_lib_systemd_system_${service}.service \
$RPM_BUILD_ROOT%{_unitdir}/${service}.service
done
install -m 0755 rhel/etc_init.d_openvswitch \
$RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init

Expand Down Expand Up @@ -156,6 +165,19 @@ rm -rf $RPM_BUILD_ROOT
fi
%endif

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

%post
%if 0%{?systemd_post:1}
Expand All @@ -167,6 +189,16 @@ rm -rf $RPM_BUILD_ROOT
fi
%endif

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

%postun
%if 0%{?systemd_postun_with_restart:1}
Expand All @@ -179,6 +211,18 @@ rm -rf $RPM_BUILD_ROOT
fi
%endif

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

%files -n python-openvswitch
%{python_sitelib}/ovs
Expand Down Expand Up @@ -272,6 +316,25 @@ rm -rf $RPM_BUILD_ROOT
%exclude %{_mandir}/man8/ovs-vlan-bug-workaround.8.gz
%exclude %{_datadir}/openvswitch/scripts/ovs-save

%files ovn
%{_bindir}/ovn-controller
%{_bindir}/ovn-nbctl
%{_bindir}/ovn-northd
%{_datadir}/openvswitch/scripts/ovn-ctl
%{_mandir}/man8/ovs-testcontroller.8*
%{_mandir}/man5/ovn-nb.5*
%{_mandir}/man5/ovn-sb.5*
%{_mandir}/man7/ovn-architecture.7*
%{_mandir}/man8/ovn-controller.8*
%{_mandir}/man8/ovn-ctl.8*
%{_mandir}/man8/ovn-nbctl.8*
%config %{_datadir}/openvswitch/ovn-nb.ovsschema
%config %{_datadir}/openvswitch/ovn-sb.ovsschema
%{_unitdir}/ovn-controller.service
%{_unitdir}/ovn-northd.service
%ghost %attr(755,root,root) %{_rundir}/ovn-controller
%ghost %attr(755,root,root) %{_rundir}/ovn-northd

%changelog
* Wed Jan 12 2011 Ralf Spenneberg <ralf@os-s.net>
- First build on F14
16 changes: 16 additions & 0 deletions rhel/usr_lib_systemd_system_ovn-controller.service
@@ -0,0 +1,16 @@
[Unit]
Description=OVN controller daemon
After=syslog.target
Requires=openvswitch.service
After=openvswitch.service

[Service]
Type=simple
RuntimeDirectory=ovn-controller
RuntimeDirectoryMode=0755
PIDFile=%t/ovn-controller/ovn-controller.pid
Environment=OVS_RUNDIR=%t/ovn-controller
ExecStart=/usr/bin/ovn-controller -vconsole:emer -vsyslog:err -vfile:info \
--log-file=/var/log/openvswitch/ovn-controller.log \
--no-chdir --pidfile=%t/ovn-controller/ovn-controller.pid \
unix:/var/run/openvswitch/db.sock
15 changes: 15 additions & 0 deletions rhel/usr_lib_systemd_system_ovn-northd.service
@@ -0,0 +1,15 @@
[Unit]
Description=OVN northd management daemon
After=syslog.target
Requires=openvswitch.service
After=openvswitch.service

[Service]
Type=oneshot
RemainAfterExit=yes
RuntimeDirectory=ovn-northd
RuntimeDirectoryMode=0755
PIDFile=%t/ovn-northd/ovn-northd.pid
Environment=OVN_RUNDIR=%t/ovn-northd OVS_RUNDIR=%t/openvswitch OVS_DBDIR=/var/lib/openvswitch
ExecStart=/usr/share/openvswitch/scripts/ovn-ctl start_northd
ExecStop=/usr/share/openvswitch/scripts/ovn-ctl stop_northd

0 comments on commit c05ea87

Please sign in to comment.