Skip to main content

Deploying COSI

This document describes steps for Kubernetes administrators to setup Container Object Storage Interface (COSI) onto a Kubernetes cluster.

Overview

Following components that need to be deployed in Kubernetes to setup COSI.

  • CustomResourceDefinitions (CRDs)
  • Controller
  • Sidecar for the driver
  • Driver

Quick Start

Execute following commands to setup COSI:

# Install CRDs
kubectl create -k github.com/kubernetes-sigs/container-object-storage-interface-api

# Install controller
kubectl create -k github.com/kubernetes-sigs/container-object-storage-interface-controller

CustomResourceDefinitions

COSI acts on following custom resource definitions (CRDs):

  • BucketClaim - Represents a claim to provision a Bucket
  • BucketClass - Represents a class of Buckets with similar characteristics
  • Bucket - Represents a Bucket or its equivalent in the storage backend
  • BucketAccessClass - Represents a class of accessors with similar access requirements and authentication type
  • BucketAccess - Represents a resource to access a Bucket

All COSI custom resource definitions can be installed using kustomization file and kubectl with following command:

kubectl create -k github.com/kubernetes-sigs/container-object-storage-interface-api

Controller

COSI controller can be setup using the kustomization file from the container-object-storage-interface-controller repository with following command:

kubectl create -k github.com/kubernetes-sigs/container-object-storage-interface-controller

The controller will be deployed in the default namespace.

Driver & Sidecar

The sidecar of the driver along with the driver will be deployed along with the respective driver.