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

Update Spec+API versions #39

Merged
merged 2 commits into from
Mar 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@
travis.yml
release-tools
bin
.idea
vendor
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
COSI repos and images:

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

<br />
Expand All @@ -28,7 +28,7 @@ COSI deprecated repos:
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)
and the [community page](https://github.com/kubernetes/community/tree/master/sig-storage).

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/).
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/).

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

Expand Down
7 changes: 5 additions & 2 deletions cmd/objectstorage-sidecar/app/objectstorage-sidecar.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"sigs.k8s.io/container-object-storage-interface-provisioner-sidecar/pkg/controller/bucketaccess"
"sigs.k8s.io/container-object-storage-interface-provisioner-sidecar/pkg/grpcclient"

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

"github.com/spf13/cobra"

Expand Down Expand Up @@ -54,15 +54,18 @@ func (so *SidecarOptions) Run() {

klog.Infof("creating provisioner client")
provisionerClient := osspec.NewProvisionerClient(grpcConn)
identityClient := osspec.NewIdentityClient(grpcConn)

klog.Infof("discovering driver name")
req := osspec.ProvisionerGetInfoRequest{}
rsp, err := provisionerClient.ProvisionerGetInfo(ctx, &req)
rsp, err := identityClient.ProvisionerGetInfo(ctx, &req)
if err != nil {
klog.Errorf("error calling ProvisionerGetInfo: %v", err)
os.Exit(1)
}

// TODO: go routine with health check to vendor driver

provisionerName := rsp.Name
// TODO: Register provisioner using internal type
klog.Info("This sidecar is working with the driver identified as: ", provisionerName)
Expand Down
33 changes: 23 additions & 10 deletions cmd/sample-driver/driver-server.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import (

"k8s.io/klog/v2"

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

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

err := ds.S3Client.MakeBucket(req.BucketName, "")
s3 := req.Protocol.GetS3()
if s3 == nil {
return nil, status.Error(codes.Unavailable, "Driver is missing protocol")
}

err := ds.S3Client.MakeBucket(s3.BucketName, "")
if err != nil {
// Check to see if the bucket already exists
exists, errBucketExists := ds.S3Client.BucketExists(req.BucketName)
exists, errBucketExists := ds.S3Client.BucketExists(s3.BucketName)
if errBucketExists == nil && exists {
klog.Info("Backend Bucket already exists", req.BucketName)
klog.Info("Backend Bucket already exists", s3.BucketName)
return &cosi.ProvisionerCreateBucketResponse{}, nil
} else {
klog.Error(err)
return &cosi.ProvisionerCreateBucketResponse{}, err
}
}
klog.Info("Successfully created Backend Bucket", req.BucketName)
klog.Info("Successfully created Backend Bucket", s3.BucketName)

return &cosi.ProvisionerCreateBucketResponse{}, nil
}

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

if err := ds.S3Client.RemoveBucket(req.BucketName); err != nil {
klog.Info("failed to delete bucket", req.BucketName)
if err := ds.S3Client.RemoveBucket(s3.BucketName); err != nil {
klog.Info("failed to delete bucket", s3.BucketName)
return nil, err

}

return &cosi.ProvisionerDeleteBucketResponse{}, nil
}

func (ds *DriverServer) ProvisionerGrantBucketAccess(ctx context.Context, req *cosi.ProvisionerGrantBucketAccessRequest) (*cosi.ProvisionerGrantBucketAccessResponse, error) {

creds, err := auth.GetNewCredentials()
if err != nil {
klog.Error("failed to generate new credentails")
return nil, err
}

s3 := req.Protocol.GetS3()
if s3 == nil {
return nil, status.Error(codes.Unavailable, "Driver is missing protocol")
}

if err := ds.S3AdminClient.AddUser(context.Background(), creds.AccessKey, creds.SecretKey); err != nil {
klog.Error("failed to create user", err)
return nil, err
Expand All @@ -110,7 +123,7 @@ func (ds *DriverServer) ProvisionerGrantBucketAccess(ctx context.Context, req *c
iampolicy.NewStatement(
policy.Allow,
iampolicy.NewActionSet("s3:*"),
iampolicy.NewResourceSet(iampolicy.NewResource(req.GetBucketName()+"/*", "")),
iampolicy.NewResourceSet(iampolicy.NewResource(s3.BucketName+"/*", "")),
condition.NewFunctions(),
)},
}
Expand Down
7 changes: 4 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@ go 1.15
require (
github.com/go-ini/ini v1.62.0 // indirect
github.com/kubernetes-csi/csi-lib-utils v0.9.0
github.com/kubernetes-sigs/container-object-storage-interface-api v0.0.0-20210112203836-a74c106d3ab3
github.com/kubernetes-sigs/container-object-storage-interface-spec v0.0.0-20210107181053-ef523592ca74
github.com/minio/minio v0.0.0-20210112204746-e09196d62633
github.com/minio/minio-go v6.0.14+incompatible
github.com/pkg/errors v0.9.1
github.com/spf13/cobra v0.0.5
github.com/spf13/viper v1.3.2
golang.org/x/net v0.0.0-20201216054612-986b41b23924
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324
google.golang.org/grpc v1.34.0
google.golang.org/grpc v1.35.0
k8s.io/api v0.19.4
k8s.io/apimachinery v0.19.4
k8s.io/client-go v0.19.4
k8s.io/klog/v2 v2.2.0
sigs.k8s.io/container-object-storage-interface-api v0.0.0-20210308183412-eb167f7cca3c
sigs.k8s.io/container-object-storage-interface-spec v0.0.0-20210224211525-dfa3af562c18
)
20 changes: 11 additions & 9 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp
github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/colinmarc/hdfs/v2 v2.1.1/go.mod h1:M3x+k8UKKmxtFu++uAZ0OtDU8jR3jnaZIAc6yK4Ue0c=
Expand All @@ -115,6 +115,7 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/dave/jennifer v1.4.1/go.mod h1:7jEdnm+qBcxl8PC0zyp7vxcpSRnzXSt9r39tpTVGlwA=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand Down Expand Up @@ -147,7 +148,7 @@ github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4s
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
Expand Down Expand Up @@ -421,10 +422,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kubernetes-csi/csi-lib-utils v0.9.0 h1:TbuDmxoVqM+fvVkzG/7sShyX/8jUln0ElLHuETcsQJI=
github.com/kubernetes-csi/csi-lib-utils v0.9.0/go.mod h1:8E2jVUX9j3QgspwHXa6LwyN7IHQDjW9jX3kwoWnSC+M=
github.com/kubernetes-sigs/container-object-storage-interface-api v0.0.0-20210112203836-a74c106d3ab3 h1:SVbl8M9RAoLUqJ83eLxDWVyMHz09CZ+dkUjkR7kG9eo=
github.com/kubernetes-sigs/container-object-storage-interface-api v0.0.0-20210112203836-a74c106d3ab3/go.mod h1:C7tjzC+nLe7H7+3UM/Z6a7F24yxOO8FSK3ZaVZrKDPQ=
github.com/kubernetes-sigs/container-object-storage-interface-spec v0.0.0-20210107181053-ef523592ca74 h1:+i43Z3yKW7htLAATafmbZ7ULFwwT+8vwB7NMxZ1X3Ww=
github.com/kubernetes-sigs/container-object-storage-interface-spec v0.0.0-20210107181053-ef523592ca74/go.mod h1:wojgWDesMMLuFza4p1YnpX3sdPeo0mDWmSbmPsxRDh0=
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
Expand Down Expand Up @@ -776,6 +773,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
Expand Down Expand Up @@ -962,9 +960,8 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.34.0 h1:raiipEjMOIC/TO2AvyTxP25XFdLxNIBwzDh3FM3XztI=
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
Expand Down Expand Up @@ -1055,6 +1052,7 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ=
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
k8s.io/kube-openapi v0.0.0-20200923155610-8b5066479488 h1:mNpvQf4lkIHNOXCoM+Veu/UXwA56Yx1J7hY1Tvcs/oM=
k8s.io/kube-openapi v0.0.0-20200923155610-8b5066479488/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
Expand All @@ -1065,6 +1063,10 @@ k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
sigs.k8s.io/container-object-storage-interface-api v0.0.0-20210308183412-eb167f7cca3c h1:GANfOgppBbhCKqGFDVnuluhJ5km8gqNDatXn5ULGUt8=
sigs.k8s.io/container-object-storage-interface-api v0.0.0-20210308183412-eb167f7cca3c/go.mod h1:yMgeGQDROJIdY1jymECN2ptefmQ4+e3EQB/S8gyIE0o=
sigs.k8s.io/container-object-storage-interface-spec v0.0.0-20210224211525-dfa3af562c18 h1:TIx7kV6/3ZSQ5BETBx1QG1Va28zv1LZAvqRjs28n8ss=
sigs.k8s.io/container-object-storage-interface-spec v0.0.0-20210224211525-dfa3af562c18/go.mod h1:kafkL5l/lTUrZXhVi/9p1GzpEE/ts29BkWkL3Ao33WU=
sigs.k8s.io/controller-runtime v0.6.3 h1:SBbr+inLPEKhvlJtrvDcwIpm+uhDvp63Bl72xYJtoOE=
sigs.k8s.io/controller-runtime v0.6.3/go.mod h1:WlZNXcM0++oyaQt4B7C2lEE5JYRs8vJUzRP4N4JpdAY=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
Expand Down
58 changes: 29 additions & 29 deletions pkg/controller/bucket/bucket_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package bucket
import (
"context"
"fmt"
"github.com/pkg/errors"
"strings"
"time"

Expand All @@ -29,11 +30,11 @@ import (
"k8s.io/client-go/util/retry"
"k8s.io/client-go/util/workqueue"

"github.com/kubernetes-sigs/container-object-storage-interface-api/apis/objectstorage.k8s.io/v1alpha1"
bucketclientset "github.com/kubernetes-sigs/container-object-storage-interface-api/clientset"
"github.com/kubernetes-sigs/container-object-storage-interface-api/controller"
"sigs.k8s.io/container-object-storage-interface-api/apis/objectstorage.k8s.io/v1alpha1"
bucketclientset "sigs.k8s.io/container-object-storage-interface-api/clientset"
"sigs.k8s.io/container-object-storage-interface-api/controller"

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

"k8s.io/klog/v2"

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

req := osspec.ProvisionerCreateBucketRequest{
BucketName: obj.Name,
BucketContext: bl.getParams(obj),
Parameters: bl.getParams(obj),
}
if req.Parameters == nil {
req.Parameters = make(map[string]string)
}

proto, err := obj.Spec.Protocol.ConvertToExternal()
if err != nil {
return errors.Wrap(err, "failed to parse protocol for API")
}
req.Protocol = proto

req.BucketContext["ProtocolVersion"] = obj.Spec.Protocol.Version
req.Parameters["ProtocolVersion"] = obj.Spec.Protocol.Version

if obj.Spec.AnonymousAccessMode.Private {
req.AnonymousBucketAccessMode = osspec.ProvisionerCreateBucketRequest_BUCKET_PRIVATE
req.AnonymousBucketAccessMode = osspec.AnonymousBucketAccessMode_Private
} else if obj.Spec.AnonymousAccessMode.PublicReadOnly {
req.AnonymousBucketAccessMode = osspec.ProvisionerCreateBucketRequest_BUCKET_READ_ONLY
req.AnonymousBucketAccessMode = osspec.AnonymousBucketAccessMode_ReadOnly
} else if obj.Spec.AnonymousAccessMode.PublicReadWrite {
req.AnonymousBucketAccessMode = osspec.ProvisionerCreateBucketRequest_BUCKET_WRITE_ONLY
req.AnonymousBucketAccessMode = osspec.AnonymousBucketAccessMode_ReadWrite
} else if obj.Spec.AnonymousAccessMode.PublicWriteOnly {
req.AnonymousBucketAccessMode = osspec.ProvisionerCreateBucketRequest_BUCKET_READ_WRITE
req.AnonymousBucketAccessMode = osspec.AnonymousBucketAccessMode_WriteOnly
}

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

req := osspec.ProvisionerDeleteBucketRequest{
BucketContext: bl.getParams(obj),
Parameters: bl.getParams(obj),
}
if req.Parameters == nil {
req.Parameters = make(map[string]string)
}

switch obj.Spec.Protocol.Name {
case v1alpha1.ProtocolNameS3:
req.BucketName = obj.Spec.Protocol.S3.BucketName
req.BucketContext["Region"] = obj.Spec.Protocol.S3.Region
req.BucketContext["SignatureVersion"] = string(obj.Spec.Protocol.S3.SignatureVersion)
req.BucketContext["Endpoint"] = obj.Spec.Protocol.S3.Endpoint
case v1alpha1.ProtocolNameAzure:
req.BucketName = obj.Spec.Protocol.AzureBlob.ContainerName
req.BucketContext["StorageAccount"] = obj.Spec.Protocol.AzureBlob.StorageAccount
case v1alpha1.ProtocolNameGCS:
req.BucketName = obj.Spec.Protocol.GCS.BucketName
req.BucketContext["ServiceAccount"] = obj.Spec.Protocol.GCS.ServiceAccount
req.BucketContext["PrivateKeyName"] = obj.Spec.Protocol.GCS.PrivateKeyName
req.BucketContext["ProjectID"] = obj.Spec.Protocol.GCS.ProjectID
default:
return fmt.Errorf("unknown protocol: %s", obj.Spec.Protocol.Name)
proto, err := obj.Spec.Protocol.ConvertToExternal()
if err != nil {
return errors.Wrap(err, "failed to parse protocol for API")
}
req.Protocol = proto

req.BucketContext["ProtocolVersion"] = obj.Spec.Protocol.Version
req.Parameters["ProtocolVersion"] = obj.Spec.Protocol.Version

// TODO set grpc timeout
rsp, err := bl.provisionerClient.ProvisionerDeleteBucket(ctx, &req)
Expand Down
Loading