[CentOS-devel] building nfs-ganesha for ceph

Wed Dec 5 16:53:55 UTC 2018
Niels de Vos <ndevos at redhat.com>

On Wed, Dec 05, 2018 at 09:11:58AM -0700, Ken Dreyer wrote:
> On Tue, Dec 4, 2018 at 4:09 PM Kaleb S. KEITHLEY <kkeithle at redhat.com> wrote:
> > I think it should be achievable. I try and build ganesha with as many
> > FSALs enabled as possible. It's been a while though since I looked at
> > which version of Ceph was in CBS for the Storage SIG.
> >
> > If Ceph doesn't guarantee its ABIs though that's going to make things
> > harder.
> 
> I confirmed with Matt Benjamin on ceph-devel today that this ok. We'll
> be able to build nfs-ganesha-2.7 against Luminous and then cross-tag
> that into our newer releases (eg mimic and nautilus). So we can follow
> the same model that you're following with building nfs-ganesha in the
> "oldest supported" build target.
> 
> In terms of sharing one single nfs-ganesha build across ceph and
> gluster, I think that will require more work. We'd probably want:
> 
> 1) A custom nfs-ganesha "-build" tag/target that contains the "oldest
>    supported" versions of both ceph and gluster,
> 
> 2) cross-tag the nfs-ganesha builds from there into both the ceph and gluster
>    -testing tags,
> 
> 3) Update the mash configuration to exclude the irrelevant sub-packages
>    when building ceph and gluster's "testing" and "release" repositories.
> 
> Unfortunately that last bit looks really tricky. I'm not sure there is
> a way to tell mash itself to exclude a particular sub-package, and
> https://git.centos.org/blob/sig-core!cbs-tools.git/master/scripts!mash_run.sh
> uses a basic mash config template for all CBS tags.

This is something that I'm very much looking forward to see happening.
The 3rd point is indeed something that (from my understanding) is not
possible. I have thought of an alternative, but that is still a little
ugly. Not sure if we want to go that route.

- add a new repository with all nfs-ganesha-x.y packages (direct
  dependencies and sub-packages), without ceph/gluster

- add a new repository definition in centos-release-gluster and
  centos-release-ceph packages. This entry in the .repo file should use
  the 'exclude=' directive to skip the Ceph sub-package for Gluster, and
  the Gluster sub-package for Ceph.

For additional projects (like Samba) this would work in a similar way.

Opinions?
Niels