Skip to content

Commit 50a00fe

Browse files
anithapriyanatarajantekton-robot
authored andcommitted
update pipelines for oracle bucket target
Signed-off-by: Anitha Natarajan <anataraj@redhat.com>
1 parent 662bf07 commit 50a00fe

File tree

3 files changed

+100
-82
lines changed

3 files changed

+100
-82
lines changed

tekton/publish.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
apiVersion: tekton.dev/v1beta1
1+
apiVersion: tekton.dev/v1
22
kind: Task
33
metadata:
44
name: publish-triggers-release
@@ -22,12 +22,12 @@ spec:
2222
description: The vX.Y.Z version that the artifacts should be tagged with (including `v`)
2323
- name: imageRegistry
2424
description: The target image registry
25-
default: gcr.io
25+
default: ghcr.io
2626
- name: imageRegistryPath
2727
description: The path (project) in the image registry
2828
- name: imageRegistryRegions
2929
description: The target image registry regions
30-
default: "us eu asia"
30+
default: ""
3131
- name: imageRegistryUser
3232
description: Username to be used to login to the container registry
3333
default: "_json_key"

tekton/release-cheat-sheet.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,17 @@ the triggers repo, a terminal window and a text editor.
5252
```bash
5353
tkn --context dogfooding pipeline start triggers-release \
5454
--param package=github.com/tektoncd/triggers \
55+
--param repoName=triggers
5556
--param imageRegistry=ghcr.io \
5657
--param imageRegistryPath=tektoncd/triggers \
5758
--param imageRegistryRegions="" \
5859
--param imageRegistryUser=tekton-robot \
5960
--param gitRevision="${TRIGGERS_RELEASE_GIT_SHA}" \
6061
--param versionTag="${VERSION_TAG}" \
61-
--param serviceAccountPath=release.json \
6262
--param serviceAccountImagesPath=credentials \
63-
--param releaseBucket=gs://tekton-releases/triggers \
63+
--param releaseBucket=tekton-releases \
6464
--param koExtraArgs="" \
65-
--workspace name=release-secret,secret=release-secret \
65+
--workspace name=release-secret,secret=oci-release-secret \
6666
--workspace name=release-images-secret,secret=ghcr-creds \
6767
--workspace name=workarea,volumeClaimTemplateFile=workspace-template.yaml
6868
```
@@ -79,10 +79,10 @@ the triggers repo, a terminal window and a text editor.
7979
8080
NAME VALUE
8181
commit-sha 6ea31d92a97420d4b7af94745c45b02447ceaa19
82-
release-file https://storage.googleapis.com/tekton-releases/triggers/previous/v0.13.0/release.yaml
83-
release-file-no-tag https://storage.googleapis.com/tekton-releases/triggers/previous/v0.13.0/release.notag.yaml
84-
interceptors-file https://storage.googleapis.com/tekton-releases/triggers/previous/v0.13.0/interceptors.yaml
85-
interceptors-file-no-tag https://storage.googleapis.com/tekton-releases/triggers/previous/v0.13.0/interceptors.notag.yaml
82+
release-file https://infra.tekton.dev/tekton-releases/triggers/previous/v0.13.0/release.yaml
83+
release-file-no-tag https://infra.tekton.dev/tekton-releases/triggers/previous/v0.13.0/release.notag.yaml
84+
interceptors-file https://infra.tekton.dev/tekton-releases/triggers/previous/v0.13.0/interceptors.yaml
85+
interceptors-file-no-tag https://infra.tekton.dev/tekton-releases/triggers/previous/v0.13.0/interceptors.notag.yaml
8686
8787
(...)
8888
```
@@ -102,7 +102,7 @@ the triggers repo, a terminal window and a text editor.
102102
1. Find the Rekor UUID for the release
103103
104104
```bash
105-
RELEASE_FILE=https://storage.googleapis.com/tekton-releases/triggers/previous/${VERSION_TAG}/release.yaml
105+
RELEASE_FILE=https://infra.tekton.dev/tekton-releases/triggers/previous/${VERSION_TAG}/release.yaml
106106
CONTROLLER_IMAGE_SHA=$(curl $RELEASE_FILE | sed -n 's/"//g;s/.*ghcr\.io.*controller.*@//p;')
107107
REKOR_UUID=$(rekor-cli search --sha $CONTROLLER_IMAGE_SHA | grep -v Found | head -1)
108108
echo -e "CONTROLLER_IMAGE_SHA: ${CONTROLLER_IMAGE_SHA}\nREKOR_UUID: ${REKOR_UUID}"
@@ -137,8 +137,8 @@ the triggers repo, a terminal window and a text editor.
137137
```
138138
1. In the section **Attestation**, modify it for inteceptors.yaml also.
139139
```bash
140-
RELEASE_FILE=https://storage.googleapis.com/tekton-releases/triggers/previous/${VERSION_TAG}/release.yaml
141-
INTERCEPTORS_FILE=https://storage.googleapis.com/tekton-releases/triggers/previous/${VERSION_TAG}/interceptors.yaml
140+
RELEASE_FILE=https://infra.tekton.dev/tekton-releases/triggers/previous/${VERSION_TAG}/release.yaml
141+
INTERCEPTORS_FILE=https://infra.tekton.dev/tekton-releases/triggers/previous/${VERSION_TAG}/interceptors.yaml
142142
REKOR_UUID=$REKOR_UUID
143143
144144
# Obtains the list of images with sha from the attestation
@@ -168,15 +168,15 @@ the triggers repo, a terminal window and a text editor.
168168
169169
```bash
170170
# Test latest
171-
kubectl --context my-dev-cluster apply --filename https://storage.googleapis.com/tekton-releases/triggers/latest/release.yaml
172-
kubectl --context my-dev-cluster apply --filename https://storage.googleapis.com/tekton-releases/triggers/latest/interceptors.yaml
171+
kubectl --context my-dev-cluster apply --filename https://infra.tekton.dev/tekton-releases/triggers/latest/release.yaml
172+
kubectl --context my-dev-cluster apply --filename https://infra.tekton.dev/tekton-releases/triggers/latest/interceptors.yaml
173173
```
174174
175175
```bash
176176
# Test backport
177-
kubectl --context my-dev-cluster apply --filename https://storage.googleapis.com/tekton-releases/triggers/previous/v0.12.1/release.yaml
177+
kubectl --context my-dev-cluster apply --filename https://infra.tekton.dev/tekton-releases/triggers/previous/v0.12.1/release.yaml
178178
# NOTE: Some older releases might not have a separate interceptors.yaml as they used to be bundled in release.yaml
179-
kubectl --context my-dev-cluster apply --filename https://storage.googleapis.com/tekton-releases/triggers/previous/v0.12.1/interceptors.yaml
179+
kubectl --context my-dev-cluster apply --filename https://infra.tekton.dev/tekton-releases/triggers/previous/v0.12.1/interceptors.yaml
180180
```
181181
182182
1. For major releases, the [website sync configuration](https://github.com/tektoncd/website/blob/main/sync/config/triggers.yaml)
@@ -192,7 +192,7 @@ Congratulations, you're done!
192192
[the dogfooding cluster](https://github.com/tektoncd/plumbing/blob/main/docs/dogfooding.md):
193193
194194
```bash
195-
gcloud container clusters get-credentials dogfooding --zone us-central1-a --project tekton-releases
195+
oci ce cluster create-kubeconfig --cluster-id <CLUSTER-OCID> --file $HOME/.kube/config --region <CLUSTER-REGION> --token-version 2.0.0 --kube-endpoint PUBLIC_ENDPOINT
196196
```
197197
198198
1. Give [the context](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)

tekton/release-pipeline.yaml

Lines changed: 82 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
apiVersion: tekton.dev/v1beta1
2+
apiVersion: tekton.dev/v1
33
kind: Pipeline
44
metadata:
55
name: triggers-release
@@ -8,25 +8,28 @@ spec:
88
- name: package
99
description: package to release
1010
default: github.com/tektoncd/triggers
11+
- name: repoName
12+
description: repository name (e.g., pipeline, triggers, etc.)
13+
default: triggers
1114
- name: gitRevision
1215
description: the git revision to release
1316
- name: imageRegistry
1417
description: The target image registry
15-
default: gcr.io
18+
default: ghcr.io
1619
- name: imageRegistryPath
1720
description: The path (project) in the image registry
1821
default: tekton-releases
1922
- name: imageRegistryRegions
2023
description: The target image registry regions
21-
default: "us eu asia"
24+
default: "" # Empty for GHCR, "us eu asia" for GCR
2225
- name: imageRegistryUser
2326
description: The user for the image registry credentials
2427
default: _json_key
2528
- name: versionTag
2629
description: The X.Y.Z version that the artifacts should be tagged with
2730
- name: releaseBucket
2831
description: bucket where the release is stored. The bucket must be project specific.
29-
default: gs://tekton-releases-nightly/triggers
32+
default: tekton-nightly
3033
- name: releaseAsLatest
3134
description: Whether to tag and publish this release as Triggers' latest
3235
default: "true"
@@ -36,8 +39,6 @@ spec:
3639
- name: koExtraArgs
3740
description: Extra args to be passed to ko
3841
default: "--preserve-import-paths"
39-
- name: serviceAccountPath
40-
description: The path to the service account file within the release-secret workspace
4142
- name: serviceAccountImagesPath
4243
description: The path to the service account file or credentials within the release-images-secret workspace
4344
- name: runTests
@@ -69,45 +70,47 @@ spec:
6970
tasks:
7071
- name: git-clone
7172
taskRef:
72-
resolver: hub
73+
resolver: bundles
7374
params:
75+
- name: bundle
76+
value: ghcr.io/tektoncd/catalog/upstream/tasks/git-clone:0.7
7477
- name: name
7578
value: git-clone
76-
- name: version
77-
value: "0.7"
79+
- name: kind
80+
value: task
7881
workspaces:
79-
- name: output
80-
workspace: workarea
81-
subPath: git
82+
- name: output
83+
workspace: workarea
84+
subPath: git
8285
params:
83-
- name: url
84-
value: https://$(params.package)
85-
- name: revision
86-
value: $(params.gitRevision)
87-
- name: prerelease-precheck
86+
- name: url
87+
value: https://$(params.package)
88+
- name: revision
89+
value: $(params.gitRevision)
90+
91+
- name: precheck
8892
runAfter: [git-clone]
8993
taskRef:
9094
resolver: git
9195
params:
92-
- name: repo
93-
value: plumbing
94-
- name: org
95-
value: tektoncd
96+
- name: url
97+
value: https://github.com/tektoncd/plumbing
9698
- name: revision
9799
value: aeed19e5a36f335ebfdc4b96fa78d1ce5bb4f7b8
98100
- name: pathInRepo
99101
value: tekton/resources/release/base/prerelease_checks.yaml
100102
params:
101-
- name: package
102-
value: $(params.package)
103-
- name: versionTag
104-
value: $(params.versionTag)
105-
- name: releaseBucket
106-
value: $(params.releaseBucket)
103+
- name: package
104+
value: $(params.package)
105+
- name: versionTag
106+
value: $(params.versionTag)
107+
- name: releaseBucket
108+
value: $(params.releaseBucket)
107109
workspaces:
108-
- name: source-to-release
109-
workspace: workarea
110-
subPath: git
110+
- name: source-to-release
111+
workspace: workarea
112+
subPath: git
113+
111114
- name: unit-tests
112115
runAfter: [prerelease-precheck]
113116
when:
@@ -130,6 +133,7 @@ spec:
130133
- name: source
131134
workspace: workarea
132135
subPath: git
136+
133137
- name: build
134138
runAfter: [prerelease-precheck]
135139
when:
@@ -152,6 +156,7 @@ spec:
152156
- name: source
153157
workspace: workarea
154158
subPath: git
159+
155160
- name: publish-images
156161
runAfter: [build, unit-tests]
157162
taskRef:
@@ -195,60 +200,71 @@ spec:
195200
subPath: bucket
196201
- name: release-secret
197202
workspace: release-images-secret
203+
198204
- name: publish-to-bucket
199205
runAfter: [publish-images]
200206
taskRef:
201207
resolver: bundles
202208
params:
203209
- name: bundle
204-
value: ghcr.io/tektoncd/catalog/upstream/tasks/gcs-upload:0.3
210+
value: ghcr.io/tektoncd/catalog/upstream/tasks/oracle-cloud-storage-upload:0.1
205211
- name: name
206-
value: gcs-upload
212+
value: oracle-cloud-storage-upload
207213
- name: kind
208214
value: task
209215
workspaces:
210-
- name: credentials
211-
workspace: release-secret
212-
- name: source
213-
workspace: workarea
214-
subPath: bucket
216+
- name: credentials
217+
workspace: release-secret
218+
- name: source
219+
workspace: workarea
220+
subPath: bucket
215221
params:
216-
- name: location
217-
value: $(params.releaseBucket)/previous/$(params.versionTag)
218-
- name: path
219-
value: $(params.versionTag)
220-
- name: serviceAccountPath
221-
value: $(params.serviceAccountPath)
222+
- name: path
223+
value: $(params.versionTag)
224+
- name: bucketName
225+
value: $(params.releaseBucket)
226+
- name: objectPrefix
227+
value: $(params.repoName)/previous/$(params.versionTag)/
228+
- name: replaceExistingFiles
229+
value: "true"
230+
- name: recursive
231+
value: "true"
232+
222233
- name: publish-to-bucket-latest
223234
runAfter: [publish-images]
224235
when:
225-
- input: "$(params.releaseAsLatest)"
226-
operator: in
227-
values: ["true"]
236+
- input: "$(params.releaseAsLatest)"
237+
operator: in
238+
values: ["true"]
228239
taskRef:
229240
resolver: bundles
230241
params:
231242
- name: bundle
232-
value: ghcr.io/tektoncd/catalog/upstream/tasks/gcs-upload:0.3
243+
value: ghcr.io/tektoncd/catalog/upstream/tasks/oracle-cloud-storage-upload:0.1
233244
- name: name
234-
value: gcs-upload
245+
value: oracle-cloud-storage-upload
235246
- name: kind
236247
value: task
237248
workspaces:
238-
- name: credentials
239-
workspace: release-secret
240-
- name: source
241-
workspace: workarea
242-
subPath: bucket
249+
- name: credentials
250+
workspace: release-secret
251+
- name: source
252+
workspace: workarea
253+
subPath: bucket
243254
params:
244-
- name: location
245-
value: $(params.releaseBucket)/latest
246-
- name: path
247-
value: $(params.versionTag)
248-
- name: serviceAccountPath
249-
value: $(params.serviceAccountPath)
250-
- name: deleteExtraFiles
251-
value: "true" # Uses rsync to copy content into latest
255+
- name: path
256+
value: $(params.versionTag)
257+
- name: bucketName
258+
value: $(params.releaseBucket)
259+
- name: objectPrefix
260+
value: $(params.repoName)/latest/
261+
- name: replaceExistingFiles
262+
value: "true"
263+
- name: recursive
264+
value: "true"
265+
- name: deleteExtraFiles
266+
value: "true" # Uses sync to copy content into latest
267+
252268
- name: report-bucket
253269
runAfter: [publish-to-bucket]
254270
params:
@@ -277,10 +293,12 @@ spec:
277293
value: $(params.releaseBucket)
278294
- name: VERSION_TAG
279295
value: $(params.versionTag)
296+
- name: REPO_NAME
297+
value: $(params.repoName)
280298
script: |
281-
BASE_URL=$(echo "${RELEASE_BUCKET}/previous/${VERSION_TAG}")
282-
# If the bucket is in the gs:// return the corresponding public https URL
283-
BASE_URL=$(echo ${BASE_URL} | sed 's,gs://,https://storage.googleapis.com/,g')
299+
# Oracle Cloud Storage: Construct public URL
300+
# Format: https://infra.tekton.dev/<releaseBucket>/<repoName>/previous/<versionTag>
301+
BASE_URL="https://infra.tekton.dev/${RELEASE_BUCKET}/${REPO_NAME}/previous/${VERSION_TAG}"
284302
echo "${BASE_URL}/release.yaml" > $(results.release.path)
285303
echo "${BASE_URL}/release.notags.yaml" > $(results.release-no-tag.path)
286304
echo "${BASE_URL}/interceptors.yaml" > $(results.interceptors.path)

0 commit comments

Comments
 (0)