tekton-example-pipeline/triggers/build-deploy-trigger.yaml

132 lines
3.3 KiB
YAML

apiVersion: triggers.tekton.dev/v1alpha1
kind: TriggerTemplate
metadata:
name: tekton-argocd-example-build-tt
spec:
params:
- name: git-app-repo-url
- name: git-app-repo-name
- name: git-app-repo-revision
resourcetemplates:
- apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: git-app-repo-$(uid)
namespace: tekton-argocd-example
labels:
pipeline: tekton
deploy: argocd
spec:
params:
- name: url
value: $(tt.params.git-app-repo-url)
- name: revision
value: $(tt.params.git-app-repo-revision)
- name: git-app-repo-name
value: $(tt.params.git-app-repo-name)
type: git
- apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: image-registry-$(uid)
namespace: tekton-argocd-example
labels:
pipeline: tekton
deploy: argocd
spec:
params:
- name: url
# Replace <docker_registry_name> with your docker registry name (e.g. my-acr.azurecr.io)
value: "https://hub.docker.com/u/vtimofei"
type: image
- apiVersion: tekton.dev/v1alpha1
kind: PipelineRun
metadata:
generateName: tekton-argocd-example-build-deploy-pipeline-run-
namespace: tekton-argocd-example
labels:
pipeline: tekton
deploy: argocd
spec:
serviceAccountName: pipeline-sa
pipelineRef:
name: tekton-argocd-example-build-deploy-pipeline
resources:
- name: git-app-repo
resourceRef:
name: git-app-repo-$(uid)
- name: image-registry
resourceRef:
name: image-registry-$(uid)
---
apiVersion: triggers.tekton.dev/v1alpha1
kind: TriggerBinding
metadata:
name: tekton-argocd-example-build-git-tb
spec:
params:
- name: git-app-repo-url
# Replace with path to the JSON resource you want, based on the Git provider that you're using (e.g. for AzureDevOps: resource.repository.remoteUrl)
value: $(body.repository.url)
- name: git-app-repo-revision
value: master
---
apiVersion: triggers.tekton.dev/v1alpha1
kind: EventListener
metadata:
name: tekton-argocd-example-build-el
spec:
serviceAccountName: tekton-triggers-admin
triggers:
- bindings:
- ref: tekton-argocd-example-build-git-tb
template:
name: tekton-argocd-example-build-tt
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: argocd-app
namespace: argocd
spec:
dnsNames:
- k8s-argocd.tk
secretName: argocd-app-tls
issuerRef:
name: letsencrypt-cluster-issuer
kind: ClusterIssuer
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tekton-argocd-example-build-el-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: k8s-argocd.tk
http:
paths:
- path: /tekton-argocd-example-build-mapping/
pathType: Prefix
backend:
service:
name: el-tekton-argocd-example-build-el
port:
number: 8080
tls:
- hosts:
- k8s-argocd.tk
secretName: argocd-app-tls