Create a Custom Delegate that Includes Custom Tools

Updated 2 months ago by Michael Cretzman

Harness Delegates are installed from the Harness Manager and typically contain the binaries you need for your CI/CD Pipelines.

In some cases, you might want to add more tools or even create your own custom Delegate and include the tools needed for your builds and deployments.

This topic explains the different ways to create a custom Delegate.

In this topic:

Before You Begin

Option: Use INIT_SCRIPT Environment Variable

In the Delegate config file, locate the INIT_SCRIPT environment variable.

For example, here it is in the Kubernetes Delegate harness-delegate.yaml file:

...
apiVersion: apps/v1
kind: StatefulSet
...
spec:
...
spec:
...
env:
...
- name: INIT_SCRIPT
value: |-
echo install wget
apt-get install wget
echo wget installed
...

In value, enter your script. For a list of common scripts, see Common Delegate Initialization Scripts.

For steps on using the INIT_SCRIPT environment variable, see Run Scripts on Delegates.

You can see all of the environment variables for the Delegates in the following topics:

Option: Add a Delegate Image

Harness Delegate Docker images are public and you can use them to compose your own Delegate image.

The Harness Delegate Docker images are located on Docker Hub.

For example, you can curl and install all the tool libraries you want and then curl delegate:latest to add the latest Delegate image.

Or you can create your own image and simply include the Delegate image.

Here's and example that installs Node.JS on top of a Delegate image and sets an environment variable key:value pair.

...
FROM harness/delegate:latest

RUN apt-get update && apt-get -y install nodejs

ENV key=value
...

You can see all of the environment variables for the Delegates in the following topics:

See Also


Please Provide Feedback