Skip to content
This repository was archived by the owner on Dec 6, 2024. It is now read-only.

Commit 0f8a2d3

Browse files
committed
Update API based on latest spec
- remove anonymous access mode from bucket and bucketclass - refactor package
1 parent 491fb1e commit 0f8a2d3

File tree

1 file changed

+131
-100
lines changed
  • apis/objectstorage.k8s.io/v1alpha1

1 file changed

+131
-100
lines changed

Diff for: apis/objectstorage.k8s.io/v1alpha1/types.go

+131-100
Original file line numberDiff line numberDiff line change
@@ -21,63 +21,81 @@ import (
2121
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2222
)
2323

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{})
3228

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{})
3832
}
3933

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"`
4550
// +optional
46-
PublicReadWrite bool `json:"publicReadWrite,omitempty"`
51+
52+
metav1.ObjectMeta `json:"metadata,omitempty"`
53+
54+
Spec BucketSpec `json:"spec,omitempty"`
55+
4756
// +optional
48-
PublicWriteOnly bool `json:"publicWriteOnly,omitempty"`
57+
Status BucketStatus `json:"status,omitempty"`
4958
}
5059

5160
type BucketSpec struct {
5261
// +optional
5362
Provisioner string `json:"provisioner,omitempty"`
54-
// +kubebuilder:default:=retain
55-
RetentionPolicy RetentionPolicy `json:"retentionPolicy"`
56-
// +optional
57-
AnonymousAccessMode AnonymousAccessMode `json:"anonymousAccessMode,omitempty"`
63+
5864
// +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+
6169
// +listType=atomic
6270
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+
6477
// +optional
6578
Parameters map[string]string `json:"parameters,omitempty"`
79+
80+
// +kubebuilder:default:=retain
81+
RetentionPolicy RetentionPolicy `json:"retentionPolicy"`
6682
}
6783

6884
type BucketStatus struct {
6985
// +optional
7086
Message string `json:"message,omitempty"`
87+
7188
// +optional
7289
BucketAvailable bool `json:"bucketAvailable,omitempty"`
7390
}
7491

75-
type RetentionPolicy string
92+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
7693

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+
}
8199

