On 3/27/24 07:40, Ales Musil wrote: > On Tue, Mar 26, 2024 at 7:09 PM Mark Michelson <mmich...@redhat.com> wrote: > >> On 3/25/24 05:09, Ales Musil wrote: >>> >>> >>> On Mon, Mar 25, 2024 at 9:47 AM Dumitru Ceara <dce...@redhat.com >>> <mailto:dce...@redhat.com>> 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 <dce...@redhat.com >>> <mailto:dce...@redhat.com>> >>> >> --- >>> >> 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. >> > > Yeah definitely, I don't want to block this at all, I was just curious. > > >> 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 was mainly referring to ovn-fake-multinode in that case. > > > >> 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? >> > > I'm not sure merging is the right thing, as there is probably not one size > to fit them all. We could certainly change the documentation with reference > to the utilities/containers as a way to have reproducible builds. >
Another problem with merging the two containerization methods is that sometimes we need to hack around limitations in our CI. See the crun workaround for GH actions for example. > Anyway let's proceed with the series as is and we can always follow up with > other ideas for this area. > I'll go ahead with merging this series. We can improve as a follow up. Thanks for all the feedback! > >> >>> >>> >>> >> #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" <aginw...@ebay.com >>> <mailto:aginw...@ebay.com>> >>> >> 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 >>> d...@openvswitch.org <mailto:d...@openvswitch.org> >>> 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> >>> >>> amu...@redhat.com <mailto:amu...@redhat.com> >>> >>> <https://red.ht/sig> >>> >> >> > Thanks, > Ales _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev