Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e7953b6
chore(gke-deploy): copy task from 0.1 to 0.2
gferreir Sep 17, 2026
3f0fa8d
chore(gke-deploy): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
f695b27
chore(kn-apply): copy task from 0.2 to 0.3
gferreir Sep 17, 2026
8637762
chore(kn-apply): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
5f110d2
chore(argocd-task-sync-and-wait): copy task from 0.2 to 0.3
gferreir Sep 17, 2026
c1d248d
chore(argocd-task-sync-and-wait): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
42bb894
chore(argocd-task-connect-repo): copy task from 0.1 to 0.2
gferreir Sep 17, 2026
556b590
chore(argocd-task-connect-repo): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
f807ea1
chore(blue-green-deploy): copy task from 0.2 to 0.3
gferreir Sep 17, 2026
ec4cd67
chore(blue-green-deploy): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
8333731
chore(helm-upgrade-from-source): copy task from 0.4 to 0.5
gferreir Sep 17, 2026
55a2b90
chore(helm-upgrade-from-source): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
ea9425a
chore(kamel-run): copy task from 0.1 to 0.2
gferreir Sep 17, 2026
18e64dd
chore(kamel-run): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
af7047a
chore(helm-upgrade-from-repo): copy task from 0.3 to 0.4
gferreir Sep 17, 2026
f4d1b93
chore(helm-upgrade-from-repo): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
3dced59
chore(istio-canary-release): copy task from 0.1 to 0.2
gferreir Sep 17, 2026
3d7c1f2
chore(istio-canary-release): bump apiVersion to tekton.dev/v1
gferreir Sep 17, 2026
303c653
fix(helm): use taskRunTemplate.serviceAccountName in PipelineRun v1
gferreir Sep 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions task/argocd-task-connect-repo/0.2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# ArgoCD

This task connects a repository to Argo CD. 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, as well as the desired repo.

## Install the Task

```
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/argocd-task-connect-repo/0.2/argocd-task-connect-repo.yaml
```

## Parameters

* **repository-url:** Name of the application to sync e.g. `https://charts.bitnami.com/bitnami`

* **repository-name:** The name you want to give to the repo, e.g. `bitnami`

* **flags:** Flags to append after commands, e.g. `--insecure` (_default:_ `--`)

## Platforms

The Task can be run on `linux/amd64` platform.

## Usage

```
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-env-configmap
namespace: argocd
data:
ARGOCD_SERVER: <Argo CD server address>
---
apiVersion: v1
kind: Secret
metadata:
name: argocd-env-secret
namespace: argocd
data:
# choose one of username/password or auth token
ARGOCD_USERNAME: <username>
ARGOCD_PASSWORD: <password>
ARGOCD_AUTH_TOKEN: <token>
---
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: argocd-pipeline-test
namespace: argocd
spec:
tasks:
- name: connect-repo
taskRef:
name: argocd-task-connect-repo
params:
- name: repository-url
value: https://charts.bitnami.com/bitnami
- name: repository-type
value: helm
- name: repository-name
value: concourse
- name: flags
value: --insecure
```

For the `Secret`, choose one of username/password or auth token for logging in. Either of the following are acceptable:

```YAML
data:
ARGOCD_USERNAME: <username>
ARGOCD_PASSWORD: <password>
```

```YAML
data:
ARGOCD_AUTH_TOKEN: <token>
```
53 changes: 53 additions & 0 deletions task/argocd-task-connect-repo/0.2/argocd-task-connect-repo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: argocd-task-connect-repo
labels:
app.kubernetes.io/version: "0.2"
annotations:
tekton.dev/pipelines.minVersion: "0.50.0"
tekton.dev/categories: Deployment
tekton.dev/tags: generic
tekton.dev/displayName: "argocd-repository"
tekton.dev/platforms: "linux/amd64"
spec:
description: >-
This task adds an http repo in Argo CD.

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,
as well as the desired repository to connect to.
params:
- name: repository-url
description: url of the repository you want to add
type: string
- name: repository-type
description: repository type (helm or git)
type: string
- name: repository-name
description: name you want to give to the repository
type: string
- name: flags
default: --
type: string
- name: argocd-version
default: v2.3.4
type: string
stepTemplate:
envFrom:
- configMapRef:
name: argocd-env-configmap # used for server address
- secretRef:
name: argocd-env-secret # used for authentication (username/password or auth token)
steps:
- name: connect-repo
image: quay.io/argoproj/argocd:$(params.argocd-version)
script: |
if [ -z "$ARGOCD_AUTH_TOKEN" ]; then
yes | argocd login "$ARGOCD_SERVER" --username="$ARGOCD_USERNAME" --password="$ARGOCD_PASSWORD" --insecure;
fi
if [ "$(params.repository-type)" != "helm" ]; then
argocd repo add "$(params.repository-url)" "$(params.flags)";
else
argocd repo add "$(params.repository-url)" --type helm --name "$(params.repository-name)" "$(params.flags)";
fi
77 changes: 77 additions & 0 deletions task/argocd-task-sync-and-wait/0.3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Argo CD

