Skip to content

Commit 59ab667

Browse files
authored
Merge pull request kubernetes-retired#39 from krishchow/update-spec-api
Update Spec+API versions
2 parents 1f821ec + 7be94a6 commit 59ab667

File tree

11 files changed

+389
-371
lines changed

11 files changed

+389
-371
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@
55
travis.yml
66
release-tools
77
bin
8+
.idea
9+
vendor

README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
COSI repos and images:
22

3-
[Spec](https://github.com/kubernetes-sigs/container-object-storage-interface-spec) \
4-
[API](https://github.com/kubernetes-sigs/container-object-storage-interface-api) \
5-
[Controller](https://github.com/kubernetes-sigs/container-object-storage-interface-controller) <br/>
3+
[Spec](https://sigs.k8s.io/container-object-storage-interface-spec) \
4+
[API](https://sigs.k8s.io/container-object-storage-interface-api) \
5+
[Controller](https://sigs.k8s.io/container-object-storage-interface-controller) <br/>
66
&emsp; - [images: cosi-controller](https://quay.io/repository/containerobjectstorage/objectstorage-controller?tab=tags) \
77
[Provisioner Sidecar](https://sigs.k8s.io/container-object-storage-interface-provisioner-sidecar) <br />
88
&emsp; - images: cosi-provisioner \
9-
[CSI Adapter](https://github.com/kubernetes-sigs/container-object-storage-interface-csi-adapter) <br />
9+
[CSI Adapter](https://sigs.k8s.io/container-object-storage-interface-csi-adapter) <br />
1010
&emsp; - images: cosi-node-adapter
1111

1212
<br />
@@ -28,7 +28,7 @@ COSI deprecated repos:
2828
If you are new to a SIG Storage project, check out this [contributing guide](https://github.com/kubernetes/community/blob/master/sig-storage/CONTRIBUTING.md)
2929
and the [community page](https://github.com/kubernetes/community/tree/master/sig-storage).
3030

31-
If you are new to the SIG Storage COSI project, check out the [spec](https://github.com/kubernetes-sigs/container-object-storage-interface-spec/blob/master/spec.md), [KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1979-object-storage-support), and [project board](https://github.com/orgs/kubernetes-sigs/projects/).
31+
If you are new to the SIG Storage COSI project, check out the [spec](https://sigs.k8s.io/container-object-storage-interface-spec/blob/master/spec.md), [KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1979-object-storage-support), and [project board](https://github.com/orgs/kubernetes-sigs/projects/).
3232

3333
Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).
3434

cmd/objectstorage-sidecar/app/objectstorage-sidecar.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"sigs.k8s.io/container-object-storage-interface-provisioner-sidecar/pkg/controller/bucketaccess"
1010
"sigs.k8s.io/container-object-storage-interface-provisioner-sidecar/pkg/grpcclient"
1111

12-
osspec "github.com/kubernetes-sigs/container-object-storage-interface-spec"
12+
osspec "sigs.k8s.io/container-object-storage-interface-spec"
1313

1414
"github.com/spf13/cobra"
1515

@@ -54,15 +54,18 @@ func (so *SidecarOptions) Run() {
5454

5555
klog.Infof("creating provisioner client")
5656
provisionerClient := osspec.NewProvisionerClient(grpcConn)
57+
identityClient := osspec.NewIdentityClient(grpcConn)
5758

5859
klog.Infof("discovering driver name")
5960
req := osspec.ProvisionerGetInfoRequest{}
60-
rsp, err := provisionerClient.ProvisionerGetInfo(ctx, &req)
61+
rsp, err := identityClient.ProvisionerGetInfo(ctx, &req)
6162
if err != nil {
6263
klog.Errorf("error calling ProvisionerGetInfo: %v", err)
6364
os.Exit(1)
6465
}
6566

67+
// TODO: go routine with health check to vendor driver
68+
6669
provisionerName := rsp.Name
6770
// TODO: Register provisioner using internal type
6871
klog.Info("This sidecar is working with the driver identified as: ", provisionerName)

cmd/sample-driver/driver-server.go

+23-10
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import (
3232

3333
"k8s.io/klog/v2"
3434

35-
cosi "github.com/kubernetes-sigs/container-object-storage-interface-spec"
35+
cosi "sigs.k8s.io/container-object-storage-interface-spec"
3636
)
3737

3838
var (
@@ -63,41 +63,54 @@ func (ds DriverServer) ProvisionerCreateBucket(ctx context.Context, req *cosi.Pr
6363
return nil, status.Error(codes.Unavailable, "Driver is missing version")
6464
}
6565

66-
err := ds.S3Client.MakeBucket(req.BucketName, "")
66+
s3 := req.Protocol.GetS3()
67+
if s3 == nil {
68+
return nil, status.Error(codes.Unavailable, "Driver is missing protocol")
69+
}
70+
71+
err := ds.S3Client.MakeBucket(s3.BucketName, "")
6772
if err != nil {
6873
// Check to see if the bucket already exists
69-
exists, errBucketExists := ds.S3Client.BucketExists(req.BucketName)
74+
exists, errBucketExists := ds.S3Client.BucketExists(s3.BucketName)
7075
if errBucketExists == nil && exists {
71-
klog.Info("Backend Bucket already exists", req.BucketName)
76+
klog.Info("Backend Bucket already exists", s3.BucketName)
7277
return &cosi.ProvisionerCreateBucketResponse{}, nil
7378
} else {
7479
klog.Error(err)
7580
return &cosi.ProvisionerCreateBucketResponse{}, err
7681
}
7782
}
78-
klog.Info("Successfully created Backend Bucket", req.BucketName)
83+
klog.Info("Successfully created Backend Bucket", s3.BucketName)
7984

8085
return &cosi.ProvisionerCreateBucketResponse{}, nil
8186
}
8287

8388
func (ds *DriverServer) ProvisionerDeleteBucket(ctx context.Context, req *cosi.ProvisionerDeleteBucketRequest) (*cosi.ProvisionerDeleteBucketResponse, error) {
89+
s3 := req.Protocol.GetS3()
90+
if s3 == nil {
91+
return nil, status.Error(codes.Unavailable, "Driver is missing protocol")
92+
}
8493

85-
if err := ds.S3Client.RemoveBucket(req.BucketName); err != nil {
86-
klog.Info("failed to delete bucket", req.BucketName)
94+
if err := ds.S3Client.RemoveBucket(s3.BucketName); err != nil {
95+
klog.Info("failed to delete bucket", s3.BucketName)
8796
return nil, err
88-
8997
}
98+
9099
return &cosi.ProvisionerDeleteBucketResponse{}, nil
91100
}
92101

93102
func (ds *DriverServer) ProvisionerGrantBucketAccess(ctx context.Context, req *cosi.ProvisionerGrantBucketAccessRequest) (*cosi.ProvisionerGrantBucketAccessResponse, error) {
94-
95103
creds, err := auth.GetNewCredentials()
96104
if err != nil {
97105
klog.Error("failed to generate new credentails")
98106
return nil, err
99107
}
100108

109+
s3 := req.Protocol.GetS3()
110+
if s3 == nil {
111+
return nil, status.Error(codes.Unavailable, "Driver is missing protocol")
112+
}
113+
101114
if err := ds.S3AdminClient.AddUser(context.Background(), creds.AccessKey, creds.SecretKey); err != nil {
102115
klog.Error("failed to create user", err)
103116
return nil, err
@@ -110,7 +123,7 @@ func (ds *DriverServer) ProvisionerGrantBucketAccess(ctx context.Context, req *c
110123
iampolicy.NewStatement(
111124
policy.Allow,
112125
iampolicy.NewActionSet("s3:*"),
113-
iampolicy.NewResourceSet(iampolicy.NewResource(req.GetBucketName()+"/*", "")),
126+
iampolicy.NewResourceSet(iampolicy.NewResource(s3.BucketName+"/*", "")),
114127
condition.NewFunctions(),
115128
)},
116129
}

go.mod

+4-3
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@ go 1.15
55
require (
66
github.com/go-ini/ini v1.62.0 // indirect
77
github.com/kubernetes-csi/csi-lib-utils v0.9.0
8-
github.com/kubernetes-sigs/container-object-storage-interface-api v0.0.0-20210112203836-a74c106d3ab3
9-
github.com/kubernetes-sigs/container-object-storage-interface-spec v0.0.0-20210107181053-ef523592ca74
108
github.com/minio/minio v0.0.0-20210112204746-e09196d62633
119
github.com/minio/minio-go v6.0.14+incompatible
10+
github.com/pkg/errors v0.9.1
1211
github.com/spf13/cobra v0.0.5
1312
github.com/spf13/viper v1.3.2
1413
golang.org/x/net v0.0.0-20201216054612-986b41b23924
1514
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324
16-
google.golang.org/grpc v1.34.0
15+
google.golang.org/grpc v1.35.0
1716
k8s.io/api v0.19.4
1817
k8s.io/apimachinery v0.19.4
1918
k8s.io/client-go v0.19.4
2019
k8s.io/klog/v2 v2.2.0
20+
sigs.k8s.io/container-object-storage-interface-api v0.0.0-20210308183412-eb167f7cca3c
21+
sigs.k8s.io/container-object-storage-interface-spec v0.0.0-20210224211525-dfa3af562c18
2122
)

go.sum

+11-9
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp
9696
github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
9797
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
9898
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
99-
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
99+
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
100100
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
101101
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
102102
github.com/colinmarc/hdfs/v2 v2.1.1/go.mod h1:M3x+k8UKKmxtFu++uAZ0OtDU8jR3jnaZIAc6yK4Ue0c=
@@ -115,6 +115,7 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
115115
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
116116
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
117117
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
118+
github.com/dave/jennifer v1.4.1/go.mod h1:7jEdnm+qBcxl8PC0zyp7vxcpSRnzXSt9r39tpTVGlwA=
118119
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
119120
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
120121
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -147,7 +148,7 @@ github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4s
147148
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
148149
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
149150
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
150-
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
151+
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
151152
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
152153
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
153154
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
@@ -421,10 +422,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
421422
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
422423
github.com/kubernetes-csi/csi-lib-utils v0.9.0 h1:TbuDmxoVqM+fvVkzG/7sShyX/8jUln0ElLHuETcsQJI=
423424
github.com/kubernetes-csi/csi-lib-utils v0.9.0/go.mod h1:8E2jVUX9j3QgspwHXa6LwyN7IHQDjW9jX3kwoWnSC+M=
424-
github.com/kubernetes-sigs/container-object-storage-interface-api v0.0.0-20210112203836-a74c106d3ab3 h1:SVbl8M9RAoLUqJ83eLxDWVyMHz09CZ+dkUjkR7kG9eo=
425-
github.com/kubernetes-sigs/container-object-storage-interface-api v0.0.0-20210112203836-a74c106d3ab3/go.mod h1:C7tjzC+nLe7H7+3UM/Z6a7F24yxOO8FSK3ZaVZrKDPQ=
426-
github.com/kubernetes-sigs/container-object-storage-interface-spec v0.0.0-20210107181053-ef523592ca74 h1:+i43Z3yKW7htLAATafmbZ7ULFwwT+8vwB7NMxZ1X3Ww=
427-
github.com/kubernetes-sigs/container-object-storage-interface-spec v0.0.0-20210107181053-ef523592ca74/go.mod h1:wojgWDesMMLuFza4p1YnpX3sdPeo0mDWmSbmPsxRDh0=
428425
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
429426
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
430427
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
@@ -776,6 +773,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
776773
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
777774
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
778775
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
776+
golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
779777
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
780778
golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
781779
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -962,9 +960,8 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ
962960
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
963961
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
964962
google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
965-
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
966-
google.golang.org/grpc v1.34.0 h1:raiipEjMOIC/TO2AvyTxP25XFdLxNIBwzDh3FM3XztI=
967-
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
963+
google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8=
964+
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
968965
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
969966
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
970967
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -1055,6 +1052,7 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
10551052
k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=
10561053
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
10571054
k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
1055+
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ=
10581056
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
10591057
k8s.io/kube-openapi v0.0.0-20200923155610-8b5066479488 h1:mNpvQf4lkIHNOXCoM+Veu/UXwA56Yx1J7hY1Tvcs/oM=
10601058
k8s.io/kube-openapi v0.0.0-20200923155610-8b5066479488/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
@@ -1065,6 +1063,10 @@ k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
10651063
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
10661064
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
10671065
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
1066+
sigs.k8s.io/container-object-storage-interface-api v0.0.0-20210308183412-eb167f7cca3c h1:GANfOgppBbhCKqGFDVnuluhJ5km8gqNDatXn5ULGUt8=
1067+
sigs.k8s.io/container-object-storage-interface-api v0.0.0-20210308183412-eb167f7cca3c/go.mod h1:yMgeGQDROJIdY1jymECN2ptefmQ4+e3EQB/S8gyIE0o=
1068+
sigs.k8s.io/container-object-storage-interface-spec v0.0.0-20210224211525-dfa3af562c18 h1:TIx7kV6/3ZSQ5BETBx1QG1Va28zv1LZAvqRjs28n8ss=
1069+
sigs.k8s.io/container-object-storage-interface-spec v0.0.0-20210224211525-dfa3af562c18/go.mod h1:kafkL5l/lTUrZXhVi/9p1GzpEE/ts29BkWkL3Ao33WU=
10681070
sigs.k8s.io/controller-runtime v0.6.3 h1:SBbr+inLPEKhvlJtrvDcwIpm+uhDvp63Bl72xYJtoOE=
10691071
sigs.k8s.io/controller-runtime v0.6.3/go.mod h1:WlZNXcM0++oyaQt4B7C2lEE5JYRs8vJUzRP4N4JpdAY=
10701072
sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=

pkg/controller/bucket/bucket_controller.go

+29-29
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package bucket
1919
import (
2020
"context"
2121
"fmt"
22+
"github.com/pkg/errors"
2223
"strings"
2324
"time"
2425

@@ -29,11 +30,11 @@ import (
2930
"k8s.io/client-go/util/retry"
3031
"k8s.io/client-go/util/workqueue"
3132

32-
"github.com/kubernetes-sigs/container-object-storage-interface-api/apis/objectstorage.k8s.io/v1alpha1"
33-
bucketclientset "github.com/kubernetes-sigs/container-object-storage-interface-api/clientset"
34-
"github.com/kubernetes-sigs/container-object-storage-interface-api/controller"
33+
"sigs.k8s.io/container-object-storage-interface-api/apis/objectstorage.k8s.io/v1alpha1"
34+
bucketclientset "sigs.k8s.io/container-object-storage-interface-api/clientset"
35+
"sigs.k8s.io/container-object-storage-interface-api/controller"
3536

36-
osspec "github.com/kubernetes-sigs/container-object-storage-interface-spec"
37+
osspec "sigs.k8s.io/container-object-storage-interface-spec"
3738

3839
"k8s.io/klog/v2"
3940

@@ -101,20 +102,28 @@ func (bl *bucketListener) Add(ctx context.Context, obj *v1alpha1.Bucket) error {
101102
}
102103

103104
req := osspec.ProvisionerCreateBucketRequest{
104-
BucketName: obj.Name,
105-
BucketContext: bl.getParams(obj),
105+
Parameters: bl.getParams(obj),
106106
}
107+
if req.Parameters == nil {
108+
req.Parameters = make(map[string]string)
109+
}
110+
111+
proto, err := obj.Spec.Protocol.ConvertToExternal()
112+
if err != nil {
113+
return errors.Wrap(err, "failed to parse protocol for API")
114+
}
115+
req.Protocol = proto
107116

108-
req.BucketContext["ProtocolVersion"] = obj.Spec.Protocol.Version
117+
req.Parameters["ProtocolVersion"] = obj.Spec.Protocol.Version
109118

110119
if obj.Spec.AnonymousAccessMode.Private {
111-
req.AnonymousBucketAccessMode = osspec.ProvisionerCreateBucketRequest_BUCKET_PRIVATE
120+
req.AnonymousBucketAccessMode = osspec.AnonymousBucketAccessMode_Private
112121
} else if obj.Spec.AnonymousAccessMode.PublicReadOnly {
113-
req.AnonymousBucketAccessMode = osspec.ProvisionerCreateBucketRequest_BUCKET_READ_ONLY
122+
req.AnonymousBucketAccessMode = osspec.AnonymousBucketAccessMode_ReadOnly
114123
} else if obj.Spec.AnonymousAccessMode.PublicReadWrite {
115-
req.AnonymousBucketAccessMode = osspec.ProvisionerCreateBucketRequest_BUCKET_WRITE_ONLY
124+
req.AnonymousBucketAccessMode = osspec.AnonymousBucketAccessMode_ReadWrite
116125
} else if obj.Spec.AnonymousAccessMode.PublicWriteOnly {
117-
req.AnonymousBucketAccessMode = osspec.ProvisionerCreateBucketRequest_BUCKET_READ_WRITE
126+
req.AnonymousBucketAccessMode = osspec.AnonymousBucketAccessMode_WriteOnly
118127
}
119128

120129
// TODO set grpc timeout
@@ -147,28 +156,19 @@ func (bl *bucketListener) Delete(ctx context.Context, obj *v1alpha1.Bucket) erro
147156
}
148157

149158
req := osspec.ProvisionerDeleteBucketRequest{
150-
BucketContext: bl.getParams(obj),
159+
Parameters: bl.getParams(obj),
160+
}
161+
if req.Parameters == nil {
162+
req.Parameters = make(map[string]string)
151163
}
152164

153-
switch obj.Spec.Protocol.Name {
154-
case v1alpha1.ProtocolNameS3:
155-
req.BucketName = obj.Spec.Protocol.S3.BucketName
156-
req.BucketContext["Region"] = obj.Spec.Protocol.S3.Region
157-
req.BucketContext["SignatureVersion"] = string(obj.Spec.Protocol.S3.SignatureVersion)
158-
req.BucketContext["Endpoint"] = obj.Spec.Protocol.S3.Endpoint
159-
case v1alpha1.ProtocolNameAzure:
160-
req.BucketName = obj.Spec.Protocol.AzureBlob.ContainerName
161-
req.BucketContext["StorageAccount"] = obj.Spec.Protocol.AzureBlob.StorageAccount
162-
case v1alpha1.ProtocolNameGCS:
163-
req.BucketName = obj.Spec.Protocol.GCS.BucketName
164-
req.BucketContext["ServiceAccount"] = obj.Spec.Protocol.GCS.ServiceAccount
165-
req.BucketContext["PrivateKeyName"] = obj.Spec.Protocol.GCS.PrivateKeyName
166-
req.BucketContext["ProjectID"] = obj.Spec.Protocol.GCS.ProjectID
167-
default:
168-
return fmt.Errorf("unknown protocol: %s", obj.Spec.Protocol.Name)
165+
proto, err := obj.Spec.Protocol.ConvertToExternal()
166+
if err != nil {
167+
return errors.Wrap(err, "failed to parse protocol for API")
169168
}
169+
req.Protocol = proto
170170

171-
req.BucketContext["ProtocolVersion"] = obj.Spec.Protocol.Version
171+
req.Parameters["ProtocolVersion"] = obj.Spec.Protocol.Version
172172

173173
// TODO set grpc timeout
174174
rsp, err := bl.provisionerClient.ProvisionerDeleteBucket(ctx, &req)

0 commit comments

Comments
 (0)