On 05/22/2015 05:31 AM, Flavio Leitner wrote: > On Mon, May 04, 2015 at 05:40:46PM -0400, Russell Bryant wrote: >> 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 ovncontroller >> >> If you want to run ovn-northd: >> >> # systemctl start ovnnorthd >> >> 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 <rbry...@redhat.com> >> --- >> rhel/automake.mk | 4 ++- >> rhel/openvswitch-fedora.spec.in | 43 >> +++++++++++++++++++---- >> rhel/usr_lib_systemd_system_ovncontroller.service | 14 ++++++++ >> rhel/usr_lib_systemd_system_ovnnorthd.service | 13 +++++++ >> 4 files changed, 67 insertions(+), 7 deletions(-) >> create mode 100644 rhel/usr_lib_systemd_system_ovncontroller.service >> create mode 100644 rhel/usr_lib_systemd_system_ovnnorthd.service >> >> diff --git a/rhel/automake.mk b/rhel/automake.mk >> index 9c3433b..fab3634 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_ovncontroller.service \ >> + rhel/usr_lib_systemd_system_ovnnorthd.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..5b4e9ef 100644 >> --- a/rhel/openvswitch-fedora.spec.in >> +++ b/rhel/openvswitch-fedora.spec.in >> @@ -81,6 +81,19 @@ 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. Services such as DHCP are also desirable >> +features. Just like OVS, OVN's design goal is to have a production-quality >> +implementation that can operate at significant scale. > > Perhaps remove the last sentence, but I will leave that up to you.
Sure, that's fine with me. I went ahead and removed the last 2 sentences. > >> + >> >> %prep >> %setup -q >> @@ -98,13 +111,14 @@ 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 >> +for service in openvswitch ovncontroller ovnnorthd; do >> + install -p -D -m 0644 \ >> + rhel/usr_lib_systemd_system_${service}.service \ >> + $RPM_BUILD_ROOT%{_unitdir}/${service}.service >> +done >> 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 >> - >> + rhel/usr_lib_systemd_system_openvswitch-nonetwork.service \ >> + $RPM_BUILD_ROOT%{_unitdir}/openvswitch-nonetwork.service >> install -m 0755 rhel/etc_init.d_openvswitch \ > > Why not include openvswitch-nonetwork in that loop above? I don't know. :-) I added it now. > > >> $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init >> >> @@ -269,6 +283,23 @@ 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}/ovncontroller.service >> +%{_unitdir}/ovnnorthd.service >> + >> %changelog >> * Wed Jan 12 2011 Ralf Spenneberg <r...@os-s.net> >> - First build on F14 >> diff --git a/rhel/usr_lib_systemd_system_ovncontroller.service >> b/rhel/usr_lib_systemd_system_ovncontroller.service >> new file mode 100644 >> index 0000000..b30bb9a >> --- /dev/null >> +++ b/rhel/usr_lib_systemd_system_ovncontroller.service >> @@ -0,0 +1,14 @@ >> +[Unit] >> +Description=OVN controller daemon >> +After=syslog.target >> +Requires=openvswitch.service >> +After=openvswitch.service >> + >> +[Service] >> +Type=forking >> +PIDFile=/var/run/openvswitch/ovn-controller.pid >> +ExecStart=/usr/bin/ovn-controller -vconsole:emer -vsyslog:err -vfile:info \ >> + --log-file=/var/log/openvswitch/ovn-controller.log \ >> + --detach --no-chdir \ > > Can't we take --detach out and leave Type=simple or even remove Type=? Yes, it seems so. Thanks for helping simplify this! > > >> + --pidfile=/var/run/openvswitch/ovn-controller.pid \ >> + unix:/var/run/openvswitch/db.sock >> diff --git a/rhel/usr_lib_systemd_system_ovnnorthd.service >> b/rhel/usr_lib_systemd_system_ovnnorthd.service >> new file mode 100644 >> index 0000000..7a20d59 >> --- /dev/null >> +++ b/rhel/usr_lib_systemd_system_ovnnorthd.service >> @@ -0,0 +1,13 @@ >> +[Unit] >> +Description=OVN northd management daemon >> +After=syslog.target >> +Requires=openvswitch.service >> +After=openvswitch.service >> + >> +[Service] >> +Type=forking >> +PIDFile=/var/run/openvswitch/ovn-northd.pid >> +ExecStart=/usr/bin/ovn-northd -vconsole:emer -vsyslog:err -vfile:info \ >> + --log-file=/var/log/openvswitch/ovn-northd.log \ >> + --detach --no-chdir \ >> + --pidfile=/var/run/openvswitch/ovn-northd.pid > > Same here. OK, done. > > Does ovn-controller or ovn-northd the need a rundir (/var/run/) like OVS? Yes. > If so, we can leave to systemd to manage the directory too. Just need to > include these lines in each service above: > RuntimeDirectory=<ovn-..> > RuntimeDirectoryMode=0755 > > and fix the ownership in the spec file too: > +%ghost %attr(755,root,root) %{_rundir}/<ovs-...> OK, thanks for the tip! I'll see if I can integrate this. > It's much better when comparing with the previous one. > Thanks a lot for your work! Thank you for the reviews! I'll work on the updates to this patch and send out a v3. -- Russell Bryant _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev