Re: [ovs-dev] [PATCH v1 ovn] Containerize components
On Fri, Aug 16, 2019 at 10:33 AM aginwala wrote: > > > On Thu, Aug 15, 2019 at 11:32 PM Numan Siddique > wrote: > >> On Thu, Aug 1, 2019 at 3:01 AM Aliasgar Ginwala >> wrote: >> >> > 1. Containerize ovn central components >> > 2. Containerize ovn host >> > 3. Update documentation about building/running ovn in containers. >> > >> > >> >> Hi Aliasgar, >> >> Thanks for the patch. This is interesting. I tried out both the OVS patch >> and this one. >> >> When applying this patch (and the OVS one too), I found some white space >> warnings. >> Please run ovs/utilities/checkpatch.py -1 >> >> Thanks for the review and testing.Appreciate that. Ack, will do! > Done. Sent v2 https://patchwork.ozlabs.org/patch/1148576/ and https://patchwork.ozlabs.org/patch/1148575/ for both OVS and OVN. > I was able to successfully build the docker images on my Fedora 30. >> ovn-nb, ovn-sb and northd containers >> work fine without any issues. >> >> I have trouble running ovn-controller container as it requires that OVS >> containers are run first. >> >> With the OVS container patch, I had issues starting ovs-vswitchd >> container. >> Looks like it tries >> to load ovs kernel module. I think it fails since I am running fedora and >> the image is ubuntu. >> >> Correct. You need to use host OS kernel version and distro in the > container as vswitchd > is started as privileged container to load ovs modules on host. > >> I am not sure if you want to build ovs kernel module from sources. Why >> can't we rely on the host kernel module >> from the distro ? >> >> Ohk trying to understand the cons of not using ovs source. May be do you > have suggestions how to do it from container perspective for levering host > module? We can add support for both options for sure. At-least to support > dynamic kernel upgrades on computes, it helps to certify if old ovs will > work new kernel and old kernel by releasing a single container image from > source for each kernel upgrade. This makes it easy to load on host and skip > any extra installation on host accordingly. > For this comment, if we can address that in upcoming patches as enhancement, it can be ok too. Thoughts? > >> Is it possible to delink OVN from OVS. I mean we should be able to start >> ovn-conroller container even if ovs is running >> as a service. Mounting proper host directories like /var/run/openvswitch >> when starting the container should be good enough >> for ovn-controller to talk to ovsdb-server and ovs-vswitchd. >> > Sure. I actually didn't try ovn controller container running with > different OS than that of OVS containers. I will give it a try and update > usage details in doc in v2. > I tried running ovn-controller container when ovs is running either as service or in container and it works fine. I have updated both cases in doc accordingly. Feel free to try that too. > >> For ovn db services, it using tcp. Can't we add support to use unix >> sockets >> as well ? I am fine adding this support as a follow up >> patch. >> >> We can for sure as a follow up patch. > > >> Thanks >> Numan >> >> >> >> >> > Signed-off-by: aginwala >> > --- >> > Documentation/intro/install/general.rst | 68 >> > utilities/automake.mk| 10 +++- >> > utilities/docker/Makefile| 22 >> > utilities/docker/create_ovn_dbs.sh | 16 ++ >> > utilities/docker/debian/Dockerfile | 21 >> > utilities/docker/debian/build.sh | 43 +++ >> > utilities/docker/ovn_default_nb_port | 1 + >> > utilities/docker/ovn_default_northd_host | 1 + >> > utilities/docker/ovn_default_sb_port | 1 + >> > utilities/docker/start-ovn | 40 ++ >> > 10 files changed, 222 insertions(+), 1 deletion(-) >> > create mode 100644 utilities/docker/Makefile >> > create mode 100755 utilities/docker/create_ovn_dbs.sh >> > create mode 100644 utilities/docker/debian/Dockerfile >> > create mode 100755 utilities/docker/debian/build.sh >> > create mode 100644 utilities/docker/ovn_default_nb_port >> > create mode 100644 utilities/docker/ovn_default_northd_host >> > create mode 100644 utilities/docker/ovn_default_sb_port >> > create mode 100755 utilities/docker/start-ovn >> > >> > diff --git a/Documentation/intro/install/general.rst >> > b/Documentation/intro/install/general.rst >> > index 99d8fec04..4dc7e8d72 100644 >> > --- a/Documentation/intro/install/general.rst >> > +++ b/Documentation/intro/install/general.rst >> > @@ -380,6 +380,60 @@ domain socket:: >> > >> > $ ovn-northd --pidfile --detach --log-file >> > >> > + >> > +Starting OVN Central services in containers >> > +~~~ >> > + >> > +For OVN central node, we dont need to load ovs kernel modules on host. >> > +Hence, OVN central containers OS need not depend on host OS. >> > + >> > +Also we can leverage deploying entire OVN control plane in a pod spec >> for >> > use >> > +cases like
Re: [ovs-dev] [PATCH v1 ovn] Containerize components
On Thu, Aug 15, 2019 at 11:32 PM Numan Siddique wrote: > On Thu, Aug 1, 2019 at 3:01 AM Aliasgar Ginwala > wrote: > > > 1. Containerize ovn central components > > 2. Containerize ovn host > > 3. Update documentation about building/running ovn in containers. > > > > > > Hi Aliasgar, > > Thanks for the patch. This is interesting. I tried out both the OVS patch > and this one. > > When applying this patch (and the OVS one too), I found some white space > warnings. > Please run ovs/utilities/checkpatch.py -1 > > Thanks for the review and testing.Appreciate that. Ack, will do! > I was able to successfully build the docker images on my Fedora 30. > ovn-nb, ovn-sb and northd containers > work fine without any issues. > > I have trouble running ovn-controller container as it requires that OVS > containers are run first. > > With the OVS container patch, I had issues starting ovs-vswitchd container. > Looks like it tries > to load ovs kernel module. I think it fails since I am running fedora and > the image is ubuntu. > > Correct. You need to use host OS kernel version and distro in the container as vswitchd is started as privileged container to load ovs modules on host. > I am not sure if you want to build ovs kernel module from sources. Why > can't we rely on the host kernel module > from the distro ? > > Ohk trying to understand the cons of not using ovs source. May be do you have suggestions how to do it from container perspective for levering host module? We can add support for both options for sure. At-least to support dynamic kernel upgrades on computes, it helps to certify if old ovs will work new kernel and old kernel by releasing a single container image from source for each kernel upgrade. This makes it easy to load on host and skip any extra installation on host accordingly. > > Is it possible to delink OVN from OVS. I mean we should be able to start > ovn-conroller container even if ovs is running > as a service. Mounting proper host directories like /var/run/openvswitch > when starting the container should be good enough > for ovn-controller to talk to ovsdb-server and ovs-vswitchd. > Sure. I actually didn't try ovn controller container running with different OS than that of OVS containers. I will give it a try and update usage details in doc in v2. > > For ovn db services, it using tcp. Can't we add support to use unix sockets > as well ? I am fine adding this support as a follow up > patch. > > We can for sure as a follow up patch. > Thanks > Numan > > > > > > Signed-off-by: aginwala > > --- > > Documentation/intro/install/general.rst | 68 > > utilities/automake.mk| 10 +++- > > utilities/docker/Makefile| 22 > > utilities/docker/create_ovn_dbs.sh | 16 ++ > > utilities/docker/debian/Dockerfile | 21 > > utilities/docker/debian/build.sh | 43 +++ > > utilities/docker/ovn_default_nb_port | 1 + > > utilities/docker/ovn_default_northd_host | 1 + > > utilities/docker/ovn_default_sb_port | 1 + > > utilities/docker/start-ovn | 40 ++ > > 10 files changed, 222 insertions(+), 1 deletion(-) > > create mode 100644 utilities/docker/Makefile > > create mode 100755 utilities/docker/create_ovn_dbs.sh > > create mode 100644 utilities/docker/debian/Dockerfile > > create mode 100755 utilities/docker/debian/build.sh > > create mode 100644 utilities/docker/ovn_default_nb_port > > create mode 100644 utilities/docker/ovn_default_northd_host > > create mode 100644 utilities/docker/ovn_default_sb_port > > create mode 100755 utilities/docker/start-ovn > > > > diff --git a/Documentation/intro/install/general.rst > > b/Documentation/intro/install/general.rst > > index 99d8fec04..4dc7e8d72 100644 > > --- a/Documentation/intro/install/general.rst > > +++ b/Documentation/intro/install/general.rst > > @@ -380,6 +380,60 @@ domain socket:: > > > > $ ovn-northd --pidfile --detach --log-file > > > > + > > +Starting OVN Central services in containers > > +~~~ > > + > > +For OVN central node, we dont need to load ovs kernel modules on host. > > +Hence, OVN central containers OS need not depend on host OS. > > + > > +Also we can leverage deploying entire OVN control plane in a pod spec > for > > use > > +cases like OVN-kubernetes > > + > > +Export following variables in .env and place it under > > +project root:: > > + > > +$ OVN_BRANCH= > > +$ OVN_VERSION= > > +$ DISTRO= > > +$ KERNEL_VERSION= > > +$ GITHUB_SRC= > > +$ DOCKER_REPO= > > + > > +To build ovn modules:: > > + > > +$ cd utilities/docker > > +$ make build > > + > > +Compiled Modules will be tagged with docker image > > + > > +To Push ovn modules:: > > + > > +$ make push > > + > > +OVN docker image will be pushed to specified docker repo. > > + > > +Start OVN containers using below command:: > > + > > +$ docker run -
Re: [ovs-dev] [PATCH v1 ovn] Containerize components
On Thu, Aug 1, 2019 at 3:01 AM Aliasgar Ginwala wrote: > 1. Containerize ovn central components > 2. Containerize ovn host > 3. Update documentation about building/running ovn in containers. > > Hi Aliasgar, Thanks for the patch. This is interesting. I tried out both the OVS patch and this one. When applying this patch (and the OVS one too), I found some white space warnings. Please run ovs/utilities/checkpatch.py -1 I was able to successfully build the docker images on my Fedora 30. ovn-nb, ovn-sb and northd containers work fine without any issues. I have trouble running ovn-controller container as it requires that OVS containers are run first. With the OVS container patch, I had issues starting ovs-vswitchd container. Looks like it tries to load ovs kernel module. I think it fails since I am running fedora and the image is ubuntu. I am not sure if you want to build ovs kernel module from sources. Why can't we rely on the host kernel module from the distro ? Is it possible to delink OVN from OVS. I mean we should be able to start ovn-conroller container even if ovs is running as a service. Mounting proper host directories like /var/run/openvswitch when starting the container should be good enough for ovn-controller to talk to ovsdb-server and ovs-vswitchd. For ovn db services, it using tcp. Can't we add support to use unix sockets as well ? I am fine adding this support as a follow up patch. Thanks Numan > Signed-off-by: aginwala > --- > Documentation/intro/install/general.rst | 68 > utilities/automake.mk| 10 +++- > utilities/docker/Makefile| 22 > utilities/docker/create_ovn_dbs.sh | 16 ++ > utilities/docker/debian/Dockerfile | 21 > utilities/docker/debian/build.sh | 43 +++ > utilities/docker/ovn_default_nb_port | 1 + > utilities/docker/ovn_default_northd_host | 1 + > utilities/docker/ovn_default_sb_port | 1 + > utilities/docker/start-ovn | 40 ++ > 10 files changed, 222 insertions(+), 1 deletion(-) > create mode 100644 utilities/docker/Makefile > create mode 100755 utilities/docker/create_ovn_dbs.sh > create mode 100644 utilities/docker/debian/Dockerfile > create mode 100755 utilities/docker/debian/build.sh > create mode 100644 utilities/docker/ovn_default_nb_port > create mode 100644 utilities/docker/ovn_default_northd_host > create mode 100644 utilities/docker/ovn_default_sb_port > create mode 100755 utilities/docker/start-ovn > > diff --git a/Documentation/intro/install/general.rst > b/Documentation/intro/install/general.rst > index 99d8fec04..4dc7e8d72 100644 > --- a/Documentation/intro/install/general.rst > +++ b/Documentation/intro/install/general.rst > @@ -380,6 +380,60 @@ domain socket:: > > $ ovn-northd --pidfile --detach --log-file > > + > +Starting OVN Central services in containers > +~~~ > + > +For OVN central node, we dont need to load ovs kernel modules on host. > +Hence, OVN central containers OS need not depend on host OS. > + > +Also we can leverage deploying entire OVN control plane in a pod spec for > use > +cases like OVN-kubernetes > + > +Export following variables in .env and place it under > +project root:: > + > +$ OVN_BRANCH= > +$ OVN_VERSION= > +$ DISTRO= > +$ KERNEL_VERSION= > +$ GITHUB_SRC= > +$ DOCKER_REPO= > + > +To build ovn modules:: > + > +$ cd utilities/docker > +$ make build > + > +Compiled Modules will be tagged with docker image > + > +To Push ovn modules:: > + > +$ make push > + > +OVN docker image will be pushed to specified docker repo. > + > +Start OVN containers using below command:: > + > +$ docker run -itd --net=host --name=ovn-nb \ > + : ovn-nb-tcp > + > +$ docker run -itd --net=host --name=ovn-sb \ > + : ovn-sb-tcp > + > +$ docker run -itd --net=host --name=ovn-northd \ > + : ovn-northd-tcp > + > +.. note:: > +Current ovn central components comes up in docker image in a > standalone > +mode with protocol tcp. > + > +The debian docker file use ubuntu 16.04 as a base image for reference. > + > +User can use any other base image for debian, e.g. u14.04, etc. > + > +RHEL based docker build support needs to be added. > + > Starting OVN host service > > > @@ -406,6 +460,17 @@ domain socket:: > > $ ovn-controller --pidfile --detach --log-file > > +Starting OVN host service in containers > +~~~ > +Start ovsdb-server and ovs-vswitchd components as per > +http://docs.openvswitch.org/en/latest/intro/install/general/ > + > +start local ovn-controller:: > + > +$ docker run -itd --net=host --name=ovn-controller \ > + --volumes-from=ovsdb-server \ > + : ovn-controller > + > Validating > -- > > @@ -419,6 +484,9 @@ logical switch ``sw0`` and add logical port ``sw0-p1``
Re: [ovs-dev] [PATCH v1 ovn] Containerize components
Bleep bloop. Greetings Aliasgar Ginwala, I am a robot and I have tried out your patch. Thanks for your contribution. I encountered some error that I wasn't expecting. See the details below. checkpatch: ERROR: Author Aliasgar Ginwala needs to sign off. WARNING: Unexpected sign-offs from developers who are not authors or co-authors or committers: aginwala WARNING: Line has trailing whitespace #44 FILE: Documentation/intro/install/general.rst:387: For OVN central node, we dont need to load ovs kernel modules on host. WARNING: Line has trailing whitespace #85 FILE: Documentation/intro/install/general.rst:428: Current ovn central components comes up in docker image in a standalone WARNING: Line has trailing whitespace #86 FILE: Documentation/intro/install/general.rst:429: mode with protocol tcp. WARNING: Line has trailing whitespace #90 FILE: Documentation/intro/install/general.rst:433: User can use any other base image for debian, e.g. u14.04, etc. WARNING: Line has non-spaces leading whitespace WARNING: Line has trailing whitespace #93 FILE: Documentation/intro/install/general.rst:436: WARNING: Line has trailing whitespace #103 FILE: Documentation/intro/install/general.rst:465: Start ovsdb-server and ovs-vswitchd components as per WARNING: Line has trailing whitespace #119 FILE: Documentation/intro/install/general.rst:487: When using ovn in container, exec to container to run above commands:: WARNING: Line is 86 characters long (recommended limit is 79) #194 FILE: utilities/docker/create_ovn_dbs.sh:15: ovsdb-tool create /etc/openvswitch/ovnnb_db.db /usr/share/openvswitch/ovn-nb.ovsschema WARNING: Line is 86 characters long (recommended limit is 79) #195 FILE: utilities/docker/create_ovn_dbs.sh:16: ovsdb-tool create /etc/openvswitch/ovnsb_db.db /usr/share/openvswitch/ovn-sb.ovsschema WARNING: Line is 99 characters long (recommended limit is 79) #221 FILE: utilities/docker/debian/Dockerfile:20: VOLUME ["/var/log/openvswitch", "/var/lib/openvswitch", "/var/run/openvswitch", "/etc/openvswitch"] WARNING: Line is 88 characters long (recommended limit is 79) #249 FILE: utilities/docker/debian/build.sh:21: build_deps="apt-utils libelf-dev build-essential libssl-dev python python-six wget vim \ WARNING: Line has trailing whitespace #250 FILE: utilities/docker/debian/build.sh:22: gdb autoconf libtool git automake bzip2 debhelper dh-autoreconf openssl" Lines checked: 341, Warnings: 14, Errors: 1 Please check this out. If you feel there has been an error, please email acon...@bytheb.org Thanks, 0-day Robot ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev