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.
$ 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}"
- Setup proxy settings with
pf9ctl
on Node.
$ pf9ctl set-proxy --protocol http --host-ip [IP_ADDRESS_1] --port [PORT] --no-proxy [IP_ADDRESS_2],[IP_ADDRESS_3]
- After applying
pf9ctl set-proxy
the file/opt/pf9/hostagent/pf9-hostagent.env
looks like below.
$ 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
- Hostagent Logs on the node:
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/>
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.
$ 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]
- Restart pf9-hostagent service.
$ systemctl restart pf9-hostagent
- Verify the proxy settings by fetching pod logs.
$ kubectl logs <POD_NAME> -n <NAMESPACE>
Additional Information
- To learn more about configuring a proxy for PMK Cluster, please refer to this KB article.
Was this page helpful?