This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch camel-main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit f49e2077e2608179caa189ce3c50f8a9c07072d3 Author: Tadayoshi Sato <sato.tadayo...@gmail.com> AuthorDate: Fri Jun 11 12:38:58 2021 +0900 chore(e2e): allow e2e to use nexus mirror to speed up testing #2387 If env variable TEST_ENABLE_NEXUS=true is set, testing hook will look for 'nexus' service in 'nexus' ns and if available it's assigned to camel-k platform as the maven mirror during e2e testing. --- e2e/knative/kamelet_test.go | 1 + e2e/support/files/nexus.yaml | 56 ++++++++++++++++++++++++++++++++++ e2e/support/test_nexus_hooks.go | 66 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) diff --git a/e2e/knative/kamelet_test.go b/e2e/knative/kamelet_test.go index 7e705d4..5de5dbe 100644 --- a/e2e/knative/kamelet_test.go +++ b/e2e/knative/kamelet_test.go @@ -55,5 +55,6 @@ func TestKameletChange(t *testing.T) { Eventually(IntegrationPodPhase(ns, "timer-binding"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) Eventually(IntegrationCondition(ns, "timer-binding", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) Eventually(IntegrationLogs(ns, "display"), TestTimeoutShort).Should(ContainSubstring("message is Hi")) + Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) }) } diff --git a/e2e/support/files/nexus.yaml b/e2e/support/files/nexus.yaml new file mode 100644 index 0000000..c4e8403 --- /dev/null +++ b/e2e/support/files/nexus.yaml @@ -0,0 +1,56 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: nexus +--- +apiVersion: v1 +kind: Service +metadata: + name: nexus + namespace: nexus +spec: + selector: + app: nexus + ports: + - protocol: TCP + port: 80 + targetPort: 8081 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nexus + namespace: nexus +spec: + selector: + matchLabels: + app: nexus + template: + metadata: + labels: + app: nexus + spec: + containers: + - name: nexus + image: sonatype/nexus3 + ports: + - containerPort: 8081 + name: 8081-tcp + livenessProbe: + httpGet: + path: /service/rest/v1/status + port: 8081 + initialDelaySeconds: 90 + periodSeconds: 3 + readinessProbe: + httpGet: + path: /service/rest/v1/status + port: 8081 + initialDelaySeconds: 90 + periodSeconds: 3 + volumeMounts: + - name: nexus-data + mountPath: /nexus-data + volumes: + - name: nexus-data + emptyDir: {} diff --git a/e2e/support/test_nexus_hooks.go b/e2e/support/test_nexus_hooks.go new file mode 100644 index 0000000..a04bb6e --- /dev/null +++ b/e2e/support/test_nexus_hooks.go @@ -0,0 +1,66 @@ +// +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 support + +import ( + "fmt" + "os" + + corev1 "k8s.io/api/core/v1" + ctrl "sigs.k8s.io/controller-runtime/pkg/client" +) + +const ( + nexusNamespace = "nexus" + nexusService = "nexus" + nexusMavenMirror = "http://nexus.nexus/repository/maven-public/@id=nexus@mirrorOf=central" +) + +func init() { + // Nexus repository mirror is disabled by default for E2E testing + nexus := os.Getenv("TEST_ENABLE_NEXUS") + if nexus == "true" { + svcChecked := false + svcExists := true + KamelHooks = append(KamelHooks, func(args []string) []string { + if len(args) > 0 && args[0] == "install" { + // Enable mirror only if nexus service exists + if !svcChecked { + svc := corev1.Service{} + key := ctrl.ObjectKey{ + Namespace: nexusNamespace, + Name: nexusService, + } + + if err := TestClient().Get(TestContext, key, &svc); err != nil { + svcExists = false + } + svcChecked = true + } + if svcExists { + args = append(args, fmt.Sprintf("--maven-repository=%s", nexusMavenMirror)) + } + } + return args + }) + } +}