diff --git a/Documentation/CRDs/specification.md b/Documentation/CRDs/specification.md index 849b9a79f..5d8f7603d 100644 --- a/Documentation/CRDs/specification.md +++ b/Documentation/CRDs/specification.md @@ -8433,6 +8433,18 @@ string +users
+ +string + + + +(Optional) +

Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities

+ + + + bucket
string @@ -8445,6 +8457,18 @@ string +buckets
+ +string + + + +(Optional) +

Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities

+ + + + metadata
string diff --git a/deploy/charts/rook-ceph/templates/resources.yaml b/deploy/charts/rook-ceph/templates/resources.yaml index e9070b79f..7950f0da2 100644 --- a/deploy/charts/rook-ceph/templates/resources.yaml +++ b/deploy/charts/rook-ceph/templates/resources.yaml @@ -10401,6 +10401,14 @@ spec: - write - read, write type: string + buckets: + description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities + enum: + - '*' + - read + - write + - read, write + type: string datalog: description: Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities enum: @@ -10481,6 +10489,14 @@ spec: - write - read, write type: string + users: + description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities + enum: + - '*' + - read + - write + - read, write + type: string zone: description: Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities enum: diff --git a/deploy/examples/crds.yaml b/deploy/examples/crds.yaml index 954045e16..b2a3c88f0 100644 --- a/deploy/examples/crds.yaml +++ b/deploy/examples/crds.yaml @@ -10392,6 +10392,14 @@ spec: - write - read, write type: string + buckets: + description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities + enum: + - '*' + - read + - write + - read, write + type: string datalog: description: Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities enum: @@ -10472,6 +10480,14 @@ spec: - write - read, write type: string + users: + description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities + enum: + - '*' + - read + - write + - read, write + type: string zone: description: Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities enum: diff --git a/pkg/apis/ceph.rook.io/v1/types.go b/pkg/apis/ceph.rook.io/v1/types.go index f1b107357..e94c98783 100755 --- a/pkg/apis/ceph.rook.io/v1/types.go +++ b/pkg/apis/ceph.rook.io/v1/types.go @@ -1587,10 +1587,18 @@ type ObjectUserCapSpec struct { User string `json:"user,omitempty"` // +optional // +kubebuilder:validation:Enum={"*","read","write","read, write"} + // Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities + Users string `json:"users,omitempty"` + // +optional + // +kubebuilder:validation:Enum={"*","read","write","read, write"} // Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities Bucket string `json:"bucket,omitempty"` // +optional // +kubebuilder:validation:Enum={"*","read","write","read, write"} + // Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities + Buckets string `json:"buckets,omitempty"` + // +optional + // +kubebuilder:validation:Enum={"*","read","write","read, write"} // Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities MetaData string `json:"metadata,omitempty"` // +optional diff --git a/pkg/operator/ceph/object/user/controller.go b/pkg/operator/ceph/object/user/controller.go index 0fdf0c0af..b4866cc38 100644 --- a/pkg/operator/ceph/object/user/controller.go +++ b/pkg/operator/ceph/object/user/controller.go @@ -424,9 +424,15 @@ func generateUserConfig(user *cephv1.CephObjectStoreUser) admin.User { if user.Spec.Capabilities.User != "" { userConfig.UserCaps += fmt.Sprintf("users=%s;", user.Spec.Capabilities.User) } + if user.Spec.Capabilities.Users != "" { + userConfig.UserCaps += fmt.Sprintf("users=%s;", user.Spec.Capabilities.Users) + } if user.Spec.Capabilities.Bucket != "" { userConfig.UserCaps += fmt.Sprintf("buckets=%s;", user.Spec.Capabilities.Bucket) } + if user.Spec.Capabilities.Buckets != "" { + userConfig.UserCaps += fmt.Sprintf("buckets=%s;", user.Spec.Capabilities.Buckets) + } if user.Spec.Capabilities.MetaData != "" { userConfig.UserCaps += fmt.Sprintf("metadata=%s;", user.Spec.Capabilities.MetaData) }