The Linode COSI Driver is an implementation of the Kubernetes Container Object Storage Interface (COSI) standard. COSI provides a consistent and unified way to expose object storage to containerized workloads running in Kubernetes. This driver specifically enables integration with Linode Object Storage service, making it easier for Kubernetes applications to interact with Linode's scalable and reliable object storage infrastructure.
Follow these steps to get started with Linode COSI Driver:
-
Prerequisites:
- Install COSI Custom Resource Definitions.
kubectl create -k 'github.com/kubernetes-sigs/container-object-storage-interface/?ref=v0.2.0'
-
Installation:
-
Create new API token in Akamai Cloud Manager. The token must be configured with the following permissions:
- Object Storage - Read/Write
-
Install Linode COSI Driver using Helm.
helm install linode-cosi-driver \ ./helm/linode-cosi-driver/ \ --set=apiToken=<YOUR_LINODE_API_TOKEN> \ --namespace=linode-cosi-driver \ --create-namespace
-
-
Usage:
- Create Bucket Class (see the example.BucketClass.yaml).
kubectl create -f ./examples/example.BucketClass.yaml
- Create Bucket Access Class (see the example.BucketAccessClass.yaml).
kubectl create -f ./examples/example.BucketAccessClass.yaml
- Create Bucket Claim (see the example.BucketClaim.yaml).
kubectl create -f ./examples/example.BucketClaim.yaml
- Create Bucket Access Class (see the example.BucketAccess.yaml).
kubectl create -f ./examples/example.BucketAccess.yaml
- Use the
example-secret
secret in your workload, e.g. in deployment:
spec: template: spec: containers: - volumeMounts: - mountPath: /conf name: example-secret-vol volumes: - name: example-secret-vol secret: secretName: example-secret items: - key: BucketInfo path: BucketInfo # this is JSON formatted document
Here’s the updated table with descriptions added:
Parameter | Default | Values | Description |
---|---|---|---|
cosi.linode.com/v1/region |
https://techdocs.akamai.com/linode-api/reference/get-object-storage-endpoints | REQUIRED The region where the object storage bucket will be created. | |
cosi.linode.com/v1/acl |
private |
private , public-read , authenticated-read , public-read-write |
The access control list (ACL) policy that defines who can read or write to the bucket. |
cosi.linode.com/v1/cors |
disabled |
disabled , enabled |
Enables or disables Cross-Origin Resource Sharing (CORS) for the bucket. |
cosi.linode.com/v1/policy |
https://techdocs.akamai.com/cloud-computing/docs/define-access-and-permissions-using-bucket-policies | Defines custom bucket policies for fine-grained access control and permissions. |
Parameter | Default | Values | Description |
---|---|---|---|
cosi.linode.com/v1/permissions |
read_only |
read_only , read_write |
Defines the access permissions for the bucket, specifying whether users can only read data or also write to the bucket. |
Linode COSI Driver is licensed under the Apache 2.0 terms. Please review it before using or contributing to the project.
For any issues, questions, or support, please create an issue.
We welcome contributions! If you have ideas, bug reports, or want to contribute code, please check out our Contribution Guidelines.