From ade19a2b96c3730fa2638146fcb6f047bf011d66 Mon Sep 17 00:00:00 2001 From: Richard Wall Date: Tue, 25 Jun 2024 13:50:03 +0100 Subject: [PATCH] E2E test Signed-off-by: Richard Wall --- deploy/charts/csi-driver/values.yaml | 7 +++++- make/test-e2e.mk | 1 + test/e2e/suite/cases/metrics.go | 34 ++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 test/e2e/suite/cases/metrics.go diff --git a/deploy/charts/csi-driver/values.yaml b/deploy/charts/csi-driver/values.yaml index 59a76da5..7c3e173d 100644 --- a/deploy/charts/csi-driver/values.yaml +++ b/deploy/charts/csi-driver/values.yaml @@ -1,3 +1,8 @@ +# metrics: +# enabled: false +# podMonitor: +# enabled: false + image: # Target image registry. This value is prepended to the target image repository, if set. # For example: @@ -130,7 +135,7 @@ nodeSelector: kubernetes.io/os: linux # Kubernetes affinity: constraints for pod assignment. -# +# # For example: # affinity: # nodeAffinity: diff --git a/make/test-e2e.mk b/make/test-e2e.mk index 516eee18..00657c3e 100644 --- a/make/test-e2e.mk +++ b/make/test-e2e.mk @@ -46,6 +46,7 @@ endif test-e2e-deps: INSTALL_OPTIONS := test-e2e-deps: INSTALL_OPTIONS += --set image.repository=$(oci_manager_image_name_development) +# test-e2e-deps: INSTALL_OPTIONS += --set metrics.enabled=true test-e2e-deps: e2e-setup-cert-manager test-e2e-deps: install diff --git a/test/e2e/suite/cases/metrics.go b/test/e2e/suite/cases/metrics.go new file mode 100644 index 00000000..d5627afb --- /dev/null +++ b/test/e2e/suite/cases/metrics.go @@ -0,0 +1,34 @@ +package cases + +import ( + "context" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/cert-manager/csi-driver/test/e2e/framework" +) + +const certManagerNamespace = "cert-manager" + +var _ = framework.CasesDescribe("Metrics", func() { + f := framework.NewDefaultFramework("metrics") + + FIt("should serve metrics", func() { + pods, err := f.KubeClientSet.CoreV1().Pods(certManagerNamespace).List(context.TODO(), metav1.ListOptions{ + LabelSelector: "app.kubernetes.io/instance=csi-driver", + }) + Expect(err).NotTo(HaveOccurred()) + Expect(pods.Items).To(HaveLen(1)) + for _, p := range pods.Items { + resp, err := f.KubeClientSet. + CoreV1(). + Pods(p.Namespace). + ProxyGet("http", p.Name, "8080", "/metrics", map[string]string{}). + DoRaw(context.TODO()) + Expect(err).NotTo(HaveOccurred()) + Expect(string(resp)).To(Equal("foo")) + } + }) +})