multiple listeners. TODO create different pipelines for each listener

This commit is contained in:
2020-03-18 17:36:57 +01:00
parent 6b62b0f3ef
commit 1860b861c0
17 changed files with 818 additions and 43 deletions

View File

@@ -0,0 +1,48 @@
---
apiVersion: tekton.dev/v1alpha1
kind: TriggerTemplate
metadata:
name: back-end-trigger-template
namespace: tekton-pipeline-1
spec:
params:
- name: gitrevision
description: The git revision
default: master
- name: gitrepositoryurl
description: The git repository url
- name: gitreponame
description: the name of the git repository
- name: branch
description: the name of the branch pushed to
- name: gitrepofullname
description: used for github status updates
- name: sha
description: used for github status updates
resourcetemplates:
- apiVersion: tekton.dev/v1alpha1
kind: PipelineRun
metadata:
generateName: back-end-pipeline-run-
spec:
serviceAccountName: service-acc
pipelineRef:
name: stage-application-pipeline
Timeout: "2h30m00s"
workspaces:
- name: workspace
persistentVolumeClaim:
claimName: workspace
params:
- name: git-url
value: $(params.gitrepositoryurl)
- name: branch
value: $(params.branch)
- name: git-repo-name
value: $(params.gitreponame)
- name: revision
value: $(params.gitrevision)
- name: sha
value: $(params.sha)
- name: git-repo-full-name
value: $(params.gitrepofullname)

View File

@@ -3,7 +3,7 @@
apiVersion: tekton.dev/v1alpha1
kind: EventListener
metadata:
name: github-event-listener
name: event-listener-frontend
namespace: tekton-pipeline-1
spec:
serviceAccountName: service-acc
@@ -16,23 +16,202 @@ spec:
- push
bindings:
- name: github-trigger-binding
#- name: gitlab-trigger-binding
template:
name: github-trigger-template
name: front-end-trigger-template
- name: gitlab
interceptors:
- gitlab:
eventTypes:
- Push Hook
bindings:
- name: gitlab-trigger-binding
template:
name: front-end-trigger-template
---
apiVersion: v1
kind: Service
metadata:
name: manual-service
name: frontend-event-listener
namespace: tekton-pipeline-1
spec:
ports:
- name: http-listener
port: 8080
protocol: TCP
targetPort: 8080
type: NodePort
selector:
app.kubernetes.io/managed-by: EventListener
app.kubernetes.io/part-of: Triggers
eventlistener: github-event-listener
type: LoadBalancer
eventlistener: event-listener-frontend
ports:
- protocol: TCP
port: 8080
targetPort: 8080
---
apiVersion: tekton.dev/v1alpha1
kind: EventListener
metadata:
name: event-listener-backend
namespace: tekton-pipeline-1
spec:
serviceAccountName: service-acc
triggers:
- name: github
interceptors:
- github:
eventTypes:
- pull_request
- push
bindings:
- name: github-trigger-binding
template:
name: back-end-trigger-template
- name: gitlab
interceptors:
- gitlab:
eventTypes:
- Push Hook
bindings:
- name: gitlab-trigger-binding
template:
name: back-end-trigger-template
---
apiVersion: v1
kind: Service
metadata:
name: backend-event-listener
namespace: tekton-pipeline-1
spec:
type: NodePort
selector:
eventlistener: event-listener-backend
ports:
- protocol: TCP
port: 8080
targetPort: 8080
---
apiVersion: tekton.dev/v1alpha1
kind: EventListener
metadata:
name: event-listener-mirror
namespace: tekton-pipeline-1
spec:
serviceAccountName: service-acc
triggers:
- name: github
interceptors:
- github:
eventTypes:
- pull_request
- push
bindings:
- name: github-trigger-binding
template:
name: mirror-trigger-template
- name: gitlab
interceptors:
- gitlab:
eventTypes:
- Push Hook
bindings:
- name: gitlab-trigger-binding
template:
name: mirror-trigger-template
---
apiVersion: v1
kind: Service
metadata:
name: mirror-event-listener
namespace: tekton-pipeline-1
spec:
type: NodePort
selector:
eventlistener: event-listener-mirror
ports:
- protocol: TCP
port: 8080
targetPort:
---
apiVersion: tekton.dev/v1alpha1
kind: EventListener
metadata:
name: event-listener-infra
namespace: tekton-pipeline-1
spec:
serviceAccountName: service-acc
triggers:
- name: github
interceptors:
- github:
eventTypes:
- pull_request
- push
bindings:
- name: github-trigger-binding
template:
name: infra-trigger-template
- name: gitlab
interceptors:
- gitlab:
eventTypes:
- Push Hook
bindings:
- name: gitlab-trigger-binding
template:
name: infra-trigger-template
---
apiVersion: v1
kind: Service
metadata:
name: infra-event-listener
namespace: tekton-pipeline-1
spec:
type: NodePort
selector:
eventlistener: event-listener-infra
ports:
- protocol: TCP
port: 8080
targetPort: 8080
---
# apiVersion: v1
# kind: Service
# metadata:
# name: manual-service
# namespace: tekton-pipeline-1
# spec:
# ports:
# - name: http-listener
# port: 8080
# protocol: TCP
# targetPort: 8080
# selector:
# type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: event-listener-ingress
namespace: tekton-pipeline-1
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: pipeline.llocal.host
http:
paths:
- path: /stage-frontend
backend:
serviceName: el-event-listener-frontend
servicePort: 8080
- path: /stage-backend
backend:
serviceName: el-event-listener-backend
servicePort: 8080
- path: /stage-mirror-service
backend:
serviceName: el-event-listener-mirror
servicePort: 8080
- path: /stage-infra
backend:
serviceName: el-event-listener-infra
servicePort: 8080
- path: /stage-test
backend:
serviceName: test-service
servicePort: 8080

View File

@@ -0,0 +1,48 @@
---
apiVersion: tekton.dev/v1alpha1
kind: TriggerTemplate
metadata:
name: front-end-trigger-template
namespace: tekton-pipeline-1
spec:
params:
- name: gitrevision
description: The git revision
default: master
- name: gitrepositoryurl
description: The git repository url
- name: gitreponame
description: the name of the git repository
- name: branch
description: the name of the branch pushed to
- name: gitrepofullname
description: used for github status updates
- name: sha
description: used for github status updates
resourcetemplates:
- apiVersion: tekton.dev/v1alpha1
kind: PipelineRun
metadata:
generateName: front-end-pipeline-run-
spec:
serviceAccountName: service-acc
pipelineRef:
name: stage-application-pipeline
Timeout: "2h30m00s"
workspaces:
- name: workspace
persistentVolumeClaim:
claimName: workspace
params:
- name: git-url
value: $(params.gitrepositoryurl)
- name: branch
value: $(params.branch)
- name: git-repo-name
value: $(params.gitreponame)
- name: revision
value: $(params.gitrevision)
- name: sha
value: $(params.sha)
- name: git-repo-full-name
value: $(params.gitrepofullname)

View File

@@ -13,4 +13,8 @@ spec:
- name: gitreponame
value: $(body.repository.name)
- name: branch
value: $(body.repository.default_branch)
value: $(body.repository.default_branch)
- name: gitrepofullname
value: $(body.repository.full_name)
- name: sha
value: $(body.head_commit.id)

View File

@@ -11,4 +11,8 @@ spec:
- name: gitrepositoryurl
value: "$(body.project.http_url)"
- name: gitreponame
value: $(body.project.name)
value: $(body.project.name)
- name: gitrepofullname
value: $(body.project.fullname)
- name: sha
value: $(body.project.sha)

View File

@@ -0,0 +1,48 @@
---
apiVersion: tekton.dev/v1alpha1
kind: TriggerTemplate
metadata:
name: infra-trigger-template
namespace: tekton-pipeline-1
spec:
params:
- name: gitrevision
description: The git revision
default: master
- name: gitrepositoryurl
description: The git repository url
- name: gitreponame
description: the name of the git repository
- name: branch
description: the name of the branch pushed to
- name: gitrepofullname
description: used for github status updates
- name: sha
description: used for github status updates
resourcetemplates:
- apiVersion: tekton.dev/v1alpha1
kind: PipelineRun
metadata:
generateName: infra-pipeline-run-
spec:
serviceAccountName: service-acc
pipelineRef:
name: stage-application-pipeline
Timeout: "2h30m00s"
workspaces:
- name: workspace
persistentVolumeClaim:
claimName: workspace
params:
- name: git-url
value: $(params.gitrepositoryurl)
- name: branch
value: $(params.branch)
- name: git-repo-name
value: $(params.gitreponame)
- name: revision
value: $(params.gitrevision)
- name: sha
value: $(params.sha)
- name: git-repo-full-name
value: $(params.gitrepofullname)

View File

@@ -0,0 +1,23 @@
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
externalTrafficPolicy: Cluster
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https

View File

@@ -0,0 +1,48 @@
---
apiVersion: tekton.dev/v1alpha1
kind: TriggerTemplate
metadata:
name: mirror-trigger-template
namespace: tekton-pipeline-1
spec:
params:
- name: gitrevision
description: The git revision
default: master
- name: gitrepositoryurl
description: The git repository url
- name: gitreponame
description: the name of the git repository
- name: branch
description: the name of the branch pushed to
- name: gitrepofullname
description: used for github status updates
- name: sha
description: used for github status updates
resourcetemplates:
- apiVersion: tekton.dev/v1alpha1
kind: PipelineRun
metadata:
generateName: mirror-pipeline-run-
spec:
serviceAccountName: service-acc
pipelineRef:
name: stage-application-pipeline
Timeout: "2h30m00s"
workspaces:
- name: workspace
persistentVolumeClaim:
claimName: workspace
params:
- name: git-url
value: $(params.gitrepositoryurl)
- name: branch
value: $(params.branch)
- name: git-repo-name
value: $(params.gitreponame)
- name: revision
value: $(params.gitrevision)
- name: sha
value: $(params.sha)
- name: git-repo-full-name
value: $(params.gitrepofullname)