{"id":41591502,"url":"https://github.com/opensciencegrid/osg-k8s-cvmfs","last_synced_at":"2026-01-24T09:31:47.152Z","repository":{"id":43473426,"uuid":"314581422","full_name":"opensciencegrid/osg-k8s-cvmfs","owner":"opensciencegrid","description":"Kubernetes manifests to provide CVMFS mounts","archived":false,"fork":false,"pushed_at":"2024-05-29T14:58:24.000Z","size":60,"stargazers_count":2,"open_issues_count":1,"forks_count":3,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-05-30T04:24:49.439Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opensciencegrid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-20T14:42:25.000Z","updated_at":"2024-05-29T14:58:28.000Z","dependencies_parsed_at":"2022-08-29T05:10:31.997Z","dependency_job_id":null,"html_url":"https://github.com/opensciencegrid/osg-k8s-cvmfs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/opensciencegrid/osg-k8s-cvmfs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensciencegrid%2Fosg-k8s-cvmfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensciencegrid%2Fosg-k8s-cvmfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensciencegrid%2Fosg-k8s-cvmfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensciencegrid%2Fosg-k8s-cvmfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opensciencegrid","download_url":"https://codeload.github.com/opensciencegrid/osg-k8s-cvmfs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensciencegrid%2Fosg-k8s-cvmfs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28723233,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T08:27:05.734Z","status":"ssl_error","status_checked_at":"2026-01-24T08:27:01.197Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-24T09:31:46.283Z","updated_at":"2026-01-24T09:31:47.139Z","avatar_url":"https://github.com/opensciencegrid.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# CVMFS DaemonSet for Kubernetes\n\n[CVMFS](https://cernvm.cern.ch/fs/) provides a scalable, global, read-only\nfilesystem that is developed at CERN and used at many computing centers\nto distribute software.  This repository contains manifests that can be\nused by a Kubernetes administrator to make CVMFS mounts available to pods\nrunning inside the cluster.\n\nThere are two pieces required to add support:\n\n1. A CVMFS DaemonSet, a set of pods that runs on every host in the cluster.\n   The CVMFS processes are run inside these pods and the FUSE filesystem\n   mount is bind-mounted into the host filesystem.\n2. A set of PersistentVolumes that permit bind-mounting the read-only host\n   filesystem into user's pods. *This must be setup once per namespace*.\n\nBoth items require significant administrator privileges to setup as\nthey require the ability to view the host filesystem inside the container.\n\nAn arbitrary number of pods in the same namespace can mount a persistent\nvolume.  Accordingly, step 2 must be performed once for each namespace\nwhere CVMFS is used.\n\nCVMFS DaemonSet\n---------------\n\nThe CVMFS DaemonSet is provided by the `cvmfs-daemonset` directory in\nthis repository.  It can be loaded with the following command:\n\n```\nkubectl apply -k cvmfs-daemonset\n```\n\nIf you are using Kustomize at your site already, you can add incorporate these\nlines to your `kustomization.yaml`\n\n```\nbases:\n- github.com/opensciencegrid/osg-k8s-cvmfs/cvmfs-daemonset?ref=main\n```\n\nNote this additionally starts a Squid deployment to handle the caching\nof HTTP requests to the wider system.\n\nPersistent Volumes\n------------------\n\nThe persistent volumes can be installed into the CVMFS namespace with the\nfollowing command:\n\n```\nkubectl apply -k cvmfs-pvcs\n```\n\nHowever, this only installs persistent volumes and the corresponding claims\ninto the `cvmfs` namespace.  You can utilize kustomize overlays to create these\nclaims across many namespaces.\n\nSetup a directory with a `kustomization.yaml` for each namespace where you want\nCVMFS:\n\n```\n/\n  /namespace1/\n    /namespace1/kustomization.yaml\n  /namespace2/\n    /namespace2/kustomization.yaml\n```\n\nThe `kustomization.yaml` file for `namespace1` will look like this:\n\n```\nnamespace: namespace1\n\nnamePrefix: namespace1-\n\nbases:\n- github.com/opensciencegrid/osg-k8s-cvmfs/cvmfs-pvcs?ref=main\n\n```\n\nThen, CVMFS can be added to the namespace with the following command:\n\n```\nkubectl apply -k namespace1\n```\n\nDeployment Notes for Rancher\n----------------------------\n\nThis solution requires the `kubelet` process to have access to a specific directory\non the host (so the CVMFS pod can mount the FUSE filesystem as read-only and the\nother pods can mount this filesystem).  Some distributions of Kubernetes, like\n[Rancher](https://rancher.com/), launch `kubelet` itself inside a Docker container,\nbreaking the underlying assumption.\n\nTo make `/var/lib/cvmfs-k8s` available to Rancher, from Rancher's web UI, add the\nfollowing kubelet configuration:\n\n```\nkubelet:\n    image: \"\"\n    extra_args: {}\n    extra_binds:\n      - \"/var/lib/cvmfs-k8s:/var/lib/cvmfs-k8s:rshared\"\n```\n\n\nOriginal Author\n---------------\n\nThis code was originally authored by Igor Sfiligoi for the Pacific Research Platform.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensciencegrid%2Fosg-k8s-cvmfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopensciencegrid%2Fosg-k8s-cvmfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensciencegrid%2Fosg-k8s-cvmfs/lists"}