charts/pipelines-library/templates/tasks/create-ecr-repository.yaml (45 lines of code) (raw):
{{ if .Values.pipelines.deployableResources.tasks }}
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: create-ecr-repository
labels:
app.kubernetes.io/based-on: "0.6"
{{- include "edp-tekton.labels" . | nindent 4 }}
annotations:
tekton.dev/pipelines.minVersion: "0.17.0"
tekton.dev/categories: Image Build
tekton.dev/tags: image-build
tekton.dev/displayName: "Init ECR repository"
tekton.dev/platforms: "linux/amd64"
spec:
description: >-
This task creates an Amazon ECR repository if it doesn't already exist, based on the provided repository name and AWS region configuration.
params:
- name: REPO_NAME
description: "The name of the ecr repository where we are going to push the image"
- name: edp-config
type: string
description: "This configmap holds aws_region parameter"
default: edp-config
steps:
- name: init-repository
image: {{ include "edp-tekton.registry" . }}/amazon/aws-cli:2.7.35
{{ if ne .Values.global.platform "openshift" }}
env:
- name: REPO_NAME
value: "$(params.REPO_NAME)"
- name: AWS_DEFAULT_REGION
valueFrom:
configMapKeyRef:
name: "$(params.edp-config)"
key: 'aws_region'
command: ["/bin/sh"]
args:
- "-c"
- |
ECR_REPO_NAME=$(echo "${REPO_NAME}" | cut -d'/' -f2-)
aws ecr describe-repositories --repository-names "$ECR_REPO_NAME" || aws ecr create-repository --repository-name "$ECR_REPO_NAME"
{{ else }}
command: [ "/bin/sh" ]
args: [ "-c", "echo 'Openshift cluster, create-ecr-repository stage skipped'" ]
{{ end }}
{{ end }}