def _get_linklocal_entry_name(name, k8s_ns): if not k8s_ns: project_fq_name = vnc_kube_config.cluster_default_project_fq_name() else: project_fq_name = vnc_kube_config.cluster_project_fq_name(k8s_ns) ll_name = project_fq_name + [name] return "-".join(ll_name)
def _get_cluster_network(self): vn_fq_name = vnc_kube_config.cluster_default_project_fq_name() +\ [vnc_kube_config.cluster_default_network_name()] try: vn_obj = self._vnc_lib.virtual_network_read(fq_name=vn_fq_name) except NoIdError: return None return vn_obj
def _get_network(self, ns_name): ns = self._get_namespace(ns_name) if ns.is_isolated(): vn_fq_name = ns.get_network_fq_name() else: if self._default_vn_obj: return self._default_vn_obj proj_fq_name = vnc_kube_config.cluster_default_project_fq_name() vn_fq_name = proj_fq_name +\ [vnc_kube_config.cluster_default_network_name()] try: vn_obj = self._vnc_lib.virtual_network_read(fq_name=vn_fq_name) except NoIdError: self._logger.error("%s - %s Not Found" %(self._name, vn_fq_name)) return None if not ns.is_isolated(): self._default_vn_obj = vn_obj return vn_obj
def _get_network(self, pod_id, pod_namespace): """ Get network corresponding to this namesapce. """ vn_fq_name = None if self._is_pod_network_isolated(pod_namespace) == True: ns = self._get_namespace(pod_namespace) if ns: vn_fq_name = ns.get_network_fq_name() # If no network was found on the namesapce, default to the cluster # pod network. if not vn_fq_name: vn_fq_name = vnc_kube_config.cluster_default_project_fq_name() +\ [vnc_kube_config.cluster_default_network_name()] vn_obj = self._vnc_lib.virtual_network_read(fq_name=vn_fq_name) return vn_obj
def _get_network(self, pod_id, pod_namespace): """ Get virtual network to be associated with the pod. The heuristics to determine which virtual network to use for the pod is as follows: if (virtual network is annotated in the pod config): Use virtual network configured on the pod. else if (virtual network if annotated in the pod's namespace): Use virtual network configured on the namespace. else if (pod is in a isolated namespace): Use the virtual network associated with isolated namespace. else: Use the pod virtual network associated with kubernetes cluster. """ # Check for virtual-network configured on the pod. pod = PodKM.find_by_name_or_uuid(pod_id) vn_fq_name = pod.get_vn_fq_name() ns = self._get_namespace(pod_namespace) # Check of virtual network configured on the namespace. if not vn_fq_name: vn_fq_name = ns.get_annotated_network_fq_name() # If the pod's namespace is isolated, use the isolated virtual # network. if not vn_fq_name: if self._is_pod_network_isolated(pod_namespace) == True: vn_fq_name = ns.get_isolated_network_fq_name() # Finally, if no network was found, default to the cluster # pod network. if not vn_fq_name: vn_fq_name = vnc_kube_config.cluster_default_project_fq_name() +\ [vnc_kube_config.cluster_default_network_name()] vn_obj = self._vnc_lib.virtual_network_read(fq_name=vn_fq_name) return vn_obj