{"id":21475118,"url":"https://github.com/snapp-incubator/ceph-s3-operator","last_synced_at":"2025-07-15T09:32:09.828Z","repository":{"id":180054790,"uuid":"655390970","full_name":"snapp-incubator/ceph-s3-operator","owner":"snapp-incubator","description":"A Kubernetes operator for efficient management of S3 users and buckets in S3 object storage created with Ceph RGW.","archived":false,"fork":false,"pushed_at":"2024-03-21T22:05:40.000Z","size":281,"stargazers_count":34,"open_issues_count":3,"forks_count":1,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-06-12T08:53:00.969Z","etag":null,"topics":["ceph","ceph-radosgw","go","golang","k8s-controller","kubernetes","operator","s3","snappcloud","storage"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snapp-incubator.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-18T18:46:30.000Z","updated_at":"2024-12-31T02:24:06.000Z","dependencies_parsed_at":"2024-01-15T19:45:46.300Z","dependency_job_id":"75eb9419-ac19-4c73-8e27-b9644e05602e","html_url":"https://github.com/snapp-incubator/ceph-s3-operator","commit_stats":{"total_commits":62,"total_committers":5,"mean_commits":12.4,"dds":0.5,"last_synced_commit":"9c465d43b2ebb30abbd6b674ce7e3154083bb3e7"},"previous_names":["snapp-incubator/s3-operator"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/snapp-incubator/ceph-s3-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapp-incubator%2Fceph-s3-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapp-incubator%2Fceph-s3-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapp-incubator%2Fceph-s3-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapp-incubator%2Fceph-s3-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snapp-incubator","download_url":"https://codeload.github.com/snapp-incubator/ceph-s3-operator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapp-incubator%2Fceph-s3-operator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265425320,"owners_count":23762900,"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":["ceph","ceph-radosgw","go","golang","k8s-controller","kubernetes","operator","s3","snappcloud","storage"],"created_at":"2024-11-23T10:37:33.545Z","updated_at":"2025-07-15T09:32:09.514Z","avatar_url":"https://github.com/snapp-incubator.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ceph S3 Operator\n\n![License](https://img.shields.io/github/license/snapp-incubator/ceph-s3-operator)\n![Test](https://github.com/snapp-incubator/ceph-s3-operator/actions/workflows/checks.yaml/badge.svg?branch=main)\n![Release](https://github.com/snapp-incubator/ceph-s3-operator/actions/workflows/build-release.yaml/badge.svg)\n![Tag](https://img.shields.io/github/v/tag/snapp-incubator/ceph-s3-operator?\u0026logo=git)\n\n## Introduction\n\nThe Ceph S3 Operator, an open-source endeavor, is crafted to streamline the management of S3 users and buckets within a Ceph cluster environment. It enhances efficiency and simplifies processes, rendering S3 usage on Ceph clusters more straightforward and user-friendly.\n\n## Features\n\n- S3 User Management\n- Bucket Management\n- Subuser Support\n- Bucket policy Support\n- Quota Management\n- Webhook Integration\n- E2E Testing\n- Helm Chart and OLM Support\n\n## Installation\n\n### Prerequisites\n\n- Kubernetes v1.23.0+\n- Ceph v14.2.10+\n    \u003e Note: prior Ceph versions [don't support the subuser bucket policy](https://github.com/ceph/ceph/pull/33714). Nevertheless, other features are expected to work properly within those earlier releases.\n- ClusterResourceQuota CRD: `kubectl apply -f config/external-crd`\n\n### Using OLM\n\nYou can find the operator on [OperatorHub](https://operatorhub.io/operator/ceph-s3-operator) and install it using OLM.\n\n### Using Helm\n\nDeploy using Helm (version 3.8.0 or later), which supports OCI charts. To use the helm chart, edit the `values.yaml` file and set `controllerManagerConfig.configYaml` to your Ceph cluster configuration like [secret.yaml](config/manager/secret.yaml).\n\n```bash\nhelm upgrade --install ceph-s3-operator oci://ghcr.io/snapp-incubator/ceph-s3-operator/helm-charts/ceph-s3-operator --version v0.3.7\n```\n\n### Using Makefile\n\nDeploy using a simple command:\n\n```bash\nmake deploy\n```\n\n## Usage and Documentation\n\n- CRD Examples: Located in the [samples](config/samples) folder.\n- Detailed Documentation: Available on the [wiki](https://github.com/snapp-incubator/ceph-s3-operator/wiki).\n- Design and Decision Insights: Refer to our [design doc](docs/DESIGN.md) for an in-depth understanding.\n\n## Versioning and Release\n\nA new docker image, bundle and helm chart will be created each time a tag starting with `v` is pushed to the main branch.\n\n## Development\n\nWe follow [Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder/blob/master/DESIGN.md#development) development principles, Specifically about testing in an environment similar to the real world and avoiding mocks as much as\npossible.\n\nFor example, we don't mock RGW API. Instead, we use a similar approach to\nwhat [go-ceph](https://github.com/ceph/go-ceph/) does.\n\n### Building the testing image\n\n```shell\nTESTING_IMAGE_TAG=\u003cdesired_tag\u003e make build-testing-image\n```\n\nDon't forget to update the tag in Makefile!\n\n### Building the helm chart\n\nWe use [helmify](https://github.com/arttor/helmify) to generate Helm chart from kustomize rendered manifests. To update\nthe chart run:\n\n```shell\nmake helm\n```\n\nThe chart will be created/updated in `charts/ceph-s3-operator` path\n\n### Run locally\n\nIf you want to test the operator on your local environment, run the below instructions:\n\nFirst setup the local Ceph cluster:\n\n```shell\nmake setup-dev-env\n```\n\nThen run the operator either with or without webhook:\n\n```shell\nmake run  # Without webhook\nmake run-with-webhook # With webhook\n```\n\nAt the end, you can tear down the operator and the Ceph cluster:\n\n```shell\nmake teardown-operator teardown-dev-env\n```\n\n## Test\n\nTo test the project via the operator-sdk `envtest`:\n\n```shell\nmake test\n```\n\nAnd to run the e2e tests with KUTTL performing the tests on a KIND cluster:\n\n```shell\nkubectl-kuttl test\n```\n\n## Contributing\n\nContributions are warmly welcomed. Feel free to submit issues or pull requests.\n\n## License\n\nThis project is licensed under the [GPL 3.0](https://github.com/snapp-incubator/ceph-s3-operator/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnapp-incubator%2Fceph-s3-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnapp-incubator%2Fceph-s3-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnapp-incubator%2Fceph-s3-operator/lists"}