CVMFS as a Helm chart

On our Kubernetes clusters, we have been installing the CVMFS CSI to handle WLCG and OSG workloads. However when I need to add a new repo, it’s a bit cumbersome to remember all of the things that I need to do.

I was wondering if we have a Helm chart available for this? If not, how do folks feel about an effort to put one together? In fact I’ve seen that the Galaxy people have already put together a chart: https://github.com/CloudVE/galaxy-cvmfs-csi-helm

I would love to see a CVMFS CSI Helm chart that we can push to the Helm upstream community, such that people standing up a new K8S cluster can “helm install cvmfs” with reasonable defaults. It would also be nice to add new repos trivially (e.g., we have many subrepos under the standard OSG CVMFS which each need a storage class and CVMFS config file entry). I also think this would be a good opportunity to interact with the broader K8S community.

Thoughts? I am happy to take this on and collaborate with other interested parties.

Hi Lincoln.

There is a PR already for this:

The reason i haven’t merged it yet was due to the changes with CSI 1.0, but it’s been on the list for the last 2 months - I’ve actually set to review this in our next internal sprint (next 2 weeks):
https://its.cern.ch/jira/browse/OS-9299

Is this what you mean? Or do you mean pushing the chart to https://github.com/helm/charts/?

Given we have the helm hub now several components are choosing to keep their charts somewhere else instead of relying on the central helm/charts repo.

Cheers,
Ricardo

We rely on gitlab-ci to automate the updates of our helm repository:
https://gitlab.cern.ch/helm/charts/cern (this is a mirror of the github repo)

Hi Ricardo,

Great!

We would need the ability to add the OSG CVMFS (and others) to this chart for use by the community outside of CERN. Is that capability there today?

Since a CVMFS repo essentially just needs, as far as I know, some stratum 0 information, a key, and a path, I was imagining that a user could define these in the values file / refer to some configmap. e.g., if I want to add a ‘grid.uchicago.edu’ CVMFS repository, how do I do this with the Helm chart as it is now? (I haven’t looked- maybe you’ve already built this capability in?) I realize this may have not been in scope for your initial chart. I think it would be really useful, though.

As CVMFS is broadly useful beyond CERN, my preference would be to try to push it to github.com/helm/charts but I understand that the community may be moving to decentralize this with HelmHub. Still, I think there is a lot of value in trying to have the software be in the ‘central’ repository. What do you think?

Hi again.

The initial chart is only taking care of setting up csi-cvmfs, the repositories have to be defined as PVCs once it’s all up and running. That said, it’s pretty easy to add a way to have a set of pre-defined PVCs created at deployment time - it makes total sense.

There’s also no way to express the stratum 0 per repository, this is set on the csi-cvmfs setup - so you can set the OSG CVMFS specific settings when deploying with the helm chart. It might be it’s possible to set this per repository, but it will definitely require some code changes - we can check this.

I’m ok with pushing to helm/charts on github as well, but it’s pretty chaotic: https://github.com/helm/charts/pulls

Ricardo

Got it. Perhaps the best thing to do would be for me to grab the Helm chart once you’ve pushed a v1.0.

If you add the PVCs as part of the Helm chart, perhaps I should hack on some proposed changes to add a values file switch for OSG repos? That way CERN/EU people won’t get the OSG repos by default, but we can easily enable it for US people.

Sounds good.

The helm chart should be there soonish, check the issue: https://github.com/cernops/cvmfs-csi/issues/9

I’ll try to review as soon as it’s pushed.