82100
// +genclient
83101
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -88,42 +106,40 @@ const (
88106
type BucketRequest struct {
89107
metav1.TypeMeta `json:",inline"`
90108
// +optional
109+
91110
metav1.ObjectMeta `json:"metadata,omitempty"`
92-
Spec BucketRequestSpec `json:"spec,omitempty"`
111+
112+
Spec BucketRequestSpec `json:"spec,omitempty"`
113+
93114
// +optional
94115
Status BucketRequestStatus `json:"status,omitempty"`
95116
}
96117

97-
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
118+
type BucketRequestSpec struct {
119+
// +optional
120+
BucketInstanceName string `json:"bucketInstanceName,omitempty"`
98121

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"`
104124

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+
}
111128

112-
type Bucket struct {
113-
metav1.TypeMeta `json:",inline"`
129+
type BucketRequestStatus struct {
114130
// +optional
115-
metav1.ObjectMeta `json:"metadata,omitempty"`
116-
Spec BucketSpec `json:"spec,omitempty"`
131+
Message string `json:"message,omitempty"`
132+
117133
// +optional
118-
Status BucketStatus `json:"status,omitempty"`
134+
BucketAvailable bool `json:"bucketAvailable"`
119135
}
120136

121137
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
122138

123-
type BucketList struct {
139+
type BucketRequestList struct {
124140
metav1.TypeMeta `json:",inline"`
125141
metav1.ListMeta `json:"metadata,omitempty"`
126-
Items []Bucket `json:"items"`
142+
Items []BucketRequest `json:"items"`
127143
}
128144

129145
// +genclient
@@ -135,24 +151,27 @@ type BucketList struct {
135151

136152
type BucketClass struct {
137153
metav1.TypeMeta `json:",inline"`
154+
138155
// +optional
139156
metav1.ObjectMeta `json:"metadata,omitempty"`
140157

158+
Provisioner string `json:"provisioner,omitempty"`
159+
141160
// +optional
142161
// +kubebuilder:default:=false
143162
IsDefaultBucketClass bool `json:"isDefaultBucketClass,omitempty"`
163+
144164
// +listType=atomic
145165
// +optional
146166
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+
150170
// +kubebuilder:default:=retain
151171
RetentionPolicy RetentionPolicy `json:"retentionPolicy,omitempty"`
172+
152173
// +optional
153174
Parameters map[string]string `json:"parameters,omitempty"`
154-
// +optional
155-
Provisioner string `json:"provisioner,omitempty"`
156175
}
157176

158177
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -172,11 +191,15 @@ type BucketClassList struct {
172191

173192
type BucketAccessClass struct {
174193
metav1.TypeMeta `json:",inline"`
194+
175195
// +optional
176196
metav1.ObjectMeta `json:"metadata,omitempty"`
197+
177198
// +optional
178-
Provisioner string `json:"provisioner,omitempty"`
199+
Provisioner string `json:"provisioner,omitempty"`
200+
179201
PolicyActionsConfigMap *corev1.ObjectReference `json:"policyActionsConfigMap,omitempty"`
202+
180203
// +optional
181204
Parameters map[string]string `json:"parameters,omitempty"`
182205
}
@@ -189,84 +212,102 @@ type BucketAccessClassList struct {
189212
Items []BucketAccessClass `json:"items"`
190213
}
191214

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+
192234
type BucketAccessSpec struct {
235+
// +optional
236+
Provisioner string `json:"provisioner,omitempty"`
237+
193238
// +optional
194239
BucketInstanceName string `json:"bucketInstanceName,omitempty"`
240+
195241
// +optional
196242
BucketAccessRequest *corev1.ObjectReference `json:"bucketAccessRequest,omitempty"`
243+
197244
// +optional
198245
ServiceAccount *corev1.ObjectReference `json:"serviceAccount,omitempty"`
246+
199247
// +optional
200-
MintedSecretName string `json:"mintedSecretName,omitempty"`
248+
MintedSecretName string `json:"mintedSecretName,omitempty"`
249+
201250
PolicyActionsConfigMapData string `json:"policyActionsConfigMapData,omitempty"`
251+
202252
// +optional
203253
Principal string `json:"principal,omitempty"`
204-
// +optional
205-
Provisioner string `json:"provisioner,omitempty"`
254+
206255
// +optional
207256
Parameters map[string]string `json:"parameters,omitempty"`
208257
}
209258

210259
type BucketAccessStatus struct {
211260
// +optional
212261
Message string `json:"message,omitempty"`
262+
213263
// +optional
214264
AccessGranted bool `json:"accessGranted,omitempty"`
215265
}
216266

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+
217275
// +genclient
218-
// +genclient:nonNamespaced
219276
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
220-
// +kubebuilder:resource:scope=Cluster
277+
// +kubebuilder:resource:scope=Namespaced
221278
// +kubebuilder:storageversion
222279
// +kubebuilder:subresource:status
223280

224-
type BucketAccess struct {
281+
type BucketAccessRequest struct {
225282
metav1.TypeMeta `json:",inline"`
283+
226284
// +optional
227285
metav1.ObjectMeta `json:"metadata,omitempty"`
228-
Spec BucketAccessSpec `json:"spec,omitempty"`
229-
// +optional
230-
Status BucketAccessStatus `json:"status"`
231-
}
232286

233-
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
287+
Spec BucketAccessRequestSpec `json:"spec,omitempty"`
234288

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"`
239291
}
240292

241293
type BucketAccessRequestSpec struct {
242294
// +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+
245299
BucketAccessClassName string `json:"bucketAccessClassName"`
300+
246301
// +optional
247302
BucketAccessName string `json:"bucketAccessName,omitempty"`
248303
}
249304

250305
type BucketAccessRequestStatus struct {
251306
// +optional
252307
Message string `json:"message,omitempty"`
253-
// +optional
254-
AccessGranted bool `json:"accessGranted"`
255-
}
256308

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"`
268309
// +optional
269-
Status BucketAccessRequestStatus `json:"status"`
310+
AccessGranted bool `json:"accessGranted"`
270311
}
271312

272313
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -276,13 +317,3 @@ type BucketAccessRequestList struct {
276317
metav1.ListMeta `json:"metadata,omitempty"`
277318
Items []BucketAccessRequest `json:"items"`
278319
}
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

Comments
 (0)