The following task can be used to trigger a Jenkins job using CURL request from a Tekton Task.
Task Installation
kubectl apply -f https://api.hub.tekton.dev/v1/resource/tekton/task/trigger-jenkins-job/0.1/raw
Available Params
JENKINS_HOST_URL: The URL on which Jenkins is running (Required)
JOB_NAME: The Job name which needs to be triggered (Required)
JENKINS_SECRETS: The name of the secret containing the username and API token for authenticating the Jenkins (Default: jenkins-credentials) (Required)
JOB_PARAMS: Extra parameters which needs to be appended in the
CURLrequest. (Default: "").JOB_PARAMSis of typearrayso multiple arguments can be appended.JOB_PARAMScan be provided as follows:-
params:
- name: JOB_PARAMS
value: |
- FILE_LOCATION_AS_SET_IN_JENKINS=@PATH_TO_FILE
Source Workspaces
- source: In case any file needs to be provided to the Jenkins Job. (Default:
emptyDir: {})
Sharing Secrets
Secrets containing username,API token and crumb that are used in the task for making the CURL request.
Crumb can be obtained using following command :-
$ wget -q --auth-no-challenge --user username --password password --output-document - 'http://${Jenkins_URL}/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'
This will give you something like Jenkins-Crumb:44e7033af70da95a47403c3bed5c10f8. Without crumb information, running curl command will result in example errors such as HTTP/1.1 403 Forbidden or Error 403 No valid crumb was included in the request.
apiVersion: v1
kind: Secret
metadata:
name: jenkins-credentials
type: Opaque
stringData:
username: username
apitoken: api-token
crumb: crumb
How to use
- Without
JOB_PARAMSparameters
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
name: trigger-jenkins-job-run
spec:
taskRef:
name: trigger-jenkins-job
params:
- name: JENKINS_HOST_URL
value: "http://localhost:8080"
- name: JOB_NAME
value: tekton
workspaces:
- name: source
emptyDir: {}
- With
JOB_PARAMSparameters
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
name: trigger-jenkins-job-run
spec:
taskRef:
name: trigger-jenkins-job
params:
- name: JENKINS_HOST_URL
value: "http://localhost:8080"
- name: JOB_NAME
value: tekton
- name: JOB_PARAMS
value:
- id=123
- verbosity=high
workspaces:
- name: source
emptyDir: {}
Top comments (0)