# pf9ctl Binary Incorrectly Updating Proxy Settings

## Problem

* While updating proxy settings with the **pf9ctl** binary, the `/opt/pf9/hostagent/pf9-hostagent.env` file is being updated incorrectly.

Environment

* Platform9 Managed Kubernetes - v5.9 through v5.11
* pf9ctl

## Diagnosis

* Before applying `pf9ctl set-proxy` the file `/opt/pf9/hostagent/pf9-hostagent.env` looks like below.

{% tabs %}
{% tab title="Bash" %}

```bash
$ cat /opt/pf9/hostagent/pf9-hostagent.env
PYTHONPATH="/opt/pf9/hostagent/lib/python3.6/site-packages:/opt/pf9/hostagent/lib/python3.9/site-packages/bbslave:${PYTHONPATH}"
PYTHON_EGG_CACHE=/tmp/python-eggs
LD_LIBRARY_PATH="/opt/pf9/python/pf9-lib:/opt/pf9/python/pf9-hostagent-lib:${LD_LIBRARY_PATH}"
```

{% endtab %}
{% endtabs %}

* Setup proxy settings with `pf9ctl` on Node.

{% tabs %}
{% tab title="pf9ctl command" %}

```bash
$ pf9ctl set-proxy --protocol http --host-ip [IP_ADDRESS_1] --port [PORT] --no-proxy [IP_ADDRESS_2],[IP_ADDRESS_3]
```

{% endtab %}
{% endtabs %}

* After applying `pf9ctl set-proxy` the file `/opt/pf9/hostagent/pf9-hostagent.env` looks like below.

{% tabs %}
{% tab title="Bash" %}

```bash
$ cat /opt/pf9/hostagent/pf9-hostagent.env
PYTHONPATH="/opt/pf9/hostagent/lib/python3.6/site-packages:/opt/pf9/hostagent/lib/python3.9/site-packages/bbslave:${PYTHONPATH}"
PYTHON_EGG_CACHE=/tmp/python-eggs
LD_LIBRARY_PATH="/opt/pf9/python/pf9-lib:/opt/pf9/python/pf9-hostagent-lib:${LD_LIBRARY_PATH}"
export http_proxy=http://[IP_ADDRESS_1]:[PORT]
export https_proxy=http://[IP_ADDRESS_1]:[PORT]
export HTTP_PROXY=http://[IP_ADDRESS_1]:[PORT]
export HTTPS_PROXY=http://[IP_ADDRESS_1]:[PORT]
export no_proxy=localhost,127.0.0.1,::1,localhost.localdomain,localhost4,localhost6
export NO_PROXY=localhost,127.0.0.1,::1,localhost.localdomain,localhost4,localhost6
```

{% endtab %}
{% endtabs %}

* Hostagent Logs on the node:

{% tabs %}
{% tab title="Hostagent Logs" %}

```ruby
bud2-otp-cp1 systemd[1]: pf9-hostagent.service: Ignoring invalid environment assignment 'export HTTPS_PROXY=http://[IP_ADDRESS_1]:[PORT]': /opt/pf9/hostagent/pf9-hostagent.env
bud2-otp-cp1 systemd[1]: pf9-hostagent.service: Ignoring invalid environment assignment 'export no_proxy=localhost,127.0.0.1,::1,localhost.localdomain,localhost4,localhost6': /opt/pf9/>
bud2-otp-cp1 systemd[1]: pf9-hostagent.service: Ignoring invalid environment assignment 'export NO_PROXY=localhost,127.0.0.1,::1,localhost.localdomain,localhost4,localhost6': /opt/pf9/>
```

{% endtab %}
{% endtabs %}

## Cause

* This is due to a BUG: **PMK-6577** and is resolved in **PMK v5.12.**

## Workaround

* Manually update `/opt/pf9/hostagent/pf9-hostagent.env` file with required environment variables.

{% tabs %}
{% tab title="Bash" %}

```bash
$ cat /opt/pf9/hostagent/pf9-hostagent.env
PYTHONPATH="/opt/pf9/hostagent/lib/python3.6/site-packages:/opt/pf9/hostagent/lib/python3.9/site-packages/bbslave:${PYTHONPATH}"
PYTHON_EGG_CACHE=/tmp/python-eggs
LD_LIBRARY_PATH="/opt/pf9/python/pf9-lib:/opt/pf9/python/pf9-hostagent-lib:${LD_LIBRARY_PATH}"
http_proxy=http://[IP_ADDRESS_1]:[PORT]
https_proxy=http://[IP_ADDRESS_1]:[PORT]
HTTP_PROXY=http://[IP_ADDRESS_1]:[PORT]
HTTPS_PROXY=http://[IP_ADDRESS_1]:[PORT]
no_proxy=127.0.0.1,localhost,[IP_ADDRESS_2],[IP_ADDRESS_3]
NO_PROXY=127.0.0.1,localhost,[IP_ADDRESS_2],[IP_ADDRESS_3]
```

{% endtab %}
{% endtabs %}

* Restart pf9-hostagent service.

{% tabs %}
{% tab title="Bash" %}

```bash
$ systemctl restart pf9-hostagent
```

{% endtab %}
{% endtabs %}

* Verify the proxy settings by fetching pod logs.

{% tabs %}
{% tab title="Kubectl Command" %}

```bash
$ kubectl logs <POD_NAME> -n <NAMESPACE>
```

{% endtab %}
{% endtabs %}

## Additional Information

* To learn more about configuring a proxy for PMK Cluster, please refer to this [KB article](https://platform9.com/kb/kubernetes/set-proxy-config-for-pmk-clusters).
