Skip to content
Snippets Groups Projects
Select Git revision
  • c0b1bfac52cd8b1b96b0a604162337b73389da7d
  • master default protected
  • fix/blockmode-expansion-test
  • fix/blockmode-expansion
  • use-official-metadata-endpoint
  • versioning-policy
  • v1.5.3
  • v1.5.2
  • v1.5.1
  • v1.5.0
  • v1.4.0
  • v1.3.2
  • v1.3.1
  • v1.3.0
  • v1.2.3
  • v1.2.2
  • v1.2.1
  • v1.2.0
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
25 results

csi-driver

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Thomas Cyron authored
    c0b1bfac
    History

    Container Storage Interface driver for Hetzner Cloud

    IMPORTANT: This project is still in development and not ready production yet!

    Getting Started

    1. Create service accounts, cluster roles, and bindings:

      kubectl create -f deploy/kubernetes/attacher-rbac.yml
      kubectl create -f deploy/kubernetes/node-rbac.yml
      kubectl create -f deploy/kubernetes/provisioner-rbac.yml
    2. Add your API token to secret.yml and create it:

      kubectl create -f deploy/kubernetes/secret.yml
    3. Create the attacher, provisioner, and node registrar:

      kubectl create -f deploy/kubernetes/attacher.yml
      kubectl create -f deploy/kubernetes/node.yml
      kubectl create -f deploy/kubernetes/provisioner.yml
    4. Create the storage class:

      kubectl create -f deploy/kubernetes/storageclass.yml
    5. Make sure all pods are running and ready:

      kubectl get pods
    6. To test everything is working, create a persistent volume claim:

      kubectl create -f - <<EOF
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: csi-pvc
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
        storageClassName: hcloud-volumes
      EOF
    7. Create a pod which uses that volume:

      kubectl create -f - <<EOF
      kind: Pod
      apiVersion: v1
      metadata:
        name: my-csi-app
      spec:
        containers:
          - name: my-frontend
            image: busybox
            volumeMounts:
            - mountPath: "/data"
              name: my-csi-volume
            command: [ "sleep", "1000000" ]
        volumes:
          - name: my-csi-volume
            persistentVolumeClaim:
              claimName: csi-pvc
      EOF
    8. Once the pod is ready, exec a shell and check your volume is mounted at /data.

    License

    MIT license