[ovs-dev] [PATCH ovn 2/2 v4] fedora.spec: Create openvswitch-ovn package.

Russell Bryant rbryant at redhat.com
Wed May 27 04:17:58 UTC 2015


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.
Technically you could ovn-northd and ovsdb-server without ovs running
locally as well, but that will require some additional work.

This also means that you need to configure the openvswitch service to
serve the two OVN databases, as well:  That is done by running the
following commands before starting or restarting openvswitch:

    # ovn-ctl create_ovn_dbs
    # cat << EOF > /etc/sysconfig/openvswitch
    OPTIONS="'--extra-dbs=ovnnb.db ovnsb.db'"
    EOF

Signed-off-by: Russell Bryant <rbryant at redhat.com>
Acked-by: Flavio Leitner <fbl at redhat.com>
---
 rhel/automake.mk                                   |  4 ++-
 rhel/openvswitch-fedora.spec.in                    | 42 ++++++++++++++++++----
 rhel/usr_lib_systemd_system_ovn-controller.service | 16 +++++++++
 rhel/usr_lib_systemd_system_ovn-northd.service     | 17 +++++++++
 4 files changed, 71 insertions(+), 8 deletions(-)
 create mode 100644 rhel/usr_lib_systemd_system_ovn-controller.service
 create mode 100644 rhel/usr_lib_systemd_system_ovn-northd.service

diff --git a/rhel/automake.mk b/rhel/automake.mk
index 9c3433b..f6272a3 100644
--- a/rhel/automake.mk
+++ b/rhel/automake.mk
@@ -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') \
diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in
index f3dbebf..10836c0 100644
--- a/rhel/openvswitch-fedora.spec.in
+++ b/rhel/openvswitch-fedora.spec.in
@@ -81,6 +81,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
@@ -98,13 +109,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
 
@@ -269,6 +278,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 at os-s.net>
 - First build on F14
diff --git a/rhel/usr_lib_systemd_system_ovn-controller.service b/rhel/usr_lib_systemd_system_ovn-controller.service
new file mode 100644
index 0000000..4fdcfd2
--- /dev/null
+++ b/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
diff --git a/rhel/usr_lib_systemd_system_ovn-northd.service b/rhel/usr_lib_systemd_system_ovn-northd.service
new file mode 100644
index 0000000..b7c9c19
--- /dev/null
+++ b/rhel/usr_lib_systemd_system_ovn-northd.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=OVN northd management daemon
+After=syslog.target
+Requires=openvswitch.service
+After=openvswitch.service
+
+[Service]
+Type=simple
+RuntimeDirectory=ovn-northd
+RuntimeDirectoryMode=0755
+PIDFile=%t/ovn-northd/ovn-northd.pid
+Environment=OVS_RUNDIR=%t/ovn-northd
+ExecStart=/usr/bin/ovn-northd -vconsole:emer -vsyslog:err -vfile:info \
+          --log-file=/var/log/openvswitch/ovn-northd.log \
+          --ovnsb-db unix:/var/run/openvswitch/db.sock \
+          --ovnnb-db unix:/var/run/openvswitch/db.sock \
+          --no-chdir --pidfile=%t/ovn-northd/ovn-northd.pid
-- 
2.1.0




More information about the dev mailing list