gcp-compute-persistent-disk-csi-driver

module
v1.3.2-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 21, 2021 License: Apache-2.0

README

Google Compute Engine Persistent Disk CSI Driver

WARNING: Manual deployment of this driver to your GKE cluster is not recommended. Instead users should use GKE to automatically deploy and manage the GCE PD CSI Driver (see GKE Docs).

DISCLAIMER: Manual deployment of the driver to your cluster is not officially supported by Google.

The Google Compute Engine Persistent Disk CSI Driver is a CSI Specification compliant driver used by Container Orchestrators to manage the lifecycle of Google Compute Engine Persistent Disks.

Project Status

Status: GA Latest stable image: k8s.gcr.io/cloud-provider-gcp/gcp-compute-persistent-disk-csi-driver:v1.3.0

Test Status
Kubernetes Integration
Driver Version Kubernetes Version Test Status
HEAD Latest HEAD Test Status
0.7.x stable HEAD Test Status
HEAD Latest HEAD (Migration ON) Test Status
HEAD stable-master HEAD (Migration ON) Test Status
CSI Compatibility

This plugin is compatible with CSI versions v1.2.0, v1.1.0, and v1.0.0

Kubernetes Compatibility

The following table captures the compatibility matrix of the core persistent disk driver binary gke.gcr.io/gcp-compute-persistent-disk-csi-driver

GCE PD CSI Driver\Kubernetes Version 1.17+
v0.7.x (beta) yes
v1.0.x (ga) yes
dev yes

The manifest bundle which captures all the driver components (driver pod which includes the containers csi-provisioner, csi-resizer, csi-snapshotter, gce-pd-driver, csi-driver-registrar; csi driver object, rbacs, pod security policies etc) can be picked up from the master branch overlays directory. We structure the overlays directory, per minor version of kubernetes because not all driver components can be used with all kubernetes versions. For example, v1 CSIDriver resources are supported in 1.18+ only, so stable-1-17 driver manifests use the v1beta1 version.

Example:

stable-1-19 overlays bundle can be used to deploy all the components of the driver on kubernetes 1.19.

stable-master overlays bundle can be used to deploy all the components of the driver on kubernetes master.

For more details about per k8s minor version overlays, please check this doc

Known Issues

See Github Issues

Plugin Features

CreateVolume Parameters
Parameter Values Default Description
type Any PD type (see GCP documentation), eg pd-ssd pd-balanced pd-standard Type allows you to choose between standard Persistent Disks or Solid State Drive Persistent Disks
replication-type none OR regional-pd none Replication type allows you to choose between Zonal Persistent Disks or Regional Persistent Disks
disk-encryption-kms-key Fully qualified resource identifier for the key to use to encrypt new disks. Empty string. Encrypt disk using Customer Managed Encryption Key (CMEK). See GKE Docs for details.
labels key1=value1,key2=value2 Labels allow you to assign custom GCE Disk labels.
Topology

This driver supports only one topology key: topology.gke.io/zone that represents availability by zone (e.g. us-central1-c, etc.).

CSI Windows Support

GCE PD driver starts to support CSI Windows with [CSI Proxy] (https://github.com/kubernetes-csi/csi-proxy). It requires csi-proxy.exe to be installed on every Windows node. Please see more details in CSI Windows page (docs/kubernetes/user-guides/windows.md)

Features in Development
Feature Stage Min Kubernetes Master Version Min Kubernetes Nodes Version Min Driver Version Deployment Overlay
Snapshots Beta 1.17 Any v1.0.0 stable-1-17, stable-1-18, stable-1-19, stable-master
Resize (Expand) Beta 1.16 1.16 v0.7.0 stable-1-17, stable-1-18, stable-1-19, stable-master
Windows* Beta 1.18 1.18 v1.1.0 stable-1-18, stable-1-19, stable-master

* For Windows, it is recommended to use this driver with CSI proxy v0.2.2+. The master version of driver requires disk v1beta2 group, which is only available in CSI proxy v0.2.2+

Future Features

See Github Issues

Driver Deployment

As part of the deployment process, the driver is deployed in a newly created namespace by default. The namespace will be deleted as part of the cleanup process.

Controller-level and node-level deployments will both have priorityClassName set, and the corresponding priority value is close to the maximum possible for user-created PriorityClasses.

Further Documentation

Local Development

Kubernetes

User Guides

Driver Development

Directories

Path Synopsis
cmd
gce-pd-csi-driver
Package main is the GCE PD CSI Driver entrypoint.
Package main is the GCE PD CSI Driver entrypoint.
pkg
This command filters a JUnit file such that only tests with a name matching a regular expression are passed through.
This command filters a JUnit file such that only tests with a name matching a regular expression are passed through.
test
k8s-integration
main.version is used to parse and compare GKE based versions.
main.version is used to parse and compare GKE based versions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL