@@ -21,63 +21,81 @@ import (
21
21
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
22
22
)
23
23
24
- type BucketRequestSpec struct {
25
- // +optional
26
- BucketInstanceName string `json:"bucketInstanceName,omitempty"`
27
- // +optional
28
- BucketPrefix string `json:"bucketPrefix,omitempty"`
29
- // +optional
30
- BucketClassName string `json:"bucketClassName,omitempty"`
31
- }
24
+ func init () {
25
+ SchemeBuilder .Register (& Bucket {}, & BucketList {})
26
+ SchemeBuilder .Register (& BucketRequest {}, & BucketRequestList {})
27
+ SchemeBuilder .Register (& BucketClass {}, & BucketClassList {})
32
28
33
- type BucketRequestStatus struct {
34
- // +optional
35
- Message string `json:"message,omitempty"`
36
- // +optional
37
- BucketAvailable bool `json:"bucketAvailable"`
29
+ SchemeBuilder .Register (& BucketAccess {}, & BucketAccessList {})
30
+ SchemeBuilder .Register (& BucketAccessRequest {}, & BucketAccessRequestList {})
31
+ SchemeBuilder .Register (& BucketAccessClass {}, & BucketAccessClassList {})
38
32
}
39
33
40
- type AnonymousAccessMode struct {
41
- // +optional
42
- Private bool `json:"private,omitempty"`
43
- // +optional
44
- PublicReadOnly bool `json:"publicReadOnly,omitempty"`
34
+ type RetentionPolicy string
35
+
36
+ const (
37
+ RetentionPolicyRetain RetentionPolicy = "Retain"
38
+ RetentionPolicyDelete RetentionPolicy = "Delete"
39
+ )
40
+
41
+ // +genclient
42
+ // +genclient:nonNamespaced
43
+ // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
44
+ // +kubebuilder:resource:scope=Cluster
45
+ // +kubebuilder:storageversion
46
+ // +kubebuilder:subresource:status
47
+
48
+ type Bucket struct {
49
+ metav1.TypeMeta `json:",inline"`
45
50
// +optional
46
- PublicReadWrite bool `json:"publicReadWrite,omitempty"`
51
+
52
+ metav1.ObjectMeta `json:"metadata,omitempty"`
53
+
54
+ Spec BucketSpec `json:"spec,omitempty"`
55
+
47
56
// +optional
48
- PublicWriteOnly bool `json:"publicWriteOnly ,omitempty"`
57
+ Status BucketStatus `json:"status ,omitempty"`
49
58
}
50
59
51
60
type BucketSpec struct {
52
61
// +optional
53
62
Provisioner string `json:"provisioner,omitempty"`
54
- // +kubebuilder:default:=retain
55
- RetentionPolicy RetentionPolicy `json:"retentionPolicy"`
56
- // +optional
57
- AnonymousAccessMode AnonymousAccessMode `json:"anonymousAccessMode,omitempty"`
63
+
58
64
// +optional
59
- BucketClassName string `json:"bucketClassName,omitempty"`
60
- BucketRequest * corev1.ObjectReference `json:"bucketRequest,omitempty"`
65
+ BucketClassName string `json:"bucketClassName,omitempty"`
66
+
67
+ BucketRequest * corev1.ObjectReference `json:"bucketRequest,omitempty"`
68
+
61
69
// +listType=atomic
62
70
AllowedNamespaces []string `json:"allowedNamespaces,omitempty"`
63
- Protocol Protocol `json:"protocol"`
71
+
72
+ Protocol Protocol `json:"protocol"`
73
+
74
+ // +optional
75
+ BucketID string `json:"bucketID,omitempty"`
76
+
64
77
// +optional
65
78
Parameters map [string ]string `json:"parameters,omitempty"`
79
+
80
+ // +kubebuilder:default:=retain
81
+ RetentionPolicy RetentionPolicy `json:"retentionPolicy"`
66
82
}
67
83
68
84
type BucketStatus struct {
69
85
// +optional
70
86
Message string `json:"message,omitempty"`
87
+
71
88
// +optional
72
89
BucketAvailable bool `json:"bucketAvailable,omitempty"`
73
90
}
74
91
75
- type RetentionPolicy string
92
+ // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
76
93
77
- const (
78
- RetentionPolicyRetain RetentionPolicy = "Retain"
79
- RetentionPolicyDelete RetentionPolicy = "Delete"
80
- )
94
+ type BucketList struct {
95
+ metav1.TypeMeta `json:",inline"`
96
+ metav1.ListMeta `json:"metadata,omitempty"`
97
+ Items []Bucket `json:"items"`
98
+ }
81
99
82
100
// +genclient
83
101
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -88,42 +106,40 @@ const (
88
106
type BucketRequest struct {
89
107
metav1.TypeMeta `json:",inline"`
90
108
// +optional
109
+
91
110
metav1.ObjectMeta `json:"metadata,omitempty"`
92
- Spec BucketRequestSpec `json:"spec,omitempty"`
111
+
112
+ Spec BucketRequestSpec `json:"spec,omitempty"`
113
+
93
114
// +optional
94
115
Status BucketRequestStatus `json:"status,omitempty"`
95
116
}
96
117
97
- // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
118
+ type BucketRequestSpec struct {
119
+ // +optional
120
+ BucketInstanceName string `json:"bucketInstanceName,omitempty"`
98
121
99
- type BucketRequestList struct {
100
- metav1.TypeMeta `json:",inline"`
101
- metav1.ListMeta `json:"metadata,omitempty"`
102
- Items []BucketRequest `json:"items"`
103
- }
122
+ // +optional
123
+ BucketPrefix string `json:"bucketPrefix,omitempty"`
104
124
105
- // +genclient
106
- // +genclient:nonNamespaced
107
- // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
108
- // +kubebuilder:resource:scope=Cluster
109
- // +kubebuilder:storageversion
110
- // +kubebuilder:subresource:status
125
+ // +optional
126
+ BucketClassName string `json:"bucketClassName,omitempty"`
127
+ }
111
128
112
- type Bucket struct {
113
- metav1.TypeMeta `json:",inline"`
129
+ type BucketRequestStatus struct {
114
130
// +optional
115
- metav1. ObjectMeta `json:"metadata ,omitempty"`
116
- Spec BucketSpec `json:"spec,omitempty"`
131
+ Message string `json:"message ,omitempty"`
132
+
117
133
// +optional
118
- Status BucketStatus `json:"status,omitempty "`
134
+ BucketAvailable bool `json:"bucketAvailable "`
119
135
}
120
136
121
137
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
122
138
123
- type BucketList struct {
139
+ type BucketRequestList struct {
124
140
metav1.TypeMeta `json:",inline"`
125
141
metav1.ListMeta `json:"metadata,omitempty"`
126
- Items []Bucket `json:"items"`
142
+ Items []BucketRequest `json:"items"`
127
143
}
128
144
129
145
// +genclient
@@ -135,24 +151,27 @@ type BucketList struct {
135
151
136
152
type BucketClass struct {
137
153
metav1.TypeMeta `json:",inline"`
154
+
138
155
// +optional
139
156
metav1.ObjectMeta `json:"metadata,omitempty"`
140
157
158
+ Provisioner string `json:"provisioner,omitempty"`
159
+
141
160
// +optional
142
161
// +kubebuilder:default:=false
143
162
IsDefaultBucketClass bool `json:"isDefaultBucketClass,omitempty"`
163
+
144
164
// +listType=atomic
145
165
// +optional
146
166
AllowedNamespaces []string `json:"allowedNamespaces,omitempty"`
147
- Protocol Protocol `json:"protocol"`
148
- // +optional
149
- AnonymousAccessMode AnonymousAccessMode `json:"anonymousAccessMode,omitempty"`
167
+
168
+ Protocol Protocol `json:"protocol"`
169
+
150
170
// +kubebuilder:default:=retain
151
171
RetentionPolicy RetentionPolicy `json:"retentionPolicy,omitempty"`
172
+
152
173
// +optional
153
174
Parameters map [string ]string `json:"parameters,omitempty"`
154
- // +optional
155
- Provisioner string `json:"provisioner,omitempty"`
156
175
}
157
176
158
177
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -172,11 +191,15 @@ type BucketClassList struct {
172
191
173
192
type BucketAccessClass struct {
174
193
metav1.TypeMeta `json:",inline"`
194
+
175
195
// +optional
176
196
metav1.ObjectMeta `json:"metadata,omitempty"`
197
+
177
198
// +optional
178
- Provisioner string `json:"provisioner,omitempty"`
199
+ Provisioner string `json:"provisioner,omitempty"`
200
+
179
201
PolicyActionsConfigMap * corev1.ObjectReference `json:"policyActionsConfigMap,omitempty"`
202
+
180
203
// +optional
181
204
Parameters map [string ]string `json:"parameters,omitempty"`
182
205
}
@@ -189,84 +212,102 @@ type BucketAccessClassList struct {
189
212
Items []BucketAccessClass `json:"items"`
190
213
}
191
214
215
+ // +genclient
216
+ // +genclient:nonNamespaced
217
+ // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
218
+ // +kubebuilder:resource:scope=Cluster
219
+ // +kubebuilder:storageversion
220
+ // +kubebuilder:subresource:status
221
+
222
+ type BucketAccess struct {
223
+ metav1.TypeMeta `json:",inline"`
224
+
225
+ // +optional
226
+ metav1.ObjectMeta `json:"metadata,omitempty"`
227
+
228
+ Spec BucketAccessSpec `json:"spec,omitempty"`
229
+
230
+ // +optional
231
+ Status BucketAccessStatus `json:"status"`
232
+ }
233
+
192
234
type BucketAccessSpec struct {
235
+ // +optional
236
+ Provisioner string `json:"provisioner,omitempty"`
237
+
193
238
// +optional
194
239
BucketInstanceName string `json:"bucketInstanceName,omitempty"`
240
+
195
241
// +optional
196
242
BucketAccessRequest * corev1.ObjectReference `json:"bucketAccessRequest,omitempty"`
243
+
197
244
// +optional
198
245
ServiceAccount * corev1.ObjectReference `json:"serviceAccount,omitempty"`
246
+
199
247
// +optional
200
- MintedSecretName string `json:"mintedSecretName,omitempty"`
248
+ MintedSecretName string `json:"mintedSecretName,omitempty"`
249
+
201
250
PolicyActionsConfigMapData string `json:"policyActionsConfigMapData,omitempty"`
251
+
202
252
// +optional
203
253
Principal string `json:"principal,omitempty"`
204
- // +optional
205
- Provisioner string `json:"provisioner,omitempty"`
254
+
206
255
// +optional
207
256
Parameters map [string ]string `json:"parameters,omitempty"`
208
257
}
209
258
210
259
type BucketAccessStatus struct {
211
260
// +optional
212
261
Message string `json:"message,omitempty"`
262
+
213
263
// +optional
214
264
AccessGranted bool `json:"accessGranted,omitempty"`
215
265
}
216
266
267
+ // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
268
+
269
+ type BucketAccessList struct {
270
+ metav1.TypeMeta `json:",inline"`
271
+ metav1.ListMeta `json:"metadata,omitempty"`
272
+ Items []BucketAccess `json:"items"`
273
+ }
274
+
217
275
// +genclient
218
- // +genclient:nonNamespaced
219
276
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
220
- // +kubebuilder:resource:scope=Cluster
277
+ // +kubebuilder:resource:scope=Namespaced
221
278
// +kubebuilder:storageversion
222
279
// +kubebuilder:subresource:status
223
280
224
- type BucketAccess struct {
281
+ type BucketAccessRequest struct {
225
282
metav1.TypeMeta `json:",inline"`
283
+
226
284
// +optional
227
285
metav1.ObjectMeta `json:"metadata,omitempty"`
228
- Spec BucketAccessSpec `json:"spec,omitempty"`
229
- // +optional
230
- Status BucketAccessStatus `json:"status"`
231
- }
232
286
233
- // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
287
+ Spec BucketAccessRequestSpec `json:"spec,omitempty"`
234
288
235
- type BucketAccessList struct {
236
- metav1.TypeMeta `json:",inline"`
237
- metav1.ListMeta `json:"metadata,omitempty"`
238
- Items []BucketAccess `json:"items"`
289
+ // +optional
290
+ Status BucketAccessRequestStatus `json:"status"`
239
291
}
240
292
241
293
type BucketAccessRequestSpec struct {
242
294
// +optional
243
- ServiceAccountName string `json:"serviceAccountName,omitempty"`
244
- BucketRequestName string `json:"bucketRequestName"`
295
+ ServiceAccountName string `json:"serviceAccountName,omitempty"`
296
+
297
+ BucketRequestName string `json:"bucketRequestName"`
298
+
245
299
BucketAccessClassName string `json:"bucketAccessClassName"`
300
+
246
301
// +optional
247
302
BucketAccessName string `json:"bucketAccessName,omitempty"`
248
303
}
249
304
250
305
type BucketAccessRequestStatus struct {
251
306
// +optional
252
307
Message string `json:"message,omitempty"`
253
- // +optional
254
- AccessGranted bool `json:"accessGranted"`
255
- }
256
308
257
- // +genclient
258
- // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
259
- // +kubebuilder:resource:scope=Namespaced
260
- // +kubebuilder:storageversion
261
- // +kubebuilder:subresource:status
262
-
263
- type BucketAccessRequest struct {
264
- metav1.TypeMeta `json:",inline"`
265
- // +optional
266
- metav1.ObjectMeta `json:"metadata,omitempty"`
267
- Spec BucketAccessRequestSpec `json:"spec,omitempty"`
268
309
// +optional
269
- Status BucketAccessRequestStatus `json:"status "`
310
+ AccessGranted bool `json:"accessGranted "`
270
311
}
271
312
272
313
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -276,13 +317,3 @@ type BucketAccessRequestList struct {
276
317
metav1.ListMeta `json:"metadata,omitempty"`
277
318
Items []BucketAccessRequest `json:"items"`
278
319
}
279
-
280
- func init () {
281
- SchemeBuilder .Register (& Bucket {}, & BucketList {})
282
- SchemeBuilder .Register (& BucketRequest {}, & BucketRequestList {})
283
- SchemeBuilder .Register (& BucketClass {}, & BucketClassList {})
284
-
285
- SchemeBuilder .Register (& BucketAccess {}, & BucketAccessList {})
286
- SchemeBuilder .Register (& BucketAccessRequest {}, & BucketAccessRequestList {})
287
- SchemeBuilder .Register (& BucketAccessClass {}, & BucketAccessClassList {})
288
- }
0 commit comments