57 lines
1.8 KiB
YAML
57 lines
1.8 KiB
YAML
apiVersion: tekton.dev/v1beta1
|
|
kind: Task
|
|
metadata:
|
|
name: yq
|
|
labels:
|
|
app.kubernetes.io/version: "0.4"
|
|
annotations:
|
|
tekton.dev/pipelines.minVersion: "0.12.1"
|
|
tekton.dev/categories: Developer Tools
|
|
tekton.dev/tags: yq
|
|
tekton.dev/displayName: "YQ"
|
|
tekton.dev/platforms: "linux/amd64"
|
|
spec:
|
|
description: >-
|
|
This task can be used to replace fields in YAML files. For example for altering helm charts on GitOps repos.
|
|
workspaces:
|
|
- name: source
|
|
description: A workspace that contains the file which needs to be altered.
|
|
params:
|
|
- name: SCRIPT
|
|
type: string
|
|
description: The yq script to execute. Can be multiple lines for complex tasks.
|
|
default: ""
|
|
- name: image
|
|
type: string
|
|
description: The yq image to use.
|
|
default: docker.io/mikefarah/yq:4.27.5@sha256:2be3626ed633fbe1fc33ee9343a1256a6be53334412b2251b9a859f8c145bb53
|
|
- name: files
|
|
type: array
|
|
description: (deprecated, use SCRIPT instead) A list of files to execute the expression on. Needs to be relative to the source workspace.
|
|
default: []
|
|
- name: expression
|
|
type: string
|
|
description: (deprecated, use SCRIPT instead) The yq expression to apply. Can be used to replace yaml fields.
|
|
default: ""
|
|
results:
|
|
- name: yq
|
|
description: The result from your yq command. You can write to it using `$(results.yq.path)`
|
|
steps:
|
|
- name: yq-script
|
|
image: $(params.image)
|
|
workingDir: $(workspaces.source.path)
|
|
args: ["$(params.files[*])"]
|
|
script: |
|
|
/usr/bin/env sh
|
|
set -e
|
|
|
|
# For backwards compatibility with previous versions
|
|
if [ "$(params.SCRIPT)" = "" ]; then
|
|
for var in "$@"
|
|
do
|
|
/usr/bin/yq eval -i "$(params.expression)" "$var"
|
|
done
|
|
exit $?
|
|
fi
|
|
|
|
$(params.SCRIPT) |