Re: [ovs-dev] [PATCH v1 ovn] Containerize components

2019-08-17 Thread aginwala
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

2019-08-16 Thread aginwala
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

2019-08-15 Thread Numan Siddique
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

2019-08-01 Thread 0-day Robot
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