Managing Pipes

Pipekit Web UI

To create a new Pipe, go to the Pipes tab in Pipekit and click the + Add pipe button.

From here, choose the Organization the Pipe will belong to, the repo containing the Workflow yaml, and provide a human-friendly name and description.

You can choose to permit the running Workflow to access the git repository containing the Workflow yaml. This is useful if the workflow itself needs to access the git repository, for example to obtain stored code. To do this, tick Grant workflow repository pull access. For more information, refer to the Grant workflow repository pull access section.

You should then choose the run conditions for the Pipe. These are the git events that trigger the Pipe to run.

Grant workflow repository pull access

By checking Grant workflow repository pull access, you can grant a Workflow access to the git repository containing the Workflow yaml. This is done by automatically generating a ssh key and adding it to your git provider. The key is then injected into your workflow at runtime for you you to use.

The generated key is injected into the /root directory of your containers, and is available at the path /root/.ssh/github_key for both Github and Gitlab.

Here is a simplified example of how you could use the key to access a private repository in your workflow:

kind: Workflow
  generateName: clone-repo-
  entrypoint: clone-repo
  - metadata:
      name: code
      accessModes: [ "ReadWriteMany" ]
      storageClassName: nfs
          storage: 1Gi
  - name: clone-repo
      image: alpine
        - sh
        - -c
        - |
          apk --update add openssh-client git
          eval `ssh-agent -s`
          mkdir -p /workdir/src/
          cd /workdir/src/
          ssh-add /root/.ssh/github_key
          ssh-keyscan > /root/.ssh/known_hosts
          git config --global --add '*'
          git clone
          cd my_repo
          git checkout $GIT_COMMIT
      - name: code
        mountPath: /workdir
          memory: 1Gi
          cpu: 100m

SSH keys are only made available to the Workflow that is triggered by the Pipe. If you have a Workflow that triggers another Workflow or uses workflowTemplates, the keys will not be passed to the second Workflow, or the workflowTemplate.

Pipekit CLI

You can submit a Pipe to Pipekit using the Pipekit CLI. For more information, refer to the Pipekit CLI documentation.

You cannot grant workflow repository pull access, or choose run conditions when submitting a Pipe via the CLI.

Disabling a Pipe

If you wish for a Pipe to no longer run, you can disable it. To disable a pipe, you can toggle the switch on the Pipe. This action will prevent any further runs of the Pipe from being triggered. If you change your mind, you can re-enable the Pipe by toggling the switch back on.

Deleting a Pipe

If you wish to delete a Pipe, go to the Pipe UI, and then the settings tab, then click the Delete button. You will be asked to confirm the deletion.

Deleting a Pipe will also delete all Runs and logs associated with the Pipe. Everything associated with the Workflow will be lost when a Pipe is deleted.

Last updated