Start Deploying in 5 Minutes with a Delegate-first Approach
We’re excited to announce that there’s a new Delegate-first approach for Harness pipelines. If you’re just getting started with the Harness platform, you’ll find this approach helpful for onboarding quickly.
We’re excited to announce that there’s a new Delegate-first approach for Harness pipelines. If you’re just getting started with the Harness platform, you’ll find this approach helpful for onboarding quickly. Now, the onboarding process for anyone trying Harness is simpler and more streamlined.
Following your Harness signup, this beginner-oriented tutorial will guide you through the process of setting up a Delegate on a Kubernetes cluster.
First, let's start by explaining why a Delegate is a necessary and essential service.
Why Set Up A Delegate?
Setting up Harness starts with installing at least one Harness Delegate in your target infrastructure (such as a Kubernetes cluster, an ECS cluster, an EC2 subnet or a Pivotal Cloud Foundry space).
Delegates are similar to self-hosted runners for those coming from other platforms. As soon as your Delegate is installed, it helps you perform any task you request through Harness Manager during the pipeline creation or execution process. These tasks include but are not limited to:
- Connecting to your GitHub or Gitlab via a connector to fetch repositories and make changes when required
- Connecting to Artifactories like DockerHub, JFrog and others via connector
- Connecting to your cloud providers like GCP, Azure, AWS and more
- Verifying and authenticating with your verification providers and secrets providers
- Running your code test and build operations as a part of your continuous integration pipeline
- Deploying artifacts as part of your continuous delivery pipeline to your connected Infrastructure
- Facilitating notifications to Slack, Jira and other applications when things go wrong or are successful
So you can see that Delegates are at the center of any operation inside Harness, and to take advantage of the above features, you need a Delegate in your infrastructure. We’ll start by creating one Delegate, but first, you'll need to sign up for Harness and fulfill the following prerequisites:
- A running Kubernetes cluster
- kubectl CLI is installed and authenticated on your machine
Your Kubernetes cluster should have the following resources for Delegates and remaining operations:
- Number of nodes: 2
- vCPUs, Memory, Disk Size: 2vCPUs, 16 GB memory, 50GB disk
- Networking: outbound HTTPS(443) for the Harness connection to app.harness.io, github.com, and hub.docker.com
- A Kubernetes service account with permission to create entities in the target namespace is required. The set of permissions should include list, get, create, and delete permissions. In general, the cluster-admin permission or admin permission is enough.
Creating the Delegate
Assuming the above requirements are met and you have signed up for the Harness platform, you will begin on the Get Started page:
As you might remember, installing the Delegate is the first step, so click on the Install the Delegate button and then select the Delegate type. This tutorial will focus on installing the Kubernetes Delegate so click on Kubernetes button as seen below to generate your YAML manifest.
After clicking on Kubernetes, Harness will create a custom manifest for you and some instructions, so let’s go through each step.
Step 1. Download the YAML manifest containing your Kubernetes object definitions to your local machine. To view the manifest, you can either click on Preview YAML or open the downloaded file in a text or code editor.
Step 2. Apply your manifest to your cluster to create your Kubernetes objects and enable your Delegate to take jobs from the Harness Manager. You can click on Check if you can connect to your cluster for detailed instructions on how to get your .kubeconfig file locally.
To install, navigate to the directory where your Delegate file is downloaded via terminal and use the command `kubectl apply -f harness-delegate.yml` to start creating your Delegate. The successful output will look like this:
Step 3. You’ll get a success message when your Delegate installation is complete. This may take 5-10 minutes. Once you see the green box, congratulations, your Delegate installation is complete!
To dive deeper and see the status of your Delegate creation, you can run the command `kubectl get pods -n harness-delegate-ng` on your terminal and check the status of your Pods.
Success will look something like this on your terminal if you run the command to see your Pod status:
With your Delegate installation complete, you can now create your first pipeline by moving forward with `Create Pipeline` and begin enhancing your software development process.
To create a project, populate the name field with any name and then move forward with creating a pipeline via the easy-to-use visual editor. As a simple demo, you can try the quickstart on how to deploy a publicly-available NGINX Docker image and a Kubernetes manifest into your Kubernetes cluster using a rolling update strategy in Harness.
To learn more about Delegates you can walk through the Delegate documentation.