On 3/25/24 05:09, Ales Musil wrote:


On Mon, Mar 25, 2024 at 9:47 AM Dumitru Ceara <[email protected] <mailto:[email protected]>> wrote:

    On 3/22/24 19:34, Mark Michelson wrote:
     > On 3/21/24 19:15, Dumitru Ceara wrote:
     >> Most of the steps were inaccurate.  Instead, use latest Ubuntu, use
     >> OVS from the submodule inside the OVN repo.
     >>
     >> Signed-off-by: Dumitru Ceara <[email protected]
    <mailto:[email protected]>>
     >> ---
     >>   utilities/docker/Makefile          |  4 ++--
     >>   utilities/docker/debian/Dockerfile |  2 +-
     >>   utilities/docker/debian/build.sh   |  2 ++
     >>   utilities/docker/install_ovn.sh    | 31
    ++++++++++++++----------------
     >>   4 files changed, 19 insertions(+), 20 deletions(-)
     >>
     >> diff --git a/utilities/docker/Makefile b/utilities/docker/Makefile
     >> index 57e95651cb..aad9c3482c 100644
     >> --- a/utilities/docker/Makefile
     >> +++ b/utilities/docker/Makefile
     >> @@ -1,5 +1,5 @@
     >> -#export OVN_BRANCH=master
     >> -#export OVN_VERSION=2.12
     >> +#export OVN_BRANCH=main
     >> +#export OVN_VERSION=24.03.90
     >
     > Is this something that we should update with each major release
    of OVN?
     > If so, I could probably alter my release script to include updating
     > utilities/docker/Makefile as part of the release patches.
     >

    It's just a comment and I guess the original intention was to show users
    how to set this up.  But, back to your question, if it's not a lot of
    work, automatically changing this on release would be nice.

    Also, it might make sense to set up a CI job that actually runs this in
    CI, maybe periodically.  I can try to find some time to do that at some
    point in the future.  Wdyt?



Hi Mark, Dumitru,

from a different perspective, I would be interested to see if this is still used by anyone. We have other methods of running OVN in containers that are up to date and maintained. It might be the case of working perfectly, still used and doesn't need any attention. But it would probably still be useful to hear from the community if that's the case. IMO we shouldn't run CI on something just for the sake of running CI.

Does that make sense?

First off, with regards to this patch, I think it can be merged as-is, with no further action. If we want to continue this discussion, we shouldn't let it hold up the patch.

When it comes to your questions, Ales, they're really hard to answer :)

Is anyone using utilities/docker? I have no idea. I'd be willing to bet most CMSes are using their own containerization methods instead of the in-tree method. However, I don't know if there are people that use it for development purposes. I know I tend to use ovn-fake-multinode during development/testing, but that's just me.

When you mention having other methods of running OVN in containers, are you referring to the content in utilities/containers ? I agree that when it comes to CI, we probably don't need the content in utilities/docker . But it appears to have been written to be a general-purpose method of creating versioned container builds of OVN, rather than specifically for CI. The content in utilities/docker is also quite out of date, I would imagine, since it hasn't been updated since adding cluster support in January 2020. There is also documentation throughout the tree that refers to the content in utilities/docker. If a new user were to download the OVN source and browse the documentation, they would try to use the Makefile in utilities/docker.

In my opinion, the best thing to do is to merge the two containerization methods together into a single unified method. We can then use this for our CI, meaning we will keep it up to date and add necessary features as we see fit. This way we aren't keeping a "dead" method alive in the tree for no reason, and we won't be adding unnecessary CI either.

What do you think?



     >>   #export DISTRO=debian
     >>   #export GITHUB_SRC=https://github.com/ovn-org/ovn.git
    <https://github.com/ovn-org/ovn.git>
     >>   #export DOCKER_REPO=ovn-org/ovn
     >> diff --git a/utilities/docker/debian/Dockerfile
     >> b/utilities/docker/debian/Dockerfile
     >> index 366ad6d4f3..a89ef46c9f 100644
     >> --- a/utilities/docker/debian/Dockerfile
     >> +++ b/utilities/docker/debian/Dockerfile
     >> @@ -1,4 +1,4 @@
     >> -FROM ubuntu:16.04
     >> +FROM ubuntu:22.04
     >>   MAINTAINER "Aliasgar Ginwala" <[email protected]
    <mailto:[email protected]>>
     >>     ARG OVN_BRANCH
     >> diff --git a/utilities/docker/debian/build.sh
     >> b/utilities/docker/debian/build.sh
     >> index 57ace5f505..6edb5b85e4 100755
     >> --- a/utilities/docker/debian/build.sh
     >> +++ b/utilities/docker/debian/build.sh
     >> @@ -12,6 +12,8 @@
     >>   # See the License for the specific language governing
    permissions and
     >>   # limitations under the License.
     >>   +set -e
     >> +
     >>   OVN_BRANCH=$1
     >>   GITHUB_SRC=$2
     >>   diff --git a/utilities/docker/install_ovn.sh
     >> b/utilities/docker/install_ovn.sh
     >> index 55c189aaee..5157da1497 100755
     >> --- a/utilities/docker/install_ovn.sh
     >> +++ b/utilities/docker/install_ovn.sh
     >> @@ -12,29 +12,26 @@
     >>   # See the License for the specific language governing
    permissions and
     >>   # limitations under the License.
     >>   +set -e
     >> +
     >>   OVN_BRANCH=$1
     >>   GITHUB_SRC=$2
     >>   -# get ovs source always from master as its needed as dependency
     >> -mkdir /build; cd /build
     >> -git clone --depth 1 -b master
    https://github.com/openvswitch/ovs.git
    <https://github.com/openvswitch/ovs.git>
     >> -cd ovs;
     >> -mkdir _gcc;
     >> +# Get ovn source.
     >> +git clone --depth 1 -b $OVN_BRANCH $GITHUB_SRC
     >> +cd ovn
     >>   -# build and install
     >> +# Get OVS submodule, build and install OVS.
     >> +git submodule update --init
     >> +cd ovs
     >>   ./boot.sh
     >> -cd _gcc
     >> -../configure --localstatedir="/var" --sysconfdir="/etc"
     >> --prefix="/usr" \
     >> +./configure --localstatedir="/var" --sysconfdir="/etc"
    --prefix="/usr" \
     >>   --enable-ssl
     >> -cd ..; make -C _gcc install; cd ..
     >> -
     >> +make -j8 install
     >> +cd ..
     >>   -# get ovn source
     >> -git clone --depth 1 -b $OVN_BRANCH $GITHUB_SRC
     >> -cd ovn
     >> -
     >> -# build and install
     >> +# Build and install OVN.
     >>   ./boot.sh
     >>   ./configure --localstatedir="/var" --sysconfdir="/etc"
     >> --prefix="/usr" \
     >> ---enable-ssl --with-ovs-source=/build/ovs/
     >> --with-ovs-build=/build/ovs/_gcc
     >> -make -j8; make install
     >> +--enable-ssl
     >> +make -j8 install
     >

    _______________________________________________
    dev mailing list
    [email protected] <mailto:[email protected]>
    https://mail.openvswitch.org/mailman/listinfo/ovs-dev
    <https://mail.openvswitch.org/mailman/listinfo/ovs-dev>


Thanks,
Ales
--

Ales Musil

Senior Software Engineer - OVN Core

Red Hat EMEA <https://www.redhat.com>

[email protected] <mailto:[email protected]>

<https://red.ht/sig>


_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to