`LocationParseError` on autogenerated kubectl from Juju
#2,031 opened on Mar 20, 2023
Repository metrics
- Stars
- (6,225 stars)
- PR merge metrics
- (Avg merge 10d 3h) (2 merged PRs in 30d)
Description
What happened (please include outputs or screenshots):
Juju generates kubectl configs for users when adding them to a Juju controller and supports multiple main controllers resulting in an array output in the hostname. When running config.load_kube_config() a urllib3.exceptions.LocationParseError is returned as it cannot parse the array correctly.
The configuration file works perfectly well with kubectl.
What you expected to happen: One of the following:
- A standard failover attempt system when connecting
- All IPs validated, random one used
- All IPs validated, first one used
How to reproduce it (as minimally and precisely as possible):
Add square brackets around the IP/hostname in your kubectl config file as shown below
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ...
server: https://[10.1.x.x, 10.1.x.y]:443
name: juju-cluster
Environment:
- Kubernetes version (
kubectl version):
Client Version: v1.26.3
Kustomize Version: v4.5.7
Server Version: v1.25.8
- OS (e.g., MacOS 10.13.6): Ubuntu 20.04
- Python version (
python --version)3.9.13 - Python client version (
pip list | grep kubernetes) 26.1.0