Skip to content

Commit

Permalink
test: Add pipeline yaml for tekton pipeline (kubeflow#459)
Browse files Browse the repository at this point in the history
In order to run tekton pipeline on IKS, need to define
listener, pipeline and task YAMLs. Inside the pipeline YAML,
it defines a series of tasks to git clone, run unittest, build images,
deploy tekton, deploy kfp-tekton, run e2e test and undeploy.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
  • Loading branch information
yhwang authored Feb 5, 2021
1 parent 35185d9 commit 895d5b9
Show file tree
Hide file tree
Showing 5 changed files with 704 additions and 12 deletions.
118 changes: 118 additions & 0 deletions .tekton/listener.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
apiVersion: tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
name: template
spec:
params:
- name: repository
description: The git repo
- name: revision
description: the branch for the git repo
- name: apikey
description: the ibmcloud api key
- name: registry-url
description: ibm container registry url
- name: registry-namespace
description: the ibmcloud registry namespace
- name: region
description: the ibmcloud registry region
default: us-south
- name: org
description: organization
- name: space
description: space
default: dev
- name: resource-group
description: resource group
default: default
- name: docker-username
description: ibm container registry username
default: iamapikey
- name: docker-password
description: iam api key
- name: tekton-version
description: tekton version
- name: tekton-ns
description: tekton namespace
default: tekton-pipeline
- name: kubernetes-cluster
description: cluster name
- name: kubeflow-ns
description: kubeflow namespace
default: kubeflow
resourcetemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pipelinerun-$(uid)-pvc
spec:
resources:
requests:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
- apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: pipelinerun-$(uid)
spec:
pipelineRef:
name: pipeline
workspaces:
- name: pipeline-pvc
persistentVolumeClaim:
claimName: pipelinerun-$(uid)-pvc
params:
- name: repository
value: $(params.repository)
- name: revision
value: $(params.revision)
- name: apikey
value: $(params.apikey)
- name: registry-url
value: $(params.registry-url)
- name: registry-namespace
value: $(params.registry-namespace)
- name: region
value: $(params.region)
- name: docker-username
value: $(params.docker-username)
- name: docker-password
value: $(params.docker-password)
- name: resource-group
value: $(params.resource-group)
- name: org
value: $(params.org)
- name: space
value: $(params.space)
- name: tekton-version
value: $(params.tekton-version)
- name: tekton-ns
value: $(params.tekton-ns)
- name: kubernetes-cluster
value: $(params.kubernetes-cluster)
- name: kubeflow-ns
value: $(params.kubeflow-ns)
---
apiVersion: tekton.dev/v1beta1
kind: TriggerBinding
metadata:
name: binding
spec:
params:
- name: repository
value: "https://github.com/kubeflow/kfp-tekton"
- name: revision
value: "master"
---
apiVersion: tekton.dev/v1beta1
kind: EventListener
metadata:
name: listener
spec:
triggers:
- binding:
name: binding
template:
name: template
263 changes: 263 additions & 0 deletions .tekton/pipeline.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,263 @@
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: pipeline
spec:
params:
- name: repository
description: the git repo
- name: revision
description: the revision
default: master
- name: apikey
description: the ibmcloud api key
- name: registry-url
description: ibm container registry url
- name: registry-namespace
description: the ibmcloud registry namespace
- name: docker-username
description: for ibm container registry
default: iamapikey
- name: docker-password
description: iam api key
- name: resource-group
description: resource group
default: default
- name: org
description: organization
- name: region
description: region
- name: space
description: space
- name: tekton-version
description: tekton version
- name: tekton-ns
description: tekton namespace
default: tekton-pipeline
- name: kubeflow-ns
description: kubeflow namespace
default: kubeflow
- name: kubernetes-cluster
description: cluster name
workspaces:
- name: pipeline-pvc
tasks:
- name: test
taskRef:
name: test
params:
- name: repository
value: $(params.repository)
- name: revision
value: $(params.revision)
- name: apikey
value: $(params.apikey)
- name: registry-namespace
value: $(params.registry-namespace)
- name: docker-username
value: $(params.docker-username)
- name: docker-password
value: $(params.docker-password)
- name: resource-group
value: $(params.resource-group)
- name: org
value: $(params.org)
- name: region
value: $(params.region)
- name: space
value: $(params.space)
workspaces:
- name: task-pvc
workspace: pipeline-pvc
- name: build-images-artifact
taskRef:
name: build-images
runAfter:
- test
params:
- name: apikey
value: $(params.apikey)
- name: image-name
value: api-server
- name: docker-root
value: .
- name: docker-file
value: ""
- name: registry-url
value: $(params.registry-url)
- name: registry-namespace
value: $(params.registry-namespace)
- name: docker-username
value: iamapikey
- name: docker-password
value: $(params.docker-password)
- name: run-task
value: artifact
workspaces:
- name: task-pvc
workspace: pipeline-pvc
- name: build-images-api-server
retries: 1
taskRef:
name: build-images
runAfter:
- test
params:
- name: apikey
value: $(params.apikey)
- name: image-name
value: api-server
- name: docker-root
value: .
- name: docker-file
value: backend/Dockerfile
- name: registry-url
value: $(params.registry-url)
- name: registry-namespace
value: $(params.registry-namespace)
- name: docker-username
value: iamapikey
- name: docker-password
value: $(params.docker-password)
- name: run-task
value: image
workspaces:
- name: task-pvc
workspace: pipeline-pvc
- name: build-images-persistenceagent
retries: 1
taskRef:
name: build-images
runAfter:
- test
params:
- name: apikey
value: $(params.apikey)
- name: image-name
value: persistenceagent
- name: docker-root
value: .
- name: docker-file
value: backend/Dockerfile.persistenceagent
- name: registry-url
value: $(params.registry-url)
- name: registry-namespace
value: $(params.registry-namespace)
- name: docker-username
value: iamapikey
- name: docker-password
value: $(params.docker-password)
- name: run-task
value: image
workspaces:
- name: task-pvc
workspace: pipeline-pvc
- name: build-images-metadata-writer
retries: 1
taskRef:
name: build-images
runAfter:
- test
params:
- name: apikey
value: $(params.apikey)
- name: image-name
value: metadata-writer
- name: docker-root
value: .
- name: docker-file
value: backend/metadata_writer/Dockerfile
- name: registry-url
value: $(params.registry-url)
- name: registry-namespace
value: $(params.registry-namespace)
- name: docker-username
value: iamapikey
- name: docker-password
value: $(params.docker-password)
- name: run-task
value: image
workspaces:
- name: task-pvc
workspace: pipeline-pvc
- name: build-images-scheduledworkflow
retries: 1
taskRef:
name: build-images
runAfter:
- test
params:
- name: apikey
value: $(params.apikey)
- name: image-name
value: scheduledworkflow
- name: docker-root
value: .
- name: docker-file
value: backend/Dockerfile.scheduledworkflow
- name: registry-url
value: $(params.registry-url)
- name: registry-namespace
value: $(params.registry-namespace)
- name: docker-username
value: iamapikey
- name: docker-password
value: $(params.docker-password)
- name: run-task
value: image
workspaces:
- name: task-pvc
workspace: pipeline-pvc
- name: deploy
taskRef:
name: deploy
runAfter:
- build-images-api-server
- build-images-persistenceagent
- build-images-metadata-writer
- build-images-scheduledworkflow
params:
- name: apikey
value: $(params.apikey)
- name: docker-username
value: iamapikey
- name: docker-password
value: $(params.docker-password)
- name: kubernetes-cluster
value: $(params.kubernetes-cluster)
- name: kubeflow-ns
value: $(params.kubeflow-ns)
- name: tekton-version
value: $(params.tekton-version)
- name: tekton-ns
value: $(params.tekton-ns)
workspaces:
- name: task-pvc
workspace: pipeline-pvc
- name: e2e-test
taskRef:
name: e2e-test
runAfter:
- deploy
params:
- name: apikey
value: $(params.apikey)
- name: kubernetes-cluster
value: $(params.kubernetes-cluster)
- name: kubeflow-ns
value: $(params.kubeflow-ns)
workspaces:
- name: task-pvc
workspace: pipeline-pvc
finally:
- name: undeploy
taskRef:
name: undeploy
params:
- name: apikey
value: $(params.apikey)
- name: kubeflow-ns
value: $(params.kubeflow-ns)
workspaces:
- name: task-pvc
workspace: pipeline-pvc
Loading

0 comments on commit 895d5b9

Please sign in to comment.