diff --git a/test/pod_test.go b/test/pod_test.go index 5f0b0b3a4854b241659a38867c7f9a9066a11cc5..3d129ebb0fe7eab979989894446a2e69a127b0cf 100644 --- a/test/pod_test.go +++ b/test/pod_test.go @@ -144,6 +144,12 @@ func (p *PodTestSuite) TestPodWithSubpath() { runTest(p, []string{p.config.IMAGE}, "ready", hostPathVolumeType) } +func (p *PodTestSuite) TestPodWithMultipleStorageClasses() { + p.kustomizeDir = "multiple-storage-classes" + + runTest(p, []string{p.config.IMAGE}, "ready", hostPathVolumeType) +} + func runTest(p *PodTestSuite, images []string, waitCondition, volumeType string) { kustomizeDir := testdataFile(p.kustomizeDir) diff --git a/test/testdata/multiple-storage-classes/kustomization.yaml b/test/testdata/multiple-storage-classes/kustomization.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6efccacb71f5a1807faf94fd47f8d560cb40277c --- /dev/null +++ b/test/testdata/multiple-storage-classes/kustomization.yaml @@ -0,0 +1,14 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ../../../deploy +- storage-class-shared.yaml +- pod.yaml +- pvc.yaml +patchesStrategicMerge: +- local-path-config.yaml +commonLabels: + app: local-path-provisioner +images: +- name: rancher/local-path-provisioner + newTag: dev diff --git a/test/testdata/multiple-storage-classes/local-path-config.yaml b/test/testdata/multiple-storage-classes/local-path-config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..91efc9ba9cc3ab8295a7c8d1b4149dc0cafbd293 --- /dev/null +++ b/test/testdata/multiple-storage-classes/local-path-config.yaml @@ -0,0 +1,23 @@ +kind: ConfigMap +apiVersion: v1 +metadata: + name: local-path-config + namespace: local-path-storage +data: + config.json: |- + { + "storageClassConfigs":{ + "local-path": { + "nodePathMap": [ + { + "node":"DEFAULT_PATH_FOR_NON_LISTED_NODES", + "paths":["/opt/local-path-provisioner"] + } + ] + }, + "local-path-shared": { + "sharedFilesystemPath": "/opt/local-path-provisioner-shared" + } + } + } + diff --git a/test/testdata/multiple-storage-classes/pod.yaml b/test/testdata/multiple-storage-classes/pod.yaml new file mode 100644 index 0000000000000000000000000000000000000000..25ea1b8c0e4d1b80d211eb6fd89f422528c5d611 --- /dev/null +++ b/test/testdata/multiple-storage-classes/pod.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Pod +metadata: + name: volume-test +spec: + containers: + - name: volume-test + image: nginx:stable-alpine + imagePullPolicy: IfNotPresent + volumeMounts: + - name: volv + mountPath: /data + - name: volv-shared + mountPath: /shared-data + ports: + - containerPort: 80 + volumes: + - name: volv + persistentVolumeClaim: + claimName: local-path-pvc + - name: volv-shared + persistentVolumeClaim: + claimName: local-path-shared-pvc diff --git a/test/testdata/multiple-storage-classes/pvc.yaml b/test/testdata/multiple-storage-classes/pvc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..453688b1da6bb29872813f730341d566dd57226c --- /dev/null +++ b/test/testdata/multiple-storage-classes/pvc.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: local-path-pvc +spec: + accessModes: + - ReadWriteOnce + storageClassName: local-path + resources: + requests: + storage: 128Mi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: local-path-shared-pvc +spec: + accessModes: + - ReadWriteMany + storageClassName: local-path-shared + resources: + requests: + storage: 128Mi diff --git a/test/testdata/multiple-storage-classes/storage-class-shared.yaml b/test/testdata/multiple-storage-classes/storage-class-shared.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6f4a362c3218c04664a94ed25472ca20e06c23a4 --- /dev/null +++ b/test/testdata/multiple-storage-classes/storage-class-shared.yaml @@ -0,0 +1,8 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: local-path-shared +provisioner: rancher.io/local-path +volumeBindingMode: Immediate +reclaimPolicy: Delete +