fix
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
apiVersion: tekton.dev/v1beta1
|
||||
kind: Task
|
||||
metadata:
|
||||
name: skopeo-copy
|
||||
labels:
|
||||
app.kubernetes.io/version: "0.3"
|
||||
annotations:
|
||||
tekton.dev/pipelines.minVersion: "0.12.1"
|
||||
tekton.dev/categories: CLI
|
||||
tekton.dev/tags: cli
|
||||
tekton.dev/displayName: "skopeo copy"
|
||||
tekton.dev/platforms: "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64"
|
||||
spec:
|
||||
description: >-
|
||||
Skopeo is a command line tool for working with remote image registries.
|
||||
|
||||
Skopeo doesn’t require a daemon to be running while performing its operations.
|
||||
In particular, the handy skopeo command called copy will ease the whole image
|
||||
copy operation. The copy command will take care of copying the image from
|
||||
internal.registry to production.registry. If your production registry requires
|
||||
credentials to login in order to push the image, skopeo can handle that as well.
|
||||
|
||||
workspaces:
|
||||
- name: images-url
|
||||
params:
|
||||
- name: srcImageURL
|
||||
description: URL of the image to be copied to the destination registry
|
||||
type: string
|
||||
default: ""
|
||||
- name: destImageURL
|
||||
description: URL of the image where the image from source should be copied to
|
||||
type: string
|
||||
default: ""
|
||||
- name: srcTLSverify
|
||||
description: Verify the TLS on the src registry endpoint
|
||||
type: string
|
||||
default: "true"
|
||||
- name: destTLSverify
|
||||
description: Verify the TLS on the dest registry endpoint
|
||||
type: string
|
||||
default: "true"
|
||||
steps:
|
||||
- name: skopeo-copy
|
||||
env:
|
||||
- name: HOME
|
||||
value: /tekton/home
|
||||
image: quay.io/skopeo/stable:v1
|
||||
script: |
|
||||
# Function to copy multiple images.
|
||||
#
|
||||
copyimages() {
|
||||
filename="$(workspaces.images-url.path)/url.txt"
|
||||
while IFS= read -r line || [ -n "$line" ]
|
||||
do
|
||||
cmd=""
|
||||
for url in $line
|
||||
do
|
||||
# echo $url
|
||||
cmd="$cmd \
|
||||
$url"
|
||||
done
|
||||
read -ra sourceDest <<<"${cmd}"
|
||||
skopeo copy "${sourceDest[@]}" --src-tls-verify="$(params.srcTLSverify)" --dest-tls-verify="$(params.destTLSverify)"
|
||||
echo "$cmd"
|
||||
done < "$filename"
|
||||
}
|
||||
#
|
||||
# If single image is to be copied then, it can be passed through
|
||||
# params in the taskrun.
|
||||
if [ "$(params.srcImageURL)" != "" ] && [ "$(params.destImageURL)" != "" ] ; then
|
||||
skopeo copy "$(params.srcImageURL)" "$(params.destImageURL)" --src-tls-verify="$(params.srcTLSverify)" --dest-tls-verify="$(params.destTLSverify)"
|
||||
else
|
||||
# If file is provided as a configmap in the workspace then multiple images can be copied.
|
||||
#
|
||||
copyimages
|
||||
fi
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65532
|
||||
Reference in New Issue
Block a user