forked from tektoncd/triggers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pipeline.yaml
132 lines (132 loc) · 3.02 KB
/
pipeline.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
---
# The getting-started Pipeline will run through several tasks:
# - source is pulled from git
# - source is built into an image by img
# - image output is pushed to ECR
# - cloudevent emitted
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: getting-started-pipeline
namespace: getting-started
spec:
resources:
- name: source-repo
type: git
- name: image-source
type: image
- name: event-to-sink
type: cloudEvent
tasks:
- name: build-docker-image
taskRef:
name: build-docker-image
params:
- name: pathToContext
value: /workspace/source-repo
resources:
inputs:
- name: source-repo
resource: source-repo
outputs:
- name: builtImage
resource: image-source
- name: deploy-locally
taskRef:
name: deploy-locally
resources:
inputs:
- name: image-source
resource: image-source
from:
- build-docker-image
outputs:
- name: event-to-sink
resource: event-to-sink
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: deploy-locally
namespace: getting-started
spec:
resources:
inputs:
- name: image-source
type: image
outputs:
- name: event-to-sink
type: cloudEvent
steps:
- name: run-kubectl
image: lachlanevenson/k8s-kubectl
command: ["kubectl"]
args:
- "run"
- "tekton-triggers-built-me"
- "--image"
- "$(resources.inputs.image-source.url)"
- "--env=PORT=8080"
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: build-docker-image
namespace: getting-started
spec:
params:
- name: pathToContext
description:
The build directory used by img
default: /workspace/source-repo
- name: pathToDockerFile
type: string
description: The path to the dockerfile to build
default: $(resources.inputs.source-repo.path)/Dockerfile
resources:
inputs:
- name: source-repo
type: git
outputs:
- name: builtImage
type: image
steps:
- name: build-and-push
image: gcr.io/kaniko-project/executor:v0.16.0
command:
- /kaniko/executor
args:
- --dockerfile=$(params.pathToDockerFile)
- --destination=$(resources.outputs.builtImage.url)
- --context=$(params.pathToContext)
---
# Finally, we need something to receive our cloudevent announcing success!
# That is this services only purpose
apiVersion: v1
kind: Service
metadata:
name: event-display
namespace: getting-started
labels:
app: event-display
spec:
type: ClusterIP
ports:
- name: listener
port: 8080
protocol: TCP
selector:
app: event-display
---
apiVersion: v1
kind: Pod
metadata:
name: event-display
namespace: getting-started
labels:
app: event-display
spec:
hostname: event-display
containers:
- image: gcr.io/knative-releases/github.com/knative/eventing-sources/cmd/event_display
name: web