You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ts...@apache.org on 2020/12/10 10:35:32 UTC

[camel-k] branch master updated (f554750 -> 8b62436)

This is an automated email from the ASF dual-hosted git repository.

tsato pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git.


    from f554750  chore(trait): remove fancy '&[]bool{true}[0]' initialisers for bool pointers
     new d4ba41f  chore(e2e): add test for Prometheus trait #1547
     new 8b62436  chore(e2e): suppress Service Monitor creation in Prometheus test for CI

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 e2e/common/prometheus_test.go | 100 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 100 insertions(+)
 create mode 100644 e2e/common/prometheus_test.go


[camel-k] 02/02: chore(e2e): suppress Service Monitor creation in Prometheus test for CI

Posted by ts...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tsato pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 8b6243631f3456480dc47239d13bab185a632d0b
Author: Tadayoshi Sato <sa...@gmail.com>
AuthorDate: Tue Dec 8 17:16:46 2020 +0900

    chore(e2e): suppress Service Monitor creation in Prometheus test for CI
---
 e2e/common/prometheus_test.go | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/e2e/common/prometheus_test.go b/e2e/common/prometheus_test.go
index 868309d..fd657ed 100644
--- a/e2e/common/prometheus_test.go
+++ b/e2e/common/prometheus_test.go
@@ -43,9 +43,14 @@ func TestPrometheusTrait(t *testing.T) {
 		ocp, err := openshift.IsOpenShift(TestClient)
 		assert.Nil(t, err)
 
+		// suppress Service Monitor for the time being as CI test runs on OCP 3.11
+		createServiceMonitor := false
+
 		Expect(Kamel("install", "-n", ns).Execute()).Should(BeNil())
 
-		Expect(Kamel("run", "-n", ns, "files/Java.java", "-t", "prometheus.enabled=true").Execute()).Should(BeNil())
+		Expect(Kamel("run", "-n", ns, "files/Java.java",
+			"-t", "prometheus.enabled=true",
+			"-t", fmt.Sprintf("prometheus.service-monitor=%v", createServiceMonitor)).Execute()).Should(BeNil())
 		Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(v1.PodRunning))
 		Eventually(IntegrationCondition(ns, "java", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
 		Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
@@ -66,7 +71,7 @@ func TestPrometheusTrait(t *testing.T) {
 			Eventually(service, TestTimeoutShort).ShouldNot(BeNil())
 		})
 
-		if ocp {
+		if ocp && createServiceMonitor {
 			t.Run("Service Monitor is created on OpenShift", func(t *testing.T) {
 				sm := serviceMonitor(ns, "java")
 				Eventually(sm, TestTimeoutShort).ShouldNot(BeNil())


[camel-k] 01/02: chore(e2e): add test for Prometheus trait #1547

Posted by ts...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tsato pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit d4ba41fd99f6d77923d755e00e562534a570e797
Author: Tadayoshi Sato <sa...@gmail.com>
AuthorDate: Tue Dec 8 15:49:15 2020 +0900

    chore(e2e): add test for Prometheus trait #1547
---
 e2e/common/prometheus_test.go | 95 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)

diff --git a/e2e/common/prometheus_test.go b/e2e/common/prometheus_test.go
new file mode 100644
index 0000000..868309d
--- /dev/null
+++ b/e2e/common/prometheus_test.go
@@ -0,0 +1,95 @@
+// +build integration
+
+// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration"
+
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package common
+
+import (
+	"fmt"
+	"testing"
+
+	. "github.com/apache/camel-k/e2e/support"
+	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	"github.com/apache/camel-k/pkg/util/openshift"
+
+	. "github.com/onsi/gomega"
+	"github.com/stretchr/testify/assert"
+
+	monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
+	v1 "k8s.io/api/core/v1"
+	k8serrors "k8s.io/apimachinery/pkg/api/errors"
+	k8sclient "sigs.k8s.io/controller-runtime/pkg/client"
+)
+
+func TestPrometheusTrait(t *testing.T) {
+	WithNewTestNamespace(t, func(ns string) {
+		ocp, err := openshift.IsOpenShift(TestClient)
+		assert.Nil(t, err)
+
+		Expect(Kamel("install", "-n", ns).Execute()).Should(BeNil())
+
+		Expect(Kamel("run", "-n", ns, "files/Java.java", "-t", "prometheus.enabled=true").Execute()).Should(BeNil())
+		Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+		Eventually(IntegrationCondition(ns, "java", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+		Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+
+		t.Run("Metrics endpoint works", func(t *testing.T) {
+			pod := IntegrationPod(ns, "java")
+			response, err := TestClient.CoreV1().RESTClient().Get().
+				AbsPath(fmt.Sprintf("/api/v1/namespaces/%s/pods/%s/proxy/metrics", ns, pod().Name)).DoRaw(TestContext)
+			if err != nil {
+				assert.Fail(t, err.Error())
+			}
+			assert.Contains(t, string(response), "camel.route.exchanges.total")
+		})
+
+		t.Run("Service is created", func(t *testing.T) {
+			// service name is "<integration name>-prometheus"
+			service := Service(ns, "java-prometheus")
+			Eventually(service, TestTimeoutShort).ShouldNot(BeNil())
+		})
+
+		if ocp {
+			t.Run("Service Monitor is created on OpenShift", func(t *testing.T) {
+				sm := serviceMonitor(ns, "java")
+				Eventually(sm, TestTimeoutShort).ShouldNot(BeNil())
+			})
+		}
+
+		Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
+	})
+}
+
+func serviceMonitor(ns string, name string) func() *monitoringv1.ServiceMonitor {
+	return func() *monitoringv1.ServiceMonitor {
+		sm := monitoringv1.ServiceMonitor{}
+		key := k8sclient.ObjectKey{
+			Namespace: ns,
+			Name:      name,
+		}
+		err := TestClient.Get(TestContext, key, &sm)
+		if err != nil && k8serrors.IsNotFound(err) {
+			return nil
+		} else if err != nil {
+			panic(err)
+		}
+		return &sm
+	}
+}