setup tekton cicd
parent
49c94a9ecf
commit
f4cb552af5
@ -0,0 +1,41 @@
|
||||
apiVersion: triggers.tekton.dev/v1beta1
|
||||
kind: EventListener
|
||||
metadata:
|
||||
name: gitea-pushes
|
||||
namespace: sakal-us
|
||||
spec:
|
||||
serviceAccountName: tekton-triggers-sakal-us
|
||||
triggers:
|
||||
# inline Trigger:
|
||||
- name: build-and-deploy-sakal-us
|
||||
bindings: # TriggerBindings to pluck data from EventListener and map it to named variables
|
||||
- name: gitrevision
|
||||
value: $(body.commits[0].id)
|
||||
- name: gitrepositoryurl
|
||||
value: $(body.repository.clone_url)
|
||||
template: # TriggerTemplates to render various Tekton CRDs using plucked data
|
||||
spec:
|
||||
params:
|
||||
- name: gitrevision
|
||||
description: The git revision
|
||||
default: main
|
||||
- name: gitrepositoryurl
|
||||
description: The git repository url
|
||||
default: https://git.sakal.us/avraham/sakal.us.git
|
||||
resourcetemplates:
|
||||
- apiVersion: tekton.dev/v1beta1
|
||||
kind: PipelineRun
|
||||
metadata:
|
||||
generateName: build-and-deploy-sakal-us-
|
||||
spec:
|
||||
pipelineRef:
|
||||
name: build-and-deploy-sakal-us
|
||||
params:
|
||||
- name: gitrevision
|
||||
value: $(tt.params.gitrevision)
|
||||
- name: gitrepositoryurl
|
||||
value: $(tt.params.gitrepositoryurl)
|
||||
workspaces:
|
||||
- name: repo
|
||||
persistentVolumeClaim:
|
||||
claimName: sakal-us-cicd
|
@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: sakal-us
|
@ -0,0 +1,76 @@
|
||||
apiVersion: tekton.dev/v1beta1
|
||||
kind: Pipeline
|
||||
metadata:
|
||||
name: build-and-deploy-sakal-us
|
||||
namespace: sakal-us
|
||||
spec:
|
||||
params:
|
||||
- name: gitrevision
|
||||
type: string
|
||||
- name: gitrepositoryurl
|
||||
type: string
|
||||
workspaces:
|
||||
- name: repo
|
||||
tasks:
|
||||
- name: git-clone
|
||||
workspaces:
|
||||
- name: repo
|
||||
workspace: repo
|
||||
params:
|
||||
- name: gitrepositoryurl
|
||||
value: "$(params.gitrepositoryurl)"
|
||||
- name: gitrevision
|
||||
value: "$(params.gitrevision)"
|
||||
taskSpec:
|
||||
workspaces:
|
||||
- name: repo
|
||||
params:
|
||||
- name: gitrepositoryurl
|
||||
type: string
|
||||
- name: gitrevision
|
||||
type: string
|
||||
steps:
|
||||
- name: git-clone
|
||||
image: bitnami/git
|
||||
script: git clone $(params.gitrepositoryurl) $(workspaces.repo.path) && cd $(workspaces.repo.path) && git checkout $(params.gitrevision)
|
||||
- name: npm-build
|
||||
runAfter:
|
||||
- git-clone
|
||||
workspaces:
|
||||
- name: repo
|
||||
workspace: repo
|
||||
taskSpec:
|
||||
workspaces:
|
||||
- name: repo
|
||||
steps:
|
||||
- name: build
|
||||
image: node:20
|
||||
workingDir: $(workspaces.repo.path)
|
||||
script: npm install && npm run build
|
||||
- name: deploy-to-s3
|
||||
runAfter:
|
||||
- npm-build
|
||||
workspaces:
|
||||
- name: repo
|
||||
workspace: repo
|
||||
taskSpec:
|
||||
workspaces:
|
||||
- name: repo
|
||||
steps:
|
||||
- name: deploy-to-s3
|
||||
image: bitnami/minio-client
|
||||
workingDir: $(workspaces.repo.path)
|
||||
env:
|
||||
- name: MINIO_SERVER_HOST
|
||||
value: minio.minio-dev.svc.cluster.local
|
||||
- name: MINIO_SERVER_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: minio-dev
|
||||
key: accessKey
|
||||
- name: MINIO_SERVER_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: minio-dev
|
||||
key: secretKey
|
||||
script: mc cp dist/ sakal-us/
|
@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: sakal-us-cicd
|
||||
namespace: sakal-us
|
||||
spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: 512Mi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
@ -0,0 +1,32 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: tekton-triggers-sakal-us
|
||||
namespace: sakal-us
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: triggers-example-eventlistener-binding
|
||||
namespace: sakal-us
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: tekton-triggers-sakal-us
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: tekton-triggers-eventlistener-roles
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: triggers-example-eventlistener-clusterbinding
|
||||
namespace: sakal-us
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: tekton-triggers-sakal-us
|
||||
namespace: default
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: tekton-triggers-eventlistener-clusterroles
|
Loading…
Reference in New Issue