f1317ea1a1
The following task can be used to trigger an existing Jenkins pipeline from Tekton using the CURL request by providing the required parameters. Signed-off-by: vinamra28 <vinjain@redhat.com> |
||
---|---|---|
.. | ||
samples | ||
README.md | ||
trigger-jenkins-job.yaml |
Trigger Jenkins Job
The following task can be used to trigger a Jenkins job using CURL request from a Tekton Task.
More details on Remote Access API can be found here
Install the Task
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/master/task/trigger-jenkins-job/0.1/trigger-jenkins-job.yaml
Parameters
-
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
CURL
request. (Default: "").JOB_PARAMS
is of typearray
so multiple arguments can be appended.JOB_PARAMS
can be provided as follows:-params: - name: JOB_PARAMS value: | - FILE_LOCATION_AS_SET_IN_JENKINS=@PATH_TO_FILE
Workspaces
- source: In case any file needs to be provided to the Jenkins Job. (Default:
emptyDir: {}
)
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
Usage
-
Without
JOB_PARAMS
parametersapiVersion: 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_PARAMS
parametersapiVersion: 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: {}