diff --git a/test/e2e/eventlistener/eventListener_test.go b/test/e2e/eventlistener/eventListener_test.go index 662f30fc39..84bf49e917 100644 --- a/test/e2e/eventlistener/eventListener_test.go +++ b/test/e2e/eventlistener/eventListener_test.go @@ -19,7 +19,7 @@ package eventlistener import ( "context" - "os" + "fmt" "testing" "github.com/tektoncd/cli/test/cli" @@ -73,8 +73,15 @@ func TestEventListenerLogsE2E(t *testing.T) { t.Logf("Creating EventListener %s in namespace %s", elName, namespace) createResources(t, c, namespace) kubectl.MustSucceed(t, "create", "-f", helper.GetResourcePath("eventlistener/eventlistener_log.yaml")) - // Wait for pods to run and crash for next test - kubectl.MustSucceed(t, "wait", "--for=jsonpath=.status.phase=Running", "pod", "-n", namespace, "--timeout=2m", "--all") + // Wait for pods to run + kubectl.MustSucceed(t, "wait", "--for=condition=Ready", "pod", "-n", namespace, "--timeout=5m", "--all") + svcURL := fmt.Sprintf("http://el-github-listener-interceptor.%s.svc.cluster.local:8080", namespace) + + // Send dummy event + kubectl.MustSucceed(t, "-n", namespace, "run", "curlrequest", "--image=curlimages/curl", "--restart=Never", "--", + "curl -v -H 'X-GitHub-Event: pull_request' -H 'X-Hub-Signature: sha1=ba0cdc263b3492a74b601d240c27efe81c4720cb' -H 'Content-Type: application/json' "+ + "-d '{\"action\": \"opened\", \"pull_request\":{\"head\":{\"sha\": \"28911bbb5a3e2ea034daf1f6be0a822d50e31e73\"}},\"repository\":{\"clone_url\": \"https://github.com/tektoncd/triggers.git\"}}'", + svcURL) t.Run("Get logs of EventListener", func(t *testing.T) { res := tkn.MustSucceed(t, "eventlistener", "logs", elName, "-t", "1") @@ -108,8 +115,15 @@ func TestEventListener_v1beta1LogsE2E(t *testing.T) { t.Logf("Creating EventListener %s in namespace %s", elName, namespace) createResources(t, c, namespace) kubectl.MustSucceed(t, "create", "-f", helper.GetResourcePath("eventlistener/eventlistener_v1beta1_log.yaml")) - // Wait for pods to run and crash for next test - kubectl.MustSucceed(t, "wait", "--for=jsonpath=.status.phase=Running", "pod", "-n", namespace, "--timeout=2m", "--all") + // Wait for pods to run + kubectl.MustSucceed(t, "wait", "--for=condition=Ready", "pod", "-n", namespace, "--timeout=5m", "--all") + svcURL := fmt.Sprintf("http://el-github-listener-interceptor.%s.svc.cluster.local:8080", namespace) + + // Send dummy event + kubectl.MustSucceed(t, "-n", namespace, "run", "curlrequest", "--image=curlimages/curl", "--restart=Never", "--", + "curl -v -H 'X-GitHub-Event: pull_request' -H 'X-Hub-Signature: sha1=ba0cdc263b3492a74b601d240c27efe81c4720cb' -H 'Content-Type: application/json' "+ + "-d '{\"action\": \"opened\", \"pull_request\":{\"head\":{\"sha\": \"28911bbb5a3e2ea034daf1f6be0a822d50e31e73\"}},\"repository\":{\"clone_url\": \"https://github.com/tektoncd/triggers.git\"}}'", + svcURL) t.Run("Get logs of EventListener", func(t *testing.T) { res := tkn.MustSucceed(t, "eventlistener", "logs", elName, "-t", "1") @@ -184,20 +198,6 @@ func createResources(t *testing.T, c *framework.Clients, namespace string) { t.Fatalf("Error creating SA: %s", err) } - // Create ClusterRole required by triggers - _, err = c.KubeClient.RbacV1().ClusterRoles().Create(context.Background(), - &rbacv1.ClusterRole{ - ObjectMeta: metav1.ObjectMeta{Name: "sa-clusterrole"}, - Rules: []rbacv1.PolicyRule{{ - APIGroups: []string{"triggers.tekton.dev"}, - Resources: []string{"clustertriggerbindings", "clusterinterceptors"}, - Verbs: []string{"get", "list", "watch"}, - }}, - }, metav1.CreateOptions{}, - ) - if err != nil { - t.Fatalf("Error creating ClusterRole: %s", err) - } _, err = c.KubeClient.RbacV1().ClusterRoleBindings().Create(context.Background(), &rbacv1.ClusterRoleBinding{ ObjectMeta: metav1.ObjectMeta{Name: "sa-clusterrolebinding"}, @@ -209,7 +209,7 @@ func createResources(t *testing.T, c *framework.Clients, namespace string) { RoleRef: rbacv1.RoleRef{ APIGroup: "rbac.authorization.k8s.io", Kind: "ClusterRole", - Name: "sa-clusterrole", + Name: "tekton-triggers-eventlistener-clusterroles", }, }, metav1.CreateOptions{}, ) @@ -222,14 +222,8 @@ func cleanupResources(t *testing.T, c *framework.Clients, namespace string) { t.Helper() framework.TearDown(t, c, namespace) - if os.Getenv("TEST_KEEP_NAMESPACES") == "" && !t.Failed() { - // Cleanup cluster-scoped resources - t.Logf("Deleting cluster-scoped resources") - if err := c.KubeClient.RbacV1().ClusterRoles().Delete(context.Background(), "sa-clusterrole", metav1.DeleteOptions{}); err != nil { - t.Errorf("Failed to delete clusterrole sa-clusterrole: %s", err) - } - if err := c.KubeClient.RbacV1().ClusterRoleBindings().Delete(context.Background(), "sa-clusterrolebinding", metav1.DeleteOptions{}); err != nil { - t.Errorf("Failed to delete clusterrolebinding sa-clusterrolebinding: %s", err) - } + // Cleanup cluster-scoped resources + if err := c.KubeClient.RbacV1().ClusterRoleBindings().Delete(context.Background(), "sa-clusterrolebinding", metav1.DeleteOptions{}); err != nil { + t.Errorf("Failed to delete clusterrolebinding sa-clusterrolebinding: %s", err) } } diff --git a/test/resources/eventlistener/eventlistener_log.yaml b/test/resources/eventlistener/eventlistener_log.yaml index 5e14e80130..1c52e50a08 100644 --- a/test/resources/eventlistener/eventlistener_log.yaml +++ b/test/resources/eventlistener/eventlistener_log.yaml @@ -18,7 +18,7 @@ kind: EventListener metadata: name: github-listener-interceptor spec: - serviceAccountName: tekton-triggers-github-log-sa + serviceAccountName: tekton-triggers-github-sa triggers: - name: github-listener interceptors: @@ -82,18 +82,13 @@ spec: - name: url value: $(tt.params.gitrepositoryurl) --- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: tekton-triggers-github-log-sa ---- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tekton-triggers-github-binding subjects: - kind: ServiceAccount - name: tekton-triggers-github-log-sa + name: tekton-triggers-github-sa roleRef: apiGroup: rbac.authorization.k8s.io kind: Role diff --git a/test/resources/eventlistener/eventlistener_v1beta1_log.yaml b/test/resources/eventlistener/eventlistener_v1beta1_log.yaml index cf13060851..c622d90103 100644 --- a/test/resources/eventlistener/eventlistener_v1beta1_log.yaml +++ b/test/resources/eventlistener/eventlistener_v1beta1_log.yaml @@ -18,7 +18,7 @@ kind: EventListener metadata: name: github-listener-interceptor spec: - serviceAccountName: tekton-triggers-github-log-sa + serviceAccountName: tekton-triggers-github-sa triggers: - name: github-listener interceptors: @@ -89,18 +89,13 @@ spec: - name: url value: $(tt.params.gitrepositoryurl) --- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: tekton-triggers-github-log-sa ---- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tekton-triggers-github-binding subjects: - kind: ServiceAccount - name: tekton-triggers-github-log-sa + name: tekton-triggers-github-sa roleRef: apiGroup: rbac.authorization.k8s.io kind: Role