1
0
mirror of https://github.com/tektoncd/catalog.git synced 2024-11-23 06:08:46 +00:00
catalog/task/trigger-jenkins-job/0.1
Quan Zhang e294e1246b [TEP-0110] Update Tekton Catalog installation instructions
Prior to this change, the installation instructions directly use the resource urls in the Catalog repo, which results in tight coupling between the organization and how users fetch resources (as described in TEP-0110). This commit updates the installation guide to install Tekton Catalog resources via Tekton Hub Api: https://github.com/tektoncd/hub/pull/539

This change decouples the Tekton Catalog organization from resouces resolution, which enables Tekton Catalog reorganization.
2022-08-16 16:25:52 +01:00
..
samples Add Task to Trigger Jenkins Pipeline using Tekton 2020-07-29 16:24:02 +01:00
tests Fix jenkins and trigger-jenkins-job task tests 2021-02-15 10:57:46 +00:00
README.md [TEP-0110] Update Tekton Catalog installation instructions 2022-08-16 16:25:52 +01:00
trigger-jenkins-job.yaml Adds category field as an annotation as tekton.dev/categories 2021-07-26 13:15:08 +01:00

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://api.hub.tekton.dev/v1/resource/tekton/task/trigger-jenkins-job/0.1/raw

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 type array 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

  1. Without JOB_PARAMS parameters

    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: {}
    
  2. With JOB_PARAMS parameters

    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: {}