

More info about these APIs can be found in the official COSI proposal - Self-Service The two APIs, namely, BucketAccess and BucketAccessClass are used to denote access credentials and policies for authentication. Since Object Storage is always authenticated, and over the network, access credentials are required to access buckets. The BucketClass’ counterpart in the file/block device world is StorageClass. In a nutshell, Bucket and BucketClaim can be considered to be similar to PersistentVolume and PersistentVolumeClaim respectively. In addition, two more APIs for managing access to buckets are also defined: COSI defines three Kubernetes APIs aimed at managing them The COSI API is centered around buckets, since bucket is the unit abstraction for object storage.
#Impact client 1.12 driver
The COSI Driver is the vendor specific component that receives requests from the sidecar and calls the appropriate vendor APIs to create buckets, manage their lifecycle and manage access to them.
#Impact client 1.12 drivers
This component uses a standardized gRPC protocol that vendor drivers are expected to satisfy. The COSI Sidecar acts as a translator between COSI API requests and vendor-specific COSI Drivers.

Only one is needed even if multiple object storage providers are used in the cluster. One instance of the controller manager is required per kubernetes cluster.


It is responsible for fielding requests for bucket creation, updates, deletion and access management. The COSI Controller Manager acts as the main controller that processes changes to COSI API objects. In contrast, it is not possible to port from AWS S3 and Google Cloud’s GCS or vice versa. it is possible to port from AWS S3 to Ceph, or AWS S3 to MinIO and back as they all use S3 API. Portability across vendors is only possible when both vendors support a common datapath-API.
