> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/resilience-testing/chaos-engineering/use-chaos-engineering/infrastructure/types/ddcr/proxy-support.md).

# Configure Proxy Settings

Configure DDCR and Discovery Agent Proxy settings.

This topic describes when Harness Network Proxy (HNP) is required, how you can install it, and configure DDCR and discovery HNP settings.

When you have a restricted network and when you want all the outbound connections to go from a single node/cluster, you can use your own proxy or Harness Network Proxy (HNP). If direct connectivity exists, the proxy can be bypassed entirely.

{% hint style="info" %}
You can configure HNP with custom certificates that offers greater control over secure communication.
{% endhint %}

The diagram below describes how the **Discovery Agent** and **Chaos Runner** communicate with Harness Control Plane.

![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-cbeedf70641eebb47b4c9482611654dc7b7ed011%2Fagent-proxy.png?alt=media)

The diagram above describes the following:

* All the inbound connections go through the Delegate.
* If your cluster has connectivity with the Harness portal (Harness Control Plane in the diagram), you won't need any proxy.
* If your cluster does not have connectivity with the Harness portal (Harness Control Plane in the diagram), then such requests goes through the proxy.
  * In case you already have a proxy set up, you can [provide the URL of the proxy in the UI](#delegate-driven-chaos-runner-ddcr).
  * In case you don't have a proxy set up, you can [install](#installation) HNP.
  * In case you don't have a proxy set up, you can [install](#installation) HNP.

{% hint style="info" %}
Chaos runner supports token-based authentication with the Harness Platform. If you want to add another authentication on top of Harness authentication, you can [enable mTLS](/resilience-testing/chaos-engineering/use-chaos-engineering/infrastructure/types/ddcr/mtls-support.md) for the account.
{% endhint %}

### Installation <a href="#installation" id="installation"></a>

To install HNP, execute the below Helm command.

```bash
helm repo add harness-chaos https://harness.github.io/chaos-infra-helm-chart
```

```bash
helm upgrade --install chaos-agent-proxy harness-chaos/chaos-infra -n hce -f override.yaml
```

You can install HNP with or without using mTLS. Described below are sample configurations for both of them. To install HNP, execute the below Helm command.

```bash
helm repo add harness-chaos https://harness.github.io/chaos-infra-helm-chart
```

```bash
helm upgrade --install chaos-agent-proxy harness-chaos/chaos-infra -n hce -f override.yaml
```

You can install HNP with or without using mTLS. Described below are sample configurations for both of them.

#### Without mTLS <a href="#without-mtls" id="without-mtls"></a>

```yaml
tags:
  agentProxy: true
global:
  serverAddress: https://app.harness.io
```

#### With mTLS <a href="#with-mtls" id="with-mtls"></a>

Go to [create client certificate](/harness-ai/use-harness-platform/delegates/delegate/secure-delegates/delegate-mtls-support.md#configure-mtls-on-delegate) before configuring with mTLS.

```yaml
tags:
  agentProxy: true
global:
  serverAddress: https://<customer-name>.agent.app.harness.io

agent-proxy:
  volumes:
  - name: client-certificate
    secret:
      secretName: client-certificate

  volumeMounts:
  - mountPath: /etc/mtls
    name: client-certificate
    readOnly: true

  env:
  - name: CLIENT_CERT_PATH
    value: /etc/mtls/client.crt
  - name: CLIENT_KEY_PATH
    value: /etc/mtls/client.key
```

### HNP Configuration for Delegate-Driven Chaos Runner (DDCR) <a href="#hnp-configuration-for-delegate-driven-chaos-runner-ddcr" id="hnp-configuration-for-delegate-driven-chaos-runner-ddcr"></a>

You can enable proxy settings in DDCR that enables you to restrict all the outbound traffic to go through the proxy.

DDCR supports standard proxy variables `HTTP_PROXY` , `HTTPS_PROXY`, and `NO_PROXY`.

In general, the Harness portal connection goes through the proxy and you will need to specify `NO_PROXY` which is the `kubernetes` service IP in the `default` namespace.

* Go to **Environments** and select the environment that houses your Harness Delegate.

  ![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-64bb1291a366f8176b3951dcb96a9aa03d8af5e1%2Fproj-env.png?alt=media)
* Select the Delegate you installed, and select the **`⋮`** icon against the name of the Delegate and click **Edit**.

  ![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-d142340e3dd324227b756aecdb5e7572e9e36669%2Fselect-edit.png?alt=media)
* Configure the proxy settings and click **Save**.

  ![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-537b5b916643ffc0e24c026154e5d31f310dc07c%2Fproxy.png?alt=media)
* Instead, you can also provide `PROXY_URL` setting that is used to communicate with the Harness portal.

  ![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-0c9abf024925be3a5974cdc122c195e691ef7396%2Fmtls.png?alt=media)

### HNP Configuration for Discovery Agent <a href="#hnp-configuration-for-discovery-agent" id="hnp-configuration-for-discovery-agent"></a>

You can enable proxy settings in Discovery Agent that enables you to restrict all the outbound traffic to go through the proxy.

Discovery Agent supports standard proxy variables `HTTP_PROXY` , `HTTPS_PROXY`, and `NO_PROXY`.

In general, the Harness portal connection goes through the proxy and you will need to specify `NO_PROXY` which is Kubernetes service IP in default namespace.

* Go to **Project Settings** -> **Discovery**.

  ![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-ee39d004a5984b3f2e544c5096d1a22044f439c7%2Fproj-set.png?alt=media)
* Select the discovery agent you have created, and click **Edit**.

  ![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-a42102bfb3de9cc27c065a0eb7666071c4549c38%2Fedit-discovery.png?alt=media)
* Configure values for Proxy.

  ![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-537b5b916643ffc0e24c026154e5d31f310dc07c%2Fproxy.png?alt=media)
* Instead, you can also provide `PROXY_URL` setting that is used to communicate with the Harness portal.

  ![](https://2284173296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlSkpbpeYJ3rfGUkIrcyQ%2Fuploads%2Fgit-blob-0c9abf024925be3a5974cdc122c195e691ef7396%2Fmtls.png?alt=media)

{% @harness-feedback/feedback %}
