Abstract
Helm Storage Class documentation master file, created by sphinx-quickstart on Sun Apr 28 15:35:08 2024. You can adapt this file completely to your liking, but it should at least contain the root toctree
directive.
Storage Helm Chart#
Repository Contents#
Helm Charts
Meta Pages
Glossary#
- CSI#
Container Storage Interface, described in more detail here.
- CSIDriver#
A driver that enables a Kubernetes cluster to interact with storage devices described by the Container Storage Interface. This repository uses csi-driver-lvm and csi-driver-nfs
- csi-driver-lvm#
A CSI driver that enables dynamic provisioning of volumes via Logical Volume Manager volume groups. More information is available here.
- csi-driver-nfs#
A CSI driver that enables dynamic provisioning of volumes via NFS shares. More information is available here
- DaemonSet#
A Kubernetes workload object that is intended to run on all nodes in a cluster by default. Can be configured to ignore control plane nodes. More information is available here.
- kubelet#
An application that must run on every node in a Kubernetes cluster, responsible for interfacing with the container runtime and the other components of Kubernetes.
- LVM#
Logical Volume Manager, described in more detail here
- NFS#
Network File Storage, described in more detail here.
- OSSAR#
Open Source Static Analysis Runner, runs GitHub Actions Open Source Static Analysis tools on your repository. More information here
- RAID#
Redundant Array of Inexpensive Disks is a method of clustering cheap and easily replaced disks into an array that appears to an operating system as a single disk. More information is available here.
- PersistentVolume#
A Kubernetes object that is statically defined by a cluster administrator and may be bound to a PersistentVolumeClaim at runtime. More information is available here.
- PersistentVolumeClaim#
A Kubernetes object that may refer to a dynamically or statically provisioned persistent storage class. More information is available here.
- StorageClass#
A Kubernetes object that describes a persistent or ephemeral form of storage that may be provisioned by a cluster. Described in more detail here.
- Taint#
A condition applied to a Kubernetes node that can be used to prevent certain workloads from being run on it. More information is available here.
- Tolerations#
A condition that can be apply to a Kubernetes workload that can be used to allow certain workloads to ignore a Taint that has been applied to a node. More information is available here.
Local Chart Values#
- compat03x
CSI Driver LVM configuration
This file contains the settings required to set up a StorageClass that supports dynamic provisioning of Logical Volume Manager volumes.
Enable, if you want to install storage classes with v0.3.x backward-compatible
csi-lvm-sc-*
namescompat03x: false customCSISidecars: ### # To enable custom CSI Sidecars, you should # uncomment the lines in the code block below and set # `enabled: true`. # # Set to `false` by default. # # ```{code-block} yaml # :caption: CSI Sidecar Images # attacher: k8s.gcr.io/sig-storage/csi-attacher:v3.5.0 # livenessprobe: k8s.gcr.io/sig-storage/livenessprobe:v2.7.0 # provisioner: k8s.gcr.io/sig-storage/csi-provisioner:v3.2.1 # registrar: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.1 # resizer: k8s.gcr.io/sig-storage/csi-resizer:v1.6.0 # ``` enabled: false ### # Configure a custom {term}`kubelet` write path if necessary. kubernetes: kubeletPath: /var/lib/kubelet
- kubernetes
Configure a custom kubelet write path if necessary.
- lvm
Logical Volume Manager
This is where you will define the StorageClass for this driver along with a few other settings.
lvm: ### # This one you should change devicePattern: /dev/(nvme[0-9]n[0-9]|sd[a-z][0-9]) driverName: lvm.csi.metal-stack.io ### # You will want to change this for read-only file systems # For example, in Talos OS, set this to {file}`/var/etc/lvm`. hostWritePath: /etc/lvm ### # these are primarily for testing purposes storageClassStub: csi-lvm vgName: csi-lvm
- nodeSelector
Node Selection
The plugin DaemonSet will run on all nodes if it has a toleration, so it is not necessary to set a nodeSelector for it.
nodeSelector: plugin: kubernetes.io/os: linux provisioner: node-role.kubernetes.io/control-plane: true
- pluginImage
Plugin Image
Use this to configure settings for the CSI Plugin Image.
pluginImage: pullPolicy: IfNotPresent repository: ghcr.io/metal-stack/csi-driver-lvm tag: v0.5.2 ### # ```{rubric} Provisioner Image # ``` # --- # Use this to configure settings for the CSI Provisioner Image # # ```{literalinclude} /csi-driver-lvm/values.yaml # :language: yaml # :start-at: "provisionerImage:\n" # :end-at: " tag: v0.5.2\n" # ``` provisionerImage: pullPolicy: IfNotPresent repository: ghcr.io/metal-stack/csi-driver-lvm-provisioner tag: v0.5.2 ### # ```{rubric} Role Based Access Control # ``` # --- # Set `create: true` if you want to enable this. # # ```{literalinclude} /csi-driver-lvm/values.yaml # :language: yaml # :start-at: "rbac:\n" # :end-before: "####" # ``` rbac: create: true pspEnabled: true sidecarImages: attacher: k8s.gcr.io/sig-storage/csi-attacher:v3.5.0 livenessprobe: k8s.gcr.io/sig-storage/livenessprobe:v2.7.0 provisioner: k8s.gcr.io/sig-storage/csi-provisioner:v3.2.1 registrar: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.1 resizer: k8s.gcr.io/sig-storage/csi-resizer:v1.6.0
- provisionerImage
Provisioner Image
Use this to configure settings for the CSI Provisioner Image
provisionerImage: pullPolicy: IfNotPresent repository: ghcr.io/metal-stack/csi-driver-lvm-provisioner tag: v0.5.2
- rbac
Role Based Access Control
Set
create: true
if you want to enable this.rbac: create: true pspEnabled: true
- tolerations
Driver workload tolerations
Configure the driver to run on control plane or other tainted nodes by adding Tolerations here.
tolerations: plugin: # - key: node-role.kubernetes.io/master # operator: Exists # effect: NoSchedule # - key: node-role.kubernetes.io/control-plane # operator: Exists # effect: NoSchedule provisioner: # - key: node-role.kubernetes.io/master # operator: Exists # effect: NoSchedule # - key: node-role.kubernetes.io/control-plane # operator: Exists # effect: NoSchedule
Local Provisioner Plugin#
This chart depends on the static local provisioner plugin described in detail here.
The helm chart and templates are located in
charts/local-static-provisioner
.