This task syncs (deploys) an [Argo CD](https://argoproj.github.io/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.

## Install the Task

```
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/argocd-task-sync-and-wait/0.3/argocd-task-sync-and-wait.yaml
```

## Parameters

* **application-name:** Name of the application to sync

* **revision:** The revision to sync to (_default:_ `HEAD`)

* **flags:** Flags to append after commands, e.g. `--insecure` (_default:_ `--`)

## Platforms

The Task can be run on `linux/amd64` platform.

## Usage

This `Pipeline` implements the typical CD flow using GitOps, as explained [here](https://argoproj.github.io/argo-cd/user-guide/ci_automation/). It runs a sample `Task` that makes and pushes a change to a Git repository, after which it runs the Argo CD `Task` to sync an application based on that repository.

The `ConfigMap` and `Secret` give an example of how to define the Argo CD server address and give credentials for logging in.

```YAML
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-env-configmap
data:
ARGOCD_SERVER: <Argo CD server address>
---
apiVersion: v1
kind: Secret
metadata:
name: argocd-env-secret
data:
# choose one of username/password or auth token
ARGOCD_USERNAME: <username>
ARGOCD_PASSWORD: <password>
ARGOCD_AUTH_TOKEN: <token>
---
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: argocd-pipeline
spec:
tasks:
- name: push-to-git
taskRef:
name: some-git-task # pushes to the Git repository used by the application in the next task
- name: sync-application
taskRef:
name: argocd-task-sync-and-wait
params:
- name: application-name
value: some-application
- name: flags
value: --insecure # needed in this example only because the Argo CD server is locally hosted
```

For the `Secret`, choose one of username/password or auth token for logging in. Either of the following are acceptable:

```YAML
data:
ARGOCD_USERNAME: <username>
ARGOCD_PASSWORD: <password>
```

```YAML
data:
ARGOCD_AUTH_TOKEN: <token>
```
48 changes: 48 additions & 0 deletions task/argocd-task-sync-and-wait/0.3/argocd-task-sync-and-wait.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: argocd-task-sync-and-wait
labels:
app.kubernetes.io/version: "0.3"
annotations:
tekton.dev/pipelines.minVersion: "0.50.0"
tekton.dev/categories: Deployment
tekton.dev/tags: deploy
tekton.dev/displayName: "argocd"
tekton.dev/platforms: "linux/amd64"
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:
- name: application-name
description: name of the application to sync
type: string
- name: revision
description: the revision to sync to
default: HEAD
type: string
- name: flags
default: --
type: string
- name: argocd-version
default: v2.2.2
type: string
stepTemplate:
envFrom:
- configMapRef:
name: argocd-env-configmap # used for server address
- secretRef:
name: argocd-env-secret # used for authentication (username/password or auth token)
steps:
- name: login
image: quay.io/argoproj/argocd:$(params.argocd-version)
script: |
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)"
89 changes: 89 additions & 0 deletions task/blue-green-deploy/0.3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Blue Green Deploy on Kubernetes

The following task can help you to deploy an application using the Blue-Green deployment strategy. This task gives you the flexibility to deploy a version of the application from the blue zone to the green zone without disturbing the previous version in the blue zone. It works by making the service point to the newer version of the application deployed.

- If you are deploying the first version of the application then it will go into the blue zone and for that you need to provide deployment and service manifests via the `workspaces` and in the `params` the service name and version. Sample Kubernetes manifests for version v1 can be found [here](./samples/v1-deploy).
- For further new deployments, it will get deployed in the other zone and then the current service will now point to the new deployment. For example if we have a deployment running in the blue zone then we will deploy the next deployment in the green zone and make the service point to the green zone or vice versa.

## Installing the Task

```
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/blue-green-deploy/0.3/blue-green-deploy.yaml
```

## Installing the ClusterRoleBinding

```
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/blue-green-deploy/0.3/support/clusterrolebinding.yaml
```

## Optional Workspaces

- **manifest-dir**: Manifest files can be provided via the workspaces
- **kubeconfig-dir**: If you want to deploy you application to another cluster then you can mount your `kubeconfig` file via this `workspace`

## Parameters

- **SERVICE_NAME**: The service name pointing to the existing deployment. (_Note_: The service name for the new deployment should be same)
- **NEW_VERSION**: The version of the deployment to be deployed in the green/blue zone
- **MANIFEST**: The deployment manifest URL file path provided in case the manifest is present on Github. (_Example_: "https://raw.githubusercontent.com/tektoncd/catalog/main/task/blue-green-deploy/0.3/samples/v1-deploy/blue-deployment.yaml")
- **NAMESPACE**: Target namespace in which operation needs to be performed
- **IMAGE**: Image which has kubectl binary present (_Default_: `quay.io/openshift/origin-cli:4.9`)

## Platforms

The Task can be run on `linux/amd64` platform.

# Usage

This TaskRun runs the Task to deploy the given Kubernetes resource in the green/blue zone and toggle the service to point to the new zone.

## Without using ConfigMap

TaskRun :-

```yaml
apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
name: blue-green-deploy-run
spec:
taskRef:
name: blue-green-deploy-k8s
params:
- name: SERVICE_NAME
value: myapp
- name: NEW_VERSION
value: v2
- name: MANIFEST
value: "https://raw.githubusercontent.com/tektoncd/catalog/main/task/blue-green-deploy/0.3/samples/v2-deploy/green-deployment.yaml"
```

## Using ConfigMap

1. Create the `ConfigMap`

```bash
kubectl create configmap manifests --from-file="green-deployment.yaml"
```

2. TaskRun:-

```yaml
apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
name: blue-green-deploy-run
spec:
taskRef:
name: blue-green-deploy-k8s
params:
- name: SERVICE_NAME
value: myapp
- name: NEW_VERSION
value: v2
workspaces:
- name: manifest-dir
configMap:
name: manifests
```
Loading
Loading