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

Commit 37e4348

Browse files
committed
fix(review/1): added event constants
Signed-off-by: Mateusz Urbanek <[email protected]>
1 parent 621cf91 commit 37e4348

File tree

2 files changed

+29
-50
lines changed

2 files changed

+29
-50
lines changed

Diff for: pkg/bucket/bucket_controller.go

+14-23
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ import (
2020
"fmt"
2121
"strings"
2222

23+
"github.com/pkg/errors"
24+
"google.golang.org/grpc/codes"
25+
"google.golang.org/grpc/status"
2326
v1 "k8s.io/api/core/v1"
2427
kubeerrors "k8s.io/apimachinery/pkg/api/errors"
2528
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -28,17 +31,13 @@ import (
2831
kube "k8s.io/client-go/kubernetes"
2932
"k8s.io/client-go/tools/record"
3033
"k8s.io/klog/v2"
31-
3234
"sigs.k8s.io/container-object-storage-interface-api/apis/objectstorage/v1alpha1"
3335
buckets "sigs.k8s.io/container-object-storage-interface-api/client/clientset/versioned"
3436
bucketapi "sigs.k8s.io/container-object-storage-interface-api/client/clientset/versioned/typed/objectstorage/v1alpha1"
37+
"sigs.k8s.io/container-object-storage-interface-api/controller/events"
3538
"sigs.k8s.io/container-object-storage-interface-provisioner-sidecar/pkg/consts"
3639
cosi "sigs.k8s.io/container-object-storage-interface-spec"
3740
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
38-
39-
"github.com/pkg/errors"
40-
"google.golang.org/grpc/codes"
41-
"google.golang.org/grpc/status"
4241
)
4342

4443
// BucketListener manages Bucket objects
@@ -65,15 +64,9 @@ func NewBucketListener(driverName string, client cosi.ProvisionerClient) *Bucket
6564

6665
// Add attempts to create a bucket for a given bucket. This function must be idempotent
6766
//
68-
// Recorded events
69-
//
70-
// MissingBucketClassName - BucketClassName was not defined for the inputBucket
71-
// InvalidBucketClass - BucketClass provided in the BucketClaim does not exist
72-
//
7367
// Return values
74-
//
75-
// nil - Bucket successfully provisioned
76-
// non-nil err - Internal error [requeue'd with exponential backoff]
68+
// - nil - Bucket successfully provisioned
69+
// - non-nil err - Internal error [requeue'd with exponential backoff]
7770
func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket) error {
7871
bucket := inputBucket.DeepCopy()
7972

@@ -84,7 +77,7 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
8477

8578
if bucket.Spec.BucketClassName == "" {
8679
err = errors.New(fmt.Sprintf("BucketClassName not defined for bucket %s", bucket.ObjectMeta.Name))
87-
b.recordEvent(inputBucket, v1.EventTypeWarning, "MissingBucketClassName", "BucketClassName was not defined in the Bucket")
80+
b.recordEvent(inputBucket, v1.EventTypeWarning, events.ProvisioningFailed, "BucketClassName was not defined in the Bucket")
8881
return err
8982
}
9083

@@ -114,7 +107,7 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
114107
if bucket.Spec.Parameters == nil {
115108
bucketClass, err := b.bucketClasses().Get(ctx, bucket.Spec.BucketClassName, metav1.GetOptions{})
116109
if kubeerrors.IsNotFound(err) {
117-
b.recordEvent(inputBucket, v1.EventTypeWarning, "InvalidBucketClass", "BucketClass provided in the BucketClaim does not exist")
110+
b.recordEvent(inputBucket, v1.EventTypeWarning, events.ProvisioningFailed, "BucketClass provided in the BucketClaim does not exist")
118111
return err
119112
} else if err != nil {
120113
klog.V(3).ErrorS(err, "Error fetching bucketClass",
@@ -141,7 +134,7 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
141134
rsp, err := b.provisionerClient.DriverCreateBucket(ctx, req)
142135
if err != nil {
143136
if status.Code(err) != codes.AlreadyExists {
144-
b.recordEvent(inputBucket, v1.EventTypeWarning, status.Code(err).String(), "Failed to create bucket")
137+
b.recordEvent(inputBucket, v1.EventTypeWarning, events.ProvisioningFailed, "Failed to create bucket")
145138
return errors.Wrap(err, "Failed to create bucket")
146139
}
147140
}
@@ -215,9 +208,8 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
215208

216209
// Update attempts to reconcile changes to a given bucket. This function must be idempotent
217210
// Return values
218-
//
219-
// nil - Bucket successfully reconciled
220-
// non-nil err - Internal error [requeue'd with exponential backoff]
211+
// - nil - Bucket successfully reconciled
212+
// - non-nil err - Internal error [requeue'd with exponential backoff]
221213
func (b *BucketListener) Update(ctx context.Context, old, new *v1alpha1.Bucket) error {
222214
klog.V(3).InfoS("Update Bucket",
223215
"name", old.Name)
@@ -283,9 +275,8 @@ func (b *BucketListener) Update(ctx context.Context, old, new *v1alpha1.Bucket)
283275
// Delete function is called when the bucket was not able to add finalizers while creation.
284276
// Hence we will take care of removing the BucketClaim finalizer before deleting the Bucket object.
285277
// Return values
286-
//
287-
// nil - Bucket successfully deleted
288-
// non-nil err - Internal error [requeue'd with exponential backoff]
278+
// - nil - Bucket successfully deleted
279+
// - non-nil err - Internal error [requeue'd with exponential backoff]
289280
func (b *BucketListener) Delete(ctx context.Context, inputBucket *v1alpha1.Bucket) error {
290281
klog.V(3).InfoS("Delete Bucket",
291282
"name", inputBucket.ObjectMeta.Name,
@@ -359,7 +350,7 @@ func (b *BucketListener) deleteBucketOp(ctx context.Context, bucket *v1alpha1.Bu
359350

360351
if _, err := b.provisionerClient.DriverDeleteBucket(ctx, req); err != nil {
361352
if status.Code(err) != codes.NotFound {
362-
b.recordEvent(bucket, v1.EventTypeWarning, status.Code(err).String(), "Failed to delete bucket")
353+
b.recordEvent(bucket, v1.EventTypeWarning, events.BucketDeleteFailed, "Failed to delete bucket")
363354
return err
364355
}
365356
}

Diff for: pkg/bucketaccess/bucketaccess_controller.go

+15-27
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ import (
2222
"strings"
2323
"time"
2424

25+
"github.com/pkg/errors"
26+
"google.golang.org/grpc/codes"
27+
"google.golang.org/grpc/status"
2528
v1 "k8s.io/api/core/v1"
2629
kubeerrors "k8s.io/apimachinery/pkg/api/errors"
2730
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -31,18 +34,14 @@ import (
3134
kubecorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
3235
"k8s.io/client-go/tools/record"
3336
"k8s.io/klog/v2"
34-
3537
cosiapi "sigs.k8s.io/container-object-storage-interface-api/apis"
3638
"sigs.k8s.io/container-object-storage-interface-api/apis/objectstorage/v1alpha1"
3739
buckets "sigs.k8s.io/container-object-storage-interface-api/client/clientset/versioned"
3840
bucketapi "sigs.k8s.io/container-object-storage-interface-api/client/clientset/versioned/typed/objectstorage/v1alpha1"
41+
"sigs.k8s.io/container-object-storage-interface-api/controller/events"
3942
"sigs.k8s.io/container-object-storage-interface-provisioner-sidecar/pkg/consts"
4043
cosi "sigs.k8s.io/container-object-storage-interface-spec"
4144
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
42-
43-
"github.com/pkg/errors"
44-
"google.golang.org/grpc/codes"
45-
"google.golang.org/grpc/status"
4645
)
4746

4847
// BucketAccessListener manages Bucket objects
@@ -67,16 +66,9 @@ func NewBucketAccessListener(driverName string, client cosi.ProvisionerClient) (
6766

6867
// Add attempts to provision credentials to access a given bucket. This function must be idempotent
6968
//
70-
// Recorded events
71-
//
72-
// BucketNotReady - BucketAccess can't be granted to bucket not in Ready state and without a bucketID
73-
// MissingServiceAccountName - Must define ServiceAccountName when AuthenticationType is IAM
74-
// InvalidBucketAccessClass - BucketAccessClass provided in the BucketAccess does not exist
75-
//
7669
// Return values
77-
//
78-
// nil - BucketAccess successfully granted
79-
// non-nil err - Internal error [requeue'd with exponential backoff]
70+
// - nil - BucketAccess successfully granted
71+
// - non-nil err - Internal error [requeue'd with exponential backoff]
8072
func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1alpha1.BucketAccess) error {
8173
bucketAccess := inputBucketAccess.DeepCopy()
8274

@@ -104,7 +96,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
10496

10597
bucketAccessClass, err := bal.bucketAccessClasses().Get(ctx, bucketAccessClassName, metav1.GetOptions{})
10698
if kubeerrors.IsNotFound(err) {
107-
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, "InvalidBucketAccessClass", "BucketAccessClass provided in the BucketAccess does not exist")
99+
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, events.GrantingAccessFailed, "BucketAccessClass provided in the BucketAccess does not exist")
108100
return err
109101
} else if err != nil {
110102
klog.ErrorS(err, "Failed to fetch bucketAccessClass", "bucketAccessClass", bucketAccessClassName)
@@ -144,7 +136,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
144136
}
145137

146138
if authType == cosi.AuthenticationType_IAM && bucketAccess.Spec.ServiceAccountName == "" {
147-
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, "MissingServiceAccountName", "Must define ServiceAccountName when AuthenticationType is IAM")
139+
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, events.GrantingAccessFailed, "Must define ServiceAccountName when AuthenticationType is IAM")
148140
return errors.New("Must define ServiceAccountName when AuthenticationType is IAM")
149141
}
150142

@@ -162,10 +154,8 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
162154
return errors.Wrap(err, "Failed to fetch bucket")
163155
}
164156

165-
if bucket.Status.BucketID == "" {
166-
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, "BucketNotReady", "BucketAccess can't be granted to bucket not in Ready state and without a bucketID")
167-
}
168157
if bucket.Status.BucketReady != true || bucket.Status.BucketID == "" {
158+
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, events.WaitingForBucket, "BucketAccess can't be granted to bucket not in Ready state and without a bucketID")
169159
return errors.New("BucketAccess can't be granted to bucket not in Ready state and without a bucketID")
170160
}
171161

@@ -182,7 +172,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
182172
rsp, err := bal.provisionerClient.DriverGrantBucketAccess(ctx, req)
183173
if err != nil {
184174
if status.Code(err) != codes.AlreadyExists {
185-
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, status.Code(err).String(), "Failed to grant access")
175+
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, events.GrantingAccessFailed, "Failed to grant access")
186176
return errors.Wrap(err, "failed to grant access")
187177
}
188178

@@ -306,9 +296,8 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
306296

307297
// Update attempts to reconcile changes to a given bucketAccess. This function must be idempotent
308298
// Return values
309-
//
310-
// nil - BucketAccess successfully reconciled
311-
// non-nil err - Internal error [requeue'd with exponential backoff]
299+
// - nil - BucketAccess successfully reconciled
300+
// - non-nil err - Internal error [requeue'd with exponential backoff]
312301
func (bal *BucketAccessListener) Update(ctx context.Context, old, new *v1alpha1.BucketAccess) error {
313302
klog.V(3).InfoS("Update BucketAccess",
314303
"name", old.ObjectMeta.Name)
@@ -328,9 +317,8 @@ func (bal *BucketAccessListener) Update(ctx context.Context, old, new *v1alpha1.
328317

329318
// Delete attemps to delete a bucketAccess. This function must be idempotent
330319
// Return values
331-
//
332-
// nil - BucketAccess successfully deleted
333-
// non-nil err - Internal error [requeue'd with exponential backoff]
320+
// - nil - BucketAccess successfully deleted
321+
// - non-nil err - Internal error [requeue'd with exponential backoff]
334322
func (bal *BucketAccessListener) Delete(ctx context.Context, bucketAccess *v1alpha1.BucketAccess) error {
335323
klog.V(3).InfoS("Delete BucketAccess",
336324
"name", bucketAccess.ObjectMeta.Name,
@@ -363,7 +351,7 @@ func (bal *BucketAccessListener) deleteBucketAccessOp(ctx context.Context, bucke
363351

364352
// First we revoke the bucketAccess from the driver
365353
if _, err := bal.provisionerClient.DriverRevokeBucketAccess(ctx, req); err != nil {
366-
bal.recordEvent(bucketAccess, v1.EventTypeWarning, status.Code(err).String(), "Failed to revoke bucket access")
354+
bal.recordEvent(bucketAccess, v1.EventTypeWarning, events.RevokingAccessFailed, "Failed to revoke bucket access")
367355
return errors.Wrap(err, "failed to revoke access")
368356
}
369357

0 commit comments

Comments
 (0)