def _get_namespaces(self, namespace_selector, namespace=None): matching_namespaces = [] if not namespace_selector and namespace: matching_namespaces.append(self.kubernetes.get( '{}/namespaces/{}'.format(constants.K8S_API_BASE, namespace))) else: matching_namespaces.extend(driver_utils.get_namespaces( namespace_selector).get('items')) return matching_namespaces
def _get_pods(self, pod_selector, namespace=None, namespace_selector=None): matching_pods = {"items": []} if namespace_selector: matching_namespaces = driver_utils.get_namespaces( namespace_selector) for ns in matching_namespaces.get('items'): matching_pods = driver_utils.get_pods(pod_selector, ns['metadata']['name']) else: matching_pods = driver_utils.get_pods(pod_selector, namespace) return matching_pods.get('items')
def _get_namespaces_cidr(self, namespace_selector, namespace=None): cidrs = [] if not namespace_selector and namespace: ns = self.kubernetes.get( '{}/namespaces/{}'.format(constants.K8S_API_BASE, namespace)) ns_cidr = driver_utils.get_namespace_subnet_cidr(ns) cidrs.append({'cidr': ns_cidr, 'namespace': namespace}) else: matching_namespaces = driver_utils.get_namespaces( namespace_selector) for ns in matching_namespaces.get('items'): # NOTE(ltomasbo): This requires the namespace handler to be # also enabled ns_cidr = driver_utils.get_namespace_subnet_cidr(ns) ns_name = ns['metadata']['name'] cidrs.append({'cidr': ns_cidr, 'namespace': ns_name}) return cidrs
def _get_pods_ips(self, pod_selector, namespace=None, namespace_selector=None): ips = [] matching_pods = {"items": []} if namespace_selector: matching_namespaces = driver_utils.get_namespaces( namespace_selector) for ns in matching_namespaces.get('items'): matching_pods = driver_utils.get_pods(pod_selector, ns['metadata']['name']) else: matching_pods = driver_utils.get_pods(pod_selector, namespace) for pod in matching_pods.get('items'): if pod['status'].get('podIP'): pod_ip = pod['status']['podIP'] ns = pod['metadata']['namespace'] ips.append({'cidr': pod_ip, 'namespace': ns}) return ips