Home

Awesome

License Go Report Card

PVC Operator

This operator builds upon the new Kubernetes operators SDK and used on different cloud providers.

Introduction

This operator makes using Kubernetes Persistent Volumes easier on cloud providers, by dynamically creating the required accounts, classes and more. It allows to use exactly the same Helm chart on all the supported providers, there is no need to create cloud specific Helm charts.

The Currently supported list of Providers/StorageClasses are:

Installation

serviceAccountName: pvc-operator

Cloud Specific Requirements

In case of AzureFile a Storage Account needs to be created. The operator handles the creation automatically but some permissions have to be set.

Usage

The given chart should include a Persistent Volume Claim which includes a StorageClass name and an Access Mode. If the chosen Access Mode is supported on the required cloud provider the operator will create a proper StorageClass. This class will be reused by other charts as well.

FAQ

1. How does this project uses Kubernetes Namespaces?

The operator supports multiple Kubernetes Namespaces.

2. How is the cloud provider determined?

To determine the cloud provider we use the metadata server accessible from every virtual machine within the cloud.

3. Do I need to add my cloud related credentials to this project?

No need, this project determines every credentials from the metadata server and uses the assumption that you have a couple of right because this Operator runs inside a Kubernetes cluster (IAM or instance profile roles, etc).

4. How come that the NFS type StorageClass can be used in any cloud provider?

The NFS StorageClass solution is based on the Kubernetes external-storages project. It uses it's own NFS server deployment which requires a ReadWriteOnly Kubernetes Persistent Volume and shares this across the cluster.

5. Why this project exists?

Here at Banzai Cloud we try to automate everything so you don't have to. If you need to provision a Kubernetes cluster please check out Pipeline. If you already have one, but you are struggling to find and configure the right Persistent Storage for your need then this project is for you.

6. What's next for this project for the near future?

7. Is this project production ready?

Although we use it internally, it's not yet. We need to add at least some unit tests and potentially an integration test too.