From b595865d76e000dbfbcf624833f6dc0e574025a2 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 10 Mar 2021 08:52:35 +0100 Subject: [PATCH 1/2] deploy: enable CSI ephemeral inline volume testing At least one line volume must be defined, otherwise the tests get skipped. --- deploy/kubernetes-1.18/test-driver.yaml | 2 ++ deploy/kubernetes-1.20/test-driver.yaml | 2 ++ deploy/kubernetes-distributed/test-driver.yaml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/deploy/kubernetes-1.18/test-driver.yaml b/deploy/kubernetes-1.18/test-driver.yaml index 7133f20dc..d523dfa1f 100644 --- a/deploy/kubernetes-1.18/test-driver.yaml +++ b/deploy/kubernetes-1.18/test-driver.yaml @@ -20,3 +20,5 @@ DriverInfo: singleNodeVolume: true snapshotDataSource: true topology: true +InlineVolumes: +- shared: true diff --git a/deploy/kubernetes-1.20/test-driver.yaml b/deploy/kubernetes-1.20/test-driver.yaml index 7133f20dc..d523dfa1f 100644 --- a/deploy/kubernetes-1.20/test-driver.yaml +++ b/deploy/kubernetes-1.20/test-driver.yaml @@ -20,3 +20,5 @@ DriverInfo: singleNodeVolume: true snapshotDataSource: true topology: true +InlineVolumes: +- shared: true diff --git a/deploy/kubernetes-distributed/test-driver.yaml b/deploy/kubernetes-distributed/test-driver.yaml index 85af032c7..d681160d1 100644 --- a/deploy/kubernetes-distributed/test-driver.yaml +++ b/deploy/kubernetes-distributed/test-driver.yaml @@ -16,3 +16,5 @@ DriverInfo: persistence: true singleNodeVolume: true topology: true +InlineVolumes: +- shared: true From 93d4ef8347cbc7f8f49665e7ca85a607d90c2017 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Tue, 9 Mar 2021 10:46:41 +0100 Subject: [PATCH 2/2] CSI ephemeral volumes: use fixed size With storage capacity simulation enabled, trying to create ephemeral volumes with the default maximum volume size may have failed: Warning FailedMount 6s (x5 over 14s) kubelet MountVolume.SetUp failed for volume "ephemeral-volume" : rpc error: code = ResourceExhausted desc = not enough capacity: have 100Gi, need 1Ti Using a smaller size is better because then more than one volume can be created per host. Even better would be to also add a parameter for it, but that can be added later. --- pkg/hostpath/nodeserver.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/hostpath/nodeserver.go b/pkg/hostpath/nodeserver.go index 9fd4f260a..bb7e8c9ef 100644 --- a/pkg/hostpath/nodeserver.go +++ b/pkg/hostpath/nodeserver.go @@ -64,7 +64,9 @@ func (hp *hostPath) NodePublishVolume(ctx context.Context, req *csi.NodePublishV volID := req.GetVolumeId() volName := fmt.Sprintf("ephemeral-%s", volID) kind := req.GetVolumeContext()[storageKind] - vol, err := hp.createVolume(req.GetVolumeId(), volName, maxStorageCapacity, mountAccess, ephemeralVolume, kind) + // Configurable size would be nice. For now we use a small, fixed volume size of 100Mi. + volSize := int64(100 * 1024 * 1024) + vol, err := hp.createVolume(req.GetVolumeId(), volName, volSize, mountAccess, ephemeralVolume, kind) if err != nil && !os.IsExist(err) { glog.Error("ephemeral mode failed to create volume: ", err) return nil, err