rgw: support all S3 notification events in CRD validation

Signed-off-by: Artem Torubarov <artem.torubarov@sap.com>
(cherry picked from commit 7ee062bc06)
This commit is contained in:
Artem Torubarov authored and Mergify committed 2025-12-08 15:51:30 +00:00
1 parent 6f8d351994
commit c103c72f0c
4 files changed
+54 -4

No files matched your search

+2 -1
View File
@@ -2854,7 +2854,8 @@ KeystoneSpec
(<em>Appears on:</em><a href="#ceph.rook.io/v1.BucketNotificationSpec">BucketNotificationSpec</a>)
</p>
<div>
<p>BucketNotificationSpec represent the event type of the bucket notification</p>
<p>BucketNotificationSpec represent the event type of the bucket notification
See: <a href="https://docs.ceph.com/en/latest/radosgw/s3-notification-compatibility/#event-types">https://docs.ceph.com/en/latest/radosgw/s3-notification-compatibility/#event-types</a></p>
</div>
<h3 id="ceph.rook.io/v1.BucketNotificationSpec">BucketNotificationSpec
</h3>
@@ -932,7 +932,9 @@ spec:
events:
description: List of events that should trigger the notification
items:
description: BucketNotificationSpec represent the event type of the bucket notification
description: |-
BucketNotificationSpec represent the event type of the bucket notification
See: https://docs.ceph.com/en/latest/radosgw/s3-notification-compatibility/#event-types
enum:
- s3:ObjectCreated:*
- s3:ObjectCreated:Put
@@ -942,6 +944,28 @@ spec:
- s3:ObjectRemoved:*
- s3:ObjectRemoved:Delete
- s3:ObjectRemoved:DeleteMarkerCreated
- s3:ObjectLifecycle:Expiration:Current
- s3:ObjectLifecycle:Expiration:NonCurrent
- s3:ObjectLifecycle:Expiration:DeleteMarker
- s3:ObjectLifecycle:Expiration:AbortMultipartUpload
- s3:ObjectLifecycle:Transition:Current
- s3:ObjectLifecycle:Transition:NonCurrent
- s3:LifecycleExpiration:*
- s3:LifecycleExpiration:Delete
- s3:LifecycleExpiration:DeleteMarkerCreated
- s3:LifecycleTransition
- s3:ObjectSynced:*
- s3:ObjectSynced:Create
- s3:ObjectSynced:Delete
- s3:ObjectSynced:DeletionMarkerCreated
- s3:Replication:*
- s3:Replication:Create
- s3:Replication:Delete
- s3:Replication:DeletionMarkerCreated
- s3:ObjectRestore:*
- s3:ObjectRestore:Post
- s3:ObjectRestore:Completed
- s3:ObjectRestore:Delete
type: string
type: array
filter:
+25 -1
View File
@@ -933,7 +933,9 @@ spec:
events:
description: List of events that should trigger the notification
items:
description: BucketNotificationSpec represent the event type of the bucket notification
description: |-
BucketNotificationSpec represent the event type of the bucket notification
See: https://docs.ceph.com/en/latest/radosgw/s3-notification-compatibility/#event-types
enum:
- s3:ObjectCreated:*
- s3:ObjectCreated:Put
@@ -943,6 +945,28 @@ spec:
- s3:ObjectRemoved:*
- s3:ObjectRemoved:Delete
- s3:ObjectRemoved:DeleteMarkerCreated
- s3:ObjectLifecycle:Expiration:Current
- s3:ObjectLifecycle:Expiration:NonCurrent
- s3:ObjectLifecycle:Expiration:DeleteMarker
- s3:ObjectLifecycle:Expiration:AbortMultipartUpload
- s3:ObjectLifecycle:Transition:Current
- s3:ObjectLifecycle:Transition:NonCurrent
- s3:LifecycleExpiration:*
- s3:LifecycleExpiration:Delete
- s3:LifecycleExpiration:DeleteMarkerCreated
- s3:LifecycleTransition
- s3:ObjectSynced:*
- s3:ObjectSynced:Create
- s3:ObjectSynced:Delete
- s3:ObjectSynced:DeletionMarkerCreated
- s3:Replication:*
- s3:Replication:Create
- s3:Replication:Delete
- s3:Replication:DeletionMarkerCreated
- s3:ObjectRestore:*
- s3:ObjectRestore:Post
- s3:ObjectRestore:Completed
- s3:ObjectRestore:Delete
type: string
type: array
filter:
+2 -1
View File
@@ -2659,7 +2659,8 @@ type CephBucketNotificationList struct {
}
// BucketNotificationSpec represent the event type of the bucket notification
// +kubebuilder:validation:Enum="s3:ObjectCreated:*";"s3:ObjectCreated:Put";"s3:ObjectCreated:Post";"s3:ObjectCreated:Copy";"s3:ObjectCreated:CompleteMultipartUpload";"s3:ObjectRemoved:*";"s3:ObjectRemoved:Delete";"s3:ObjectRemoved:DeleteMarkerCreated"
// See: https://docs.ceph.com/en/latest/radosgw/s3-notification-compatibility/#event-types
// +kubebuilder:validation:Enum="s3:ObjectCreated:*";"s3:ObjectCreated:Put";"s3:ObjectCreated:Post";"s3:ObjectCreated:Copy";"s3:ObjectCreated:CompleteMultipartUpload";"s3:ObjectRemoved:*";"s3:ObjectRemoved:Delete";"s3:ObjectRemoved:DeleteMarkerCreated";"s3:ObjectLifecycle:Expiration:Current";"s3:ObjectLifecycle:Expiration:NonCurrent";"s3:ObjectLifecycle:Expiration:DeleteMarker";"s3:ObjectLifecycle:Expiration:AbortMultipartUpload";"s3:ObjectLifecycle:Transition:Current";"s3:ObjectLifecycle:Transition:NonCurrent";"s3:LifecycleExpiration:*";"s3:LifecycleExpiration:Delete";"s3:LifecycleExpiration:DeleteMarkerCreated";"s3:LifecycleTransition";"s3:ObjectSynced:*";"s3:ObjectSynced:Create";"s3:ObjectSynced:Delete";"s3:ObjectSynced:DeletionMarkerCreated";"s3:Replication:*";"s3:Replication:Create";"s3:Replication:Delete";"s3:Replication:DeletionMarkerCreated";"s3:ObjectRestore:*";"s3:ObjectRestore:Post";"s3:ObjectRestore:Completed";"s3:ObjectRestore:Delete"
type BucketNotificationEvent string
// BucketNotificationSpec represent the spec of a Bucket Notification