From bb387ab6805e3bf6eaa36af8aec1eb3c15c7ef3c Mon Sep 17 00:00:00 2001 From: Alexander Wels Date: Tue, 30 Jul 2019 09:24:15 -0400 Subject: [PATCH] Pass provisionOnNode annotation to PVC if on data volume. Signed-off-by: Alexander Wels --- pkg/controller/datavolume-controller.go | 4 ++++ pkg/controller/datavolume-controller_test.go | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/pkg/controller/datavolume-controller.go b/pkg/controller/datavolume-controller.go index 110ef99011..b462211c99 100644 --- a/pkg/controller/datavolume-controller.go +++ b/pkg/controller/datavolume-controller.go @@ -939,6 +939,10 @@ func newPersistentVolumeClaim(dataVolume *cdiv1.DataVolume) (*corev1.PersistentV annotations := make(map[string]string) + for k, v := range dataVolume.ObjectMeta.Annotations { + annotations[k] = v + } + if dataVolume.Spec.Source.HTTP != nil { annotations[AnnEndpoint] = dataVolume.Spec.Source.HTTP.URL annotations[AnnSource] = SourceHTTP diff --git a/pkg/controller/datavolume-controller_test.go b/pkg/controller/datavolume-controller_test.go index b2baff1af9..c86d7e5657 100644 --- a/pkg/controller/datavolume-controller_test.go +++ b/pkg/controller/datavolume-controller_test.go @@ -810,6 +810,20 @@ func TestBlankImageClaimLost(t *testing.T) { } +func TestAnnotationPassThrough(t *testing.T) { + dataVolume := newBlankImageDataVolume("blank-image-datavolume") + dataVolume.ObjectMeta.Annotations = make(map[string]string) + dataVolume.ObjectMeta.Annotations["testannotation"] = "testvalue" + pvc, _ := newPersistentVolumeClaim(dataVolume) + if val, ok := pvc.ObjectMeta.Annotations["testannotation"]; ok { + if val != "testvalue" { + t.Errorf("Annotation value %s doesn't match [testvalue]", val) + } + } else { + t.Errorf("Test annotation not found in PVC spec") + } +} + // Smart-clone test func TestSmartCloneNoPVCSource(t *testing.T) { f := newFixtureCsiCrds(t)