From 100e4149e8c7d4f5ddf88072e53330d13d7f3e71 Mon Sep 17 00:00:00 2001 From: Andrea Frittoli Date: Mon, 14 Oct 2019 11:39:33 +0100 Subject: [PATCH] Adapt the release pipeline to Tekton v0.7.0+ Change the release pipeline so that it runs on the latest version of Tekton. We can now run manual releases from the `dogfooding` cluster so there's no reason to keep compatibility to old version of Tekton. --- tekton/README.md | 6 ++--- tekton/publish.yaml | 48 ++++++++++++++++++------------------ tekton/release-pipeline.yaml | 12 ++++----- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/tekton/README.md b/tekton/README.md index ccf746f34be..d306beba511 100644 --- a/tekton/README.md +++ b/tekton/README.md @@ -169,9 +169,9 @@ works [with v0.3.1](#install-tekton)) ```bash # Apply the Tasks we are using from the catalog -kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/a844eaa0be8cba2c1fbe6c4c336a2333bdbcdf1c/golang/lint.yaml -kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/a844eaa0be8cba2c1fbe6c4c336a2333bdbcdf1c/golang/build.yaml -kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/a844eaa0be8cba2c1fbe6c4c336a2333bdbcdf1c/golang/tests.yaml +kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/14d38f2041312b0ad17bc079cfa9c0d66895cc7a/golang/lint.yaml +kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/14d38f2041312b0ad17bc079cfa9c0d66895cc7a/golang/build.yaml +kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/14d38f2041312b0ad17bc079cfa9c0d66895cc7a/golang/tests.yaml # Apply the Tasks and Pipelines we use from this repo kubectl apply -f tekton/ci-images.yaml diff --git a/tekton/publish.yaml b/tekton/publish.yaml index f751574da41..f1491dd43e1 100644 --- a/tekton/publish.yaml +++ b/tekton/publish.yaml @@ -55,7 +55,7 @@ spec: - /kaniko/executor args: - --dockerfile=/workspace/go/src/github.com/tektoncd/pipeline/images/Dockerfile - - --destination=${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtBaseImage.url} + - --destination=$(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtBaseImage.url) - --context=/workspace/go/src/github.com/tektoncd/pipeline volumeMounts: @@ -78,11 +78,11 @@ spec: cat < /workspace/go/src/github.com/tektoncd/pipeline/.ko.yaml # By default ko will build images on top of distroless baseImageOverrides: - ${inputs.params.pathToProject}/${outputs.resources.builtCredsInitImage.url}: ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/build-base:latest - ${inputs.params.pathToProject}/${outputs.resources.builtGitInitImage.url}: ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/build-base:latest - ${inputs.params.pathToProject}/${outputs.resources.builtBashImage.url}: busybox # image should have shell in $PATH - ${inputs.params.pathToProject}/${outputs.resources.builtEntrypointImage.url}: busybox # image should have shell in $PATH - ${inputs.params.pathToProject}/${outputs.resources.builtGsutilImage.url}: google/cloud-sdk:alpine # image should have gsutil in $PATH + $(inputs.params.pathToProject)/$(outputs.resources.builtCredsInitImage.url): $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/build-base:latest + $(inputs.params.pathToProject)/$(outputs.resources.builtGitInitImage.url): $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/build-base:latest + $(inputs.params.pathToProject)/$(outputs.resources.builtBashImage.url): busybox # image should have shell in $PATH + $(inputs.params.pathToProject)/$(outputs.resources.builtEntrypointImage.url): busybox # image should have shell in $PATH + $(inputs.params.pathToProject)/$(outputs.resources.builtGsutilImage.url): google/cloud-sdk:alpine # image should have gsutil in $PATH EOF cat /workspace/go/src/github.com/tektoncd/pipeline/.ko.yaml @@ -108,7 +108,7 @@ spec: image: gcr.io/tekton-releases/ko-ci env: - name: KO_DOCKER_REPO - value: ${inputs.params.imageRegistry} + value: $(inputs.params.imageRegistry) - name: GOPATH value: /workspace/go - name: CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE @@ -160,8 +160,8 @@ spec: set -e set -x - mkdir -p /workspace/output/bucket/previous/${inputs.params.versionTag}/ - cp /workspace/output/bucket/latest/release.yaml /workspace/output/bucket/previous/${inputs.params.versionTag}/release.yaml + mkdir -p /workspace/output/bucket/previous/$(inputs.params.versionTag)/ + cp /workspace/output/bucket/latest/release.yaml /workspace/output/bucket/previous/$(inputs.params.versionTag)/release.yaml - name: tag-images image: google/cloud-sdk @@ -175,21 +175,21 @@ spec: REGIONS=(us eu asia) IMAGES=( - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtEntrypointImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtKubeconfigWriterImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtCredsInitImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtGitInitImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtNopImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtBashImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtGsutilImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtControllerImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtWebhookImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtDigestExporterImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtPullRequestInitImage.url} - ${inputs.params.imageRegistry}/${inputs.params.pathToProject}/${outputs.resources.builtGcsFetcherImage.url} + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtEntrypointImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtKubeconfigWriterImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtCredsInitImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtGitInitImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtNopImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtBashImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtGsutilImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtControllerImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtWebhookImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtDigestExporterImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtPullRequestInitImage.url) + $(inputs.params.imageRegistry)/$(inputs.params.pathToProject)/$(outputs.resources.builtGcsFetcherImage.url) ) # Parse the built images from the release.yaml generated by ko - BUILT_IMAGES=( $(/workspace/go/src/github.com/tektoncd/pipeline/tekton/koparse/koparse.py --path /workspace/output/bucket/latest/release.yaml --base ${inputs.params.imageRegistry}/${inputs.params.pathToProject} --images ${IMAGES[@]}) ) + BUILT_IMAGES=( $(/workspace/go/src/github.com/tektoncd/pipeline/tekton/koparse/koparse.py --path /workspace/output/bucket/latest/release.yaml --base $(inputs.params.imageRegistry)/$(inputs.params.pathToProject) --images ${IMAGES[@]}) ) # Auth with account credentials gcloud auth activate-service-account --key-file=/secret/release.json @@ -199,10 +199,10 @@ spec: do IMAGE_WITHOUT_SHA=${IMAGE%%@*} gcloud -q container images add-tag ${IMAGE} ${IMAGE_WITHOUT_SHA}:latest - gcloud -q container images add-tag ${IMAGE} ${IMAGE_WITHOUT_SHA}:${inputs.params.versionTag} + gcloud -q container images add-tag ${IMAGE} ${IMAGE_WITHOUT_SHA}:$(inputs.params.versionTag) for REGION in "${REGIONS[@]}" do - for TAG in "latest" ${inputs.params.versionTag} + for TAG in "latest" $(inputs.params.versionTag) do gcloud -q container images add-tag ${IMAGE} ${REGION}.${IMAGE_WITHOUT_SHA}:$TAG done diff --git a/tekton/release-pipeline.yaml b/tekton/release-pipeline.yaml index 68a3b6d0980..44cc31382a4 100644 --- a/tekton/release-pipeline.yaml +++ b/tekton/release-pipeline.yaml @@ -49,7 +49,7 @@ spec: name: golangci-lint params: - name: package - value: ${params.package} + value: $(params.package) - name: flags value: -v resources: @@ -62,7 +62,7 @@ spec: name: golang-test params: - name: package - value: ${params.package} + value: $(params.package) resources: inputs: - name: source @@ -73,7 +73,7 @@ spec: name: golang-build params: - name: package - value: ${params.package} + value: $(params.package) resources: inputs: - name: source @@ -84,11 +84,11 @@ spec: name: publish-tekton-pipelines params: - name: pathToProject - value: ${params.package} + value: $(params.package) - name: versionTag - value: ${params.versionTag} + value: $(params.versionTag) - name: imageRegistry - value: ${params.imageRegistry} + value: $(params.imageRegistry) resources: inputs: - name: source