diff --git a/kubeapi-load-balancer/lib/charms/layer/kubernetes_common.py b/kubeapi-load-balancer/lib/charms/layer/kubernetes_common.py index e984500..82d82d6 100644 --- a/kubeapi-load-balancer/lib/charms/layer/kubernetes_common.py +++ b/kubeapi-load-balancer/lib/charms/layer/kubernetes_common.py @@ -182,6 +182,17 @@ def get_ingress_address(endpoint_name, ignore_addresses=None): ingress_addresses = network_info["ingress-addresses"] network_info["ingress-addresses"] = [ip for ip in ingress_addresses if ip not in excluded_ips] + excluded_ips = [] + excluded_interfaces = ["vxlan", "kube", "wg", "docker", "cali", "virbr", "cni", "flannel"] + for addr in network_info["bind-addresses"]: + for prefix in excluded_interfaces: + if addr["interface-name"].startswith(prefix): + for ip in addr["addresses"]: + excluded_ips.append(ip["value"]) + + ingress_addresses = network_info["ingress-addresses"] + network_info["ingress-addresses"] = [ip for ip in ingress_addresses if ip not in excluded_ips] + addresses = network_info["ingress-addresses"] if ignore_addresses: diff --git a/kubernetes-control-plane/lib/charms/layer/kubernetes_common.py b/kubernetes-control-plane/lib/charms/layer/kubernetes_common.py index e984500..82d82d6 100644 --- a/kubernetes-control-plane/lib/charms/layer/kubernetes_common.py +++ b/kubernetes-control-plane/lib/charms/layer/kubernetes_common.py @@ -182,6 +182,17 @@ def get_ingress_address(endpoint_name, ignore_addresses=None): ingress_addresses = network_info["ingress-addresses"] network_info["ingress-addresses"] = [ip for ip in ingress_addresses if ip not in excluded_ips] + excluded_ips = [] + excluded_interfaces = ["vxlan", "kube", "wg", "docker", "cali", "virbr", "cni", "flannel"] + for addr in network_info["bind-addresses"]: + for prefix in excluded_interfaces: + if addr["interface-name"].startswith(prefix): + for ip in addr["addresses"]: + excluded_ips.append(ip["value"]) + + ingress_addresses = network_info["ingress-addresses"] + network_info["ingress-addresses"] = [ip for ip in ingress_addresses if ip not in excluded_ips] + addresses = network_info["ingress-addresses"] if ignore_addresses: diff --git a/kubernetes-worker/lib/charms/layer/kubernetes_common.py b/kubernetes-worker/lib/charms/layer/kubernetes_common.py index e984500..82d82d6 100644 --- a/kubernetes-worker/lib/charms/layer/kubernetes_common.py +++ b/kubernetes-worker/lib/charms/layer/kubernetes_common.py @@ -182,6 +182,17 @@ def get_ingress_address(endpoint_name, ignore_addresses=None): ingress_addresses = network_info["ingress-addresses"] network_info["ingress-addresses"] = [ip for ip in ingress_addresses if ip not in excluded_ips] + excluded_ips = [] + excluded_interfaces = ["vxlan", "kube", "wg", "docker", "cali", "virbr", "cni", "flannel"] + for addr in network_info["bind-addresses"]: + for prefix in excluded_interfaces: + if addr["interface-name"].startswith(prefix): + for ip in addr["addresses"]: + excluded_ips.append(ip["value"]) + + ingress_addresses = network_info["ingress-addresses"] + network_info["ingress-addresses"] = [ip for ip in ingress_addresses if ip not in excluded_ips] + addresses = network_info["ingress-addresses"] if ignore_addresses: