kubernetes-sigs / container-object-storage-interface-csi-adapter Goto Github PK
View Code? Open in Web Editor NEWCSI driver to bootstrap COSI workloads
License: Apache License 2.0
CSI driver to bootstrap COSI workloads
License: Apache License 2.0
Create deployment yamls that will deploy the csi adapter that can be used to deploy just those components, or be part of a global deploy that would deploy all of object storage.
Other components of object storage have been using kustomize to do this, so this needs to fit into that scheme.
This repo should have Issue/PR templates similar to the other COSI repositories. This will make the process for opening up issues (and resolving them) more streamlined and consistent. repository
Currently, we are using the gRPC internal
error code for most of the errors. This is not really good practice, and we should instead replace these with using more informative/relevant error codes.
We are planning on adding a finalizer onto the Bucket Access Publish and removing the finalizer on Unpublish. But the behavior of this when the node dies is undefined. We are using ephemeral volumes, with the VolumeID as a part of the finalizer.
At an initial glance, if the pod is rescheduled with the same VolumeID onto another node, then we do not have any issues. We just need to validate that this is the behavior, and if it is not, plan another way to address this issue.
Prototype a CSI driver for the purpose of injecting provisioned bucket endpoint and credential into a Pod.
Now that kustomize files have been added to the root of the project, we need a getting started guide which explains how to deploy and concerns around it. The deployment step itself is a single command now:
kubectl create -k github.com/kubernetes-sigs/container-object-csi-adapter
Is your feature request related to a problem?/Why is this needed
We should provide feedback from the provisioner to the application pod when a COSI bucket is being created
Describe the solution you'd like in detail
TBD
Describe alternatives you've considered
This is more of a nice to have than required, we should provide feedback for UX where possible.
It looks like in fc868d0#diff-184694ad6baa9738a47d41dde3dfaa5f8d8ecccd555520740748c51c7d31223bR163 (from #32) code was added which retrieved Pod information from the apiserver from inside the CSI driver. However, the related RBAC manifest wasn't updated to let the objectstorage-csi-adapter-sa
get the "pods" resource, causing a Pod consuming a B/BA not to start:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 5s default-scheduler Successfully assigned default/object-storage-consumer to kind-control-plane
Warning FailedMount 1s (x4 over 5s) kubelet, kind-control-plane MountVolume.SetUp failed for volume "cosi-secrets" : rpc error: code = FailedPrecondition desc = pods "object-storage-consumer" is forbidden: User "system:serviceaccount:default:objectstorage-csi-adapter-sa" cannot get resource "pods" in API group "" in the namespace "default"
Adding this to the ClusterRole in resources/rbac.yaml
likely fixes this (untested, I can do a PR later).
What happened: CI for cosi-driver-sample
fails
What you expected to happen: CI for cosi-driver-sample
to succeed
How to reproduce this bug (as minimally and precisely as possible): Run a driver with the sidecar and the CSI adapter, then run a basic scenario launching a Pod consuming a Bucket
Environment:
kubectl version
), please list client and server: 1.20.2cosi-driver-sample
, custom branchWe need to add and remove a finalized for the volumeId during the on publish/unpublish steps respectively.
The current readme.md is out of date, and does not give guidelines for new persons interested in the project to easily get started and contribute.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.