hetznercloud / csi-driver

Kubernetes Container Storage Interface driver for Hetzner Cloud Volumes
MIT License
645 stars 103 forks source link
csi csi-driver csi-plugin hetzner-cloud hetzner-cloud-volumes kubernetes kubernetes-volumes

Container Storage Interface driver for Hetzner Cloud

GitHub Actions status codecov

This is a Container Storage Interface driver for Hetzner Cloud enabling you to use ReadWriteOnce Volumes within Kubernetes & other Container Orchestrators. Please note that this driver requires Kubernetes 1.19 or newer.

Getting Started

Depending on your Container Orchestrator you need to follow different steps to get started with the Hetzner Cloud csi-driver. You can also find other docs relevant to that Container Orchestrator behind the link:

Development

Setup a development environment

To setup a development environment, make sure you installed the following tools:

  1. Configure a HCLOUD_TOKEN in your shell session.

[!WARNING] The development environment runs on Hetzner Cloud servers which will induce costs.

  1. Deploy the development cluster:
make -C dev up
  1. Load the generated configuration to access the development cluster:
source dev/files/env.sh
  1. Check that the development cluster is healthy:
kubectl get nodes -o wide
  1. Start developing the CSI driver in the development cluster:
skaffold dev

On code change, skaffold will rebuild the image, redeploy it and print all logs from csi components.

⚠️ Do not forget to clean up the development cluster once are finished:

make -C dev down

Run the docker e2e tests

To run the integrations tests, make sure you installed the following tools:

  1. Run the following command to run the integrations tests:
go test -v -tags integration ./test/integration

Run the kubernetes e2e tests

The Hetzner Cloud CSI driver is tested against the official kubernetes e2e tests.

Before running the integrations tests, make sure you followed the Setup a development environment steps.

  1. Run the kubernetes e2e tests using the following command:
make -C test/e2e/kubernetes test

License

MIT license