Search code examples
ibm-clouddevopscontinuous-deliverytektontekton-pipelines

IBM Cloud: How to add Tekton Catalog to Continuous Delivery toolchain configuration?


I am using the Continuous Delivery service in IBM Cloud. My toolchain is defined using a YAML file and stored in the .bluemix directory in my GitHubcode repository. I am using Tekton for the pipeline. How can I add the Tekton Catalog to the toolchain? It should be an existing repo and not to be cloned or forked.

Specifying existing instead of clone as type did not work.


Solution

  • The Wiki in the open-toolchain/sdk repo has only basic information about how to specify GitHub integration. After looking through many code samples and related testing I found that the following service specification in the toolchain.yml works:

    services:
      tekton-catalog:
        service_id: githubpublic
        parameters:
          repo_url: "https://github.com/open-toolchain/tekton-catalog"
          source_repo_url: "https://github.com/open-toolchain/tekton-catalog"
          type: "link"
          has_issues: false
          enable_traceability: false
          kind: ['pipeline']
    

    The type: "link" refers to an existing repository. The repo URLs refer to the mentioned tekton-catalog. What is interesting is that by specifying kind: ['pipeline'] the repo configuration is not specified in the configuration dialog, but integrated as specified.

    In your tekton.yml add a reference to the configured catalog in the input section and referencing an environment variable that you declared for the pipeline in the toolchain.yml. Something like

    inputs:
    - type: git
      branch: master
      service: ${TEKTON_CATALOG_REPO}
      path: container-registry
    

    with TEKTON_CATALOG_REPO based on

     TEKTON_CATALOG_REPO: tekton-catalog
    

    set as environment variable for the specific toolchain part.