--- title: "Provision Object Storage with VAST COSI Driver" slug: "provision-object-storage-with-vast-cosi-driver-2-7" updated: 2026-11-04T00:45:08Z published: 2026-11-04T00:45:08Z canonical: "docs.vastdata.com/provision-object-storage-with-vast-cosi-driver-2-7" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.vastdata.com/llms.txt > Use this file to discover all available pages before exploring further. # Provision Object Storage with VAST COSI Driver ## VAST COSI Driver Workflow VAST COSI Driver lets you use the Kubernetes API to create and manage S3 buckets, and also to manage access to the buckets. After a bucket is provisioned, end users can perform object operations on the bucket. > **Note:** COSI buckets can be provisioned on the default VAST cluster tenant only. To provision a bucket with VAST COSI Driver: 1. In the VAST COSI Driver [Helm chart configuration file](/develop/docs/deploy-vast-cosi-driver-2-7#create-helm-chart-configuration-file-for-vast-cosi-driver), specify a [BucketClass](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#define-bucket-class) that provides parameters and attributes to be used when provisioning buckets through VAST COSI Driver. You can use a predefined bucket class provided with VAST COSI Driver, or you can define one or more custom bucket classes. 2. Create and apply a Kubernetes YAML configuration file with the following definitions: - A [BucketClaim](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#define-bucket-claim), which is a request to create a bucket of the bucket class specified for the driver. - A [BucketAccessClass](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#define-bucket-access-class), which provides various options and settings for bucket access requests made through the driver. - A [BucketAccess](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#define-bucket-access) request, which contains credentials that can be used to access the bucket. ### Define Bucket Class A bucket class (`BucketClass`) acts as a container for various parameters and attributes that VAST COSI Driver uses when creating buckets. You define a bucket class in the VAST COSI Driver [Helm chart configuration file](/develop/docs/deploy-vast-cosi-driver-2-7#create-helm-chart-configuration-file-for-vast-cosi-driver). A minimal bucket class would specify a virtual IP pool, a storage path, and a view policy, for example: ``` bucketClasses: vastdata-bucket: vipPool: cosi_vippool storagePath: /buckets viewPolicy: my_s3_policy <...> ``` The bucket class name must be within 27 characters. For options that can be specified for a bucket class, see [Bucket Class Option Reference](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#bucket-class-option-reference). ### Bucket Class Option Reference You specify bucket class options in the [Helm chart configuration file](/develop/docs/deploy-vast-cosi-driver-2-7#create-helm-chart-configuration-file-for-vast-cosi-driver) created for VAST COSI Driver during initial deployment. > **Tip:** In addition to the VAST COSI Driver options listed above, VAST COSI Driver can pass through parameters that are accepted by the VAST REST API's `/api/v1/views/` endpoint of your VAST cluster. For the endpoint parameter reference, see VAST REST API documentation. #### bucketOwner Sets an existing user account as the [bucket owner](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#set-bucket-owner). The bucket owner can be a VMS local user of your choice, or it can be a user account on a non-VAST provider, such as Active Directory, LDAP or NIS. The `bucketOwner` option must be specified together with `bucketOwnerContext` that indicates the provider type. Syntax in Helm chart configuration file: ``` bucketOwner: ``` Syntax in Kubernetes YAML: ``` bucket_owner: ``` #### bucketOwnerContext This option is specified together with `bucketOwner` to indicate the type of the authentication provider from which to retrieve the [bucket owner](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#set-bucket-owner) user account. Syntax in Helm chart configuration file: ``` bucketOwnerContext: ``` Syntax in Kubernetes YAML: ``` bucket_owner_context: ``` Valid values for `<context>` include `AD` (Active Directory), `LDAP`, `NIS`, and `local`. #### deletionPolicy Determines the action to be taken when the bucket object is deleted: - `Delete` (default). Delete the underlying bucket and associated VMS user. - `Retain`. Do not delete the underlying bucket and associated VMS user. Syntax in Helm chart configuration file: ``` deletionPolicy: "Delete|Retain" ``` Syntax in Kubernetes YAML: ``` deletion_policy: "Delete|Retain" ``` #### maxSize Creates a VAST directory [quota](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#set-quotas) on the VAST cluster bucket path, imposing a hard limit on the cluster's logical capacity that can be consumed by the bucket. Syntax in Helm chart configuration file: ``` maxSize= ``` Syntax in Kubernetes YAML: ``` max_size= ``` Use [Kubernetes units](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory) to specify the required size. Example: ``` maxSize=30Gi ``` #### s3_versioning When set to `true`, the bucket is provisioned as a versioned S3 bucket. Default is `false`. Syntax in Helm chart configuration file: ``` s3_versioning: "true"|"false" ``` Syntax in Kubernetes YAML: ``` s3_versioning: "true"|"false" ``` #### scheme Determines whether to use HTTP (default) or HTTPS when creating the bucket endpoint. If TLS is configured on the VAST cluster, set it to `https`. Syntax: ``` scheme: "http"|"https" ``` #### secretName and secretNamespace These options lets you supply information for communicating with the VAST cluster: - `secretName` specifies the name of the [Kubernetes secret](/develop/docs/deploy-vast-cosi-driver-2-7#create-kubernetes-secret-for-vast-cosi-driver) that contains information about the VAST cluster on which to provision buckets for this particular bucket class, the corresponding VMS user credentials or API token and, optionally, the SSL certificate. For more information, see [Provision Buckets on Multiple VAST Cluster Tenants](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#provision-buckets-on-multiple-vast-cluster-tenants). - `secretNamespace` specifies the namespace where the [Kubernetes secret](/develop/docs/deploy-vast-csi-driver-2-7#create-kubernetes-secret-for-vast-cosi-driver) was created. If not specified, the parameter defaults to the namespace where the driver is installed. Syntax in Helm chart configuration file: ``` secretName: "" secretNamespace: "" ``` Syntax in Kubernetes YAML: ``` vastdata.com/secret-name: "" vastdata.com/secret-namespace: "" ``` If the secret and its namespace are defined as global options in the Helm chart configuration file, they are automatically propagated to each bucket class. In this case, you do not need to explicitly include the secrets with their corresponding namespaces in the bucket class definitions. #### storagePath (root_export) A storage path within the VAST cluster to be used when provisioning storage for COSI buckets. VAST COSI Driver will automatically create a view for each bucket being provisioned. > **Caution:** You can specify '/' as the `<path>`. This option is required when defining a bucket class in the Helm chart configuration file. Syntax in Helm chart configuration file: ``` storagePath: "" ``` Syntax in Kubernetes YAML: ``` root_export: "" ``` #### lifecycleRules One or more [VAST lifecycle rules](/develop/docs/provision-object-storage-with-vast-cosi-driver-2-7#configure-lifecycle-rules) that enforce deletion of certain objects when their expiration conditions are met. Syntax in Helm chart configuration file: ``` lifecycleRules: - name: