{"id":18800637,"url":"https://github.com/ceph/ceph-cosi","last_synced_at":"2025-07-24T12:20:29.894Z","repository":{"id":46095080,"uuid":"364600558","full_name":"ceph/ceph-cosi","owner":"ceph","description":"COSI driver for Ceph Object Store aka RGW","archived":false,"fork":false,"pushed_at":"2025-03-10T05:24:52.000Z","size":148,"stargazers_count":42,"open_issues_count":6,"forks_count":18,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-27T08:45:08.346Z","etag":null,"topics":["bucket-requests","ceph","cosi","kubernetes","rgw"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ceph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-05T14:16:34.000Z","updated_at":"2025-03-10T05:24:56.000Z","dependencies_parsed_at":"2024-11-07T22:20:09.994Z","dependency_job_id":"b9925979-3609-4374-8208-64ddaa5ade0e","html_url":"https://github.com/ceph/ceph-cosi","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceph%2Fceph-cosi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceph%2Fceph-cosi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceph%2Fceph-cosi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceph%2Fceph-cosi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ceph","download_url":"https://codeload.github.com/ceph/ceph-cosi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248752404,"owners_count":21156082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bucket-requests","ceph","cosi","kubernetes","rgw"],"created_at":"2024-11-07T22:19:29.249Z","updated_at":"2025-04-13T17:31:27.580Z","avatar_url":"https://github.com/ceph.png","language":"Go","funding_links":[],"categories":["kubernetes"],"sub_categories":[],"readme":"# cosi-driver-ceph\n\nSample Driver that provides reference implementation for Container Object Storage Interface (COSI) API for [Ceph Object Store aka RADOS Gateway (RGW)](https://docs.ceph.com/en/latest/man/8/radosgw/)\n\n## Installing CRDs, COSI controller, Node adapter\n\n```console\nkubectl create -k github.com/kubernetes-sigs/container-object-storage-interface-api\n\nkubectl create -k github.com/kubernetes-sigs/container-object-storage-interface-controller\n```\n\nFollowing pods will running in the default namespace :\n\n```console\nNAME                                        READY   STATUS    RESTARTS   AGE\nobjectstorage-controller-6fc5f89444-4ws72   1/1     Running   0          2d6h\n```\n\n## Building, Installing, Setting Up\n\nCode can be compiled using:\n\n```bash\nmake build\n```\n\nNow build docker image and provide tag as `ceph/ceph-cosi-driver:latest`\n\n```console\nmake container\nSending build context to Docker daemon  41.95MB\nStep 1/5 : FROM gcr.io/distroless/static:latest\n ---\u003e 1d9948f921db\nStep 2/5 : LABEL maintainers=\"Ceph COSI Authors\"\n ---\u003e Using cache\n ---\u003e 8659e9813ec5\nStep 3/5 : LABEL description=\"Ceph COSI driver\"\n ---\u003e Using cache\n ---\u003e 0c55b21ff64f\nStep 4/5 : COPY ./cmd/ceph-cosi-driver/ceph-cosi-driver ceph-cosi-driver\n ---\u003e a21275402998\nStep 5/5 : ENTRYPOINT [\"/ceph-cosi-driver\"]\n ---\u003e Running in 620bfa992683\nRemoving intermediate container 620bfa992683\n ---\u003e 09575229056e\nSuccessfully built 09575229056e\n\ndocker tag ceph-cosi-driver:latest ceph/ceph-cosi-driver:latest\n```\n\nNow start the sidecar and cosi driver with:\n\n```console\nkubectl apply -k .\nkubectl -n ceph-cosi-driver get pods\nNAME                                         READY   STATUS    RESTARTS   AGE\nobjectstorage-provisioner-6c8df56cc6-lqr26   2/2     Running   0          26h\n```\n\n## Create Bucket Requests, Bucket Access Request and consuming it in App\n\n```console\nkubectl create -f examples/bucketclass.yaml\nkubectl create -f examples/bucketclaim.yaml\nkubectl create -f examples/bucketaccessclass.yaml\nkubectl create -f examples/bucketaccess.yaml\n```\n\nNeed to provide access details for RGW server via secret and it needs to be referenced in BucketAccessClass and BucketClass.\n\n```yaml\nparameters:\n  objectStoreUserSecretName: \u003csecret name\u003e\n  objectStoreUserSecretNamespace: \u003cnamespace\u003e\n```\n\nIn the app, credentials can be consumed as secret volume mount using the secret name specified in the BucketAccess:\n\n```yaml\nspec:\n  containers:\n      volumeMounts:\n        - name: cosi-secrets\n          mountPath: /data/cosi\n  volumes:\n  - name: cosi-secrets\n    secret:\n      secretName: sample-access-secret\n```\n\nAn example for awscli pods can be found at `examples/awscliapppod.yaml`. Credentials will be in json format in the file.\n\n```json\n{\n      apiVersion: \"v1alpha1\",\n      kind: \"BucketInfo\",\n      metadata: {\n          name: \"ba-$uuid\"\n      },\n      spec: {\n          bucketName: \"ba-$uuid\",\n          authenticationType: \"KEY\",\n          endpoint: \"https://rook-ceph-my-store:443\",\n          accessKeyID: \"AKIAIOSFODNN7EXAMPLE\",\n          accessSecretKey: \"wJalrXUtnFEMI/K...\",\n          region: \"us-east-1\",\n          protocols: [\n            \"s3\"\n          ]\n      }\n    }\n```\n\n## Known limitations\n\n1. Handle access policies for Bucket Access Request\n\n## Configuration Options\n\n| Option                    | Default value                          | Description                                                        |\n| ------------------------- | -------------------------------------- | -------------------------------------------------------------------|\n| `--driver-address`        | `unix:///var/lib/cosi/cosi.sock`       | COSI driver address, must be a UNIX socket                         |\n| `--driver-prefix`         |  _empty_                               | prefix added before name, e.g, `\u003cprefix\u003e.ceph.objectstorage.k8s.io`|\n\n## Integration with Rook\n\nThe ceph cosi driver integrates with [Rook](https://rook.io/) from v1.12 onwards to provide object storage for Kubernetes applications. More details can be found [here](https://rook.io/docs/rook/v1.12/Storage-Configuration/Object-Storage-RGW/cosi/).\n\n## Community, discussion, contribution, and support\n\nYou can reach the maintainers of this project at:\n\n- [Slack](https://kubernetes.slack.com/messages/sig-storage)\n- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-storage)\n\n## Code of conduct\n\nParticipation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceph%2Fceph-cosi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceph%2Fceph-cosi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceph%2Fceph-cosi/lists"}