Debugging Delegates

This document gives an overview of the common errors encountered by the users regarding delegates, a service you run in your local network or VPC to connect your artifacts, infrastructure, collaboration, verification and other providers, with Harness Manager.

The most common ones are listed as follows:

  1. Cluster doesn’t have Resources
    It’s possible that the cluster doesn’t have enough resources to create the pod. In that case the apply step will succeed but the pod will never get created.

    In the above example the pod will never come up and hence delegate will not get connected

To avoid it, suggested practice is the cluster in which delegate is getting installed, should have double the number of nodes and memory as required by the delegate.

  1. Manager Connectivity Issues
    When the delegate pod starts it does the following
  • Download watcher.jar
  • start the watcher process
  • watcher process downloads delegate.jar and starts the delegate process
  • Delegate process reach out to manager for registration

The error can happen in any of the above. In most cases if there is a connectivity issue between the pod and the manager the downloading of the watcher jar itself will fail. You should see CrashLoopBackOff for the pod in your kubernetes cluster and the logs will say that the watcher jar is corrupted

If thats not the case then please connect with Harness Support or post it in or reach out to us on our community slack
3. Proxy issues
A user can configure proxy in delegate. In general as long as the proxy is configured well and doesn’t block traffic to harness manager things should work. We have observed that many proxy do allow http/https connection but block websocket connection. The symptoms for this is that when a new delegate is installed it starts to show up in the UI but delegate is in disconnected state.

Some common FAQs apart form the above mentioned scenarios:

What if the Delegate keeps restarting?

Immutable delegate is configured to get probed by K8S for liveness every 10s. If two probes fail the pod will restart. Make sure that liveness/startup probes are accessible by K8S and that they add sufficient delay so that delegate has enough time to startup in your environment. With default resource configuration delegates should take around 45-60s to startup.

How can I install multiple instances of the delegate?

In NG during the installation process if you select different delegate sizes, you will have a different number of instances. CG doesn’t have any UI around this, so you need to update your yaml manually with the desired number of replicas.