-
Notifications
You must be signed in to change notification settings - Fork 417
/
pipeline.yaml
150 lines (150 loc) · 3.57 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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
---
# 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:
params:
- name: git-url
- name: git-revision
- name: url
workspaces:
- name: git-source
tasks:
- name: fetch-from-git
taskRef:
resolver: git
params:
- name: url
value: https://github.com/tektoncd/catalog.git
- name: pathInRepo
value: /task/git-clone/0.9/git-clone.yaml
- name: revision
value: main
params:
- name: url
value: $(params.git-url)
- name: revision
value: $(params.git-revision)
workspaces:
- name: output
workspace: git-source
- name: build-docker-image
taskRef:
name: build-docker-image
params:
- name: IMAGE
value: $(params.url)
runAfter: [fetch-from-git]
workspaces:
- name: source
workspace: git-source
- name: deploy-locally
taskRef:
name: deploy-locally
params:
- name: IMAGE
value: $(params.url)
runAfter:
- build-docker-image
- name: send-cloud-event
taskRef:
resolver: hub
params:
- name: name
value: cloudevent
- name: version
value: 0.1
params:
- name: sink
# URL of the Service we create below
value: http://event-display.getting-started.svc.cluster.local
- name: eventID
value: $(context.taskRun.name)
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: deploy-locally
namespace: getting-started
spec:
params:
- name: IMAGE
description: Name (reference) of the image to build.
steps:
- name: run-kubectl
image: lachlanevenson/k8s-kubectl
command: ["kubectl"]
args:
- "run"
- "tekton-triggers-built-me"
- "--image"
- "$(params.IMAGE)"
- "--env=PORT=8080"
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: build-docker-image
namespace: getting-started
spec:
params:
- name: IMAGE
description: Name (reference) of the image to build.
- name: pathToContext
description:
The build directory used by img
default: ./
- name: pathToDockerFile
type: string
description: The path to the dockerfile to build
default: ./Dockerfile
workspaces:
- name: source
steps:
- name: build-and-push
workingDir: $(workspaces.source.path)
image: gcr.io/kaniko-project/executor:v0.16.0
command:
- /kaniko/executor
args:
- --dockerfile=$(params.pathToDockerFile)
- --destination=$(params.IMAGE)
- --context=$(workspaces.source.path)/$(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