Talk to radosgw directly via go-ceph + aws-sdk-go-v2 #3
Reference in New Issue
Block a user
Delete Branch "benvin/go-ceph-native-client"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
The operator drove the Ceph manager dashboard REST API to manage RGW users, buckets and policies, coupling it to a dashboard login, the dashboard's RGW wiring, and the dashboard's bucket API surface. This rebuilds the Ceph integration to talk directly to radosgw the way the CLI does, using native Go libraries, while keeping every operator capability identical.
The exported API of
internal/cephis kept stable, so the three controllers andcmd/operatorare untouched (bar theCEPH_RGW_*config plumbing already in flight for the radosgw move).Changes
internal/cephclient internals withgithub.com/ceph/go-ceph/rgw/admin(Admin Ops API) for users, keys, quotas and bucket info/removalgithub.com/aws/aws-sdk-go-v2S3 client for bucket create, versioning, policy, tagging and object lock, signed as the bucket owneradmin.ErrNoSuch*/ErrUserExistsand smithyAPIErrorcodes intoIsNotFound/IsConflictso controller create-vs-update branching is preservedWhenRequiredchecksum modes (older RGW rejects the SDK's default CRC32/aws-chunked integrity headers)policy.go(BuildBucketPolicy/BuildTagJSON) as pure buildersNewClientvalidation and error-classifier testsCGO_ENABLED=0distroless — only go-ceph's pure-Gorgw/adminis imported (no librados/cgo)README.mdanddocs/ceph-setup.mdfor the single RGW admin user (capsusers=*;buckets=*) andCEPH_RGW_*credential SecretVerification
gofmt,go vet,go build ./...,go test -race ./...pass;CGO_ENABLED=0operator binary builds;go mod verifyclean.https://claude.ai/code/session_016CEncETbf8cvy1PhsHfFHM
2c6f63a86fto466514063a