Files
kubernetes/dev/tekton/tasks/argocd-sync-and-wait/argocd-task-sync-and-wait.yaml
2025-11-23 18:58:51 +01:00

44 lines
1.4 KiB
YAML

apiVersion: tekton.dev/v1
kind: Task
metadata:
name: argocd-task-sync-and-wait
namespace: default
spec:
description: |-
This task syncs (deploys) an Argo CD application and waits for it to be healthy.
To do so, it requires the address of the Argo CD server and some form of authentication either a username/password or an authentication token.
params:
- description: name of the application to sync
name: application-name
type: string
- default: HEAD
description: the revision to sync to
name: revision
type: string
- default: --
name: flags
type: string
- default: v2.2.2
name: argocd-version
type: string
stepTemplate:
computeResources: {}
envFrom:
- configMapRef:
name: argocd-env-configmap
- secretRef:
name: argocd-env-secret
steps:
- computeResources: {}
image: argoproj/argocd
name: login
script: |
echo "ARGOCD_SERVER = " $ARGOCD_SERVER
echo "ARGOCD_USERNAME = " $ARGOCD_USERNAME
echo "ARGOCD_PASSWORD = " $ARGOCD_PASSWORD
if [ -z "$ARGOCD_AUTH_TOKEN" ]; then
yes | argocd login "$ARGOCD_SERVER" --username="$ARGOCD_USERNAME" --password="$ARGOCD_PASSWORD";
fi
argocd app sync "$(params.application-name)" --revision "$(params.revision)" "$(params.flags)"
argocd app wait "$(params.application-name)" --health "$(params.flags)"