in pkg/resolvers/endpoints.go [104:131]
func (r *defaultEndpointsResolver) computePodSelectorEndpoints(ctx context.Context, policy *networking.NetworkPolicy) ([]policyinfo.PodEndpoint, error) {
var podEndpoints []policyinfo.PodEndpoint
podSelector, err := metav1.LabelSelectorAsSelector(&policy.Spec.PodSelector)
if err != nil {
return nil, errors.Wrap(err, "unable to get pod selector")
}
podList := &corev1.PodList{}
if err := r.k8sClient.List(ctx, podList, &client.ListOptions{
LabelSelector: podSelector,
Namespace: policy.Namespace,
}); err != nil {
r.logger.Info("Unable to List Pods", "err", err)
return nil, err
}
for _, pod := range podList.Items {
podIP := k8s.GetPodIP(&pod)
if len(podIP) > 0 {
podEndpoints = append(podEndpoints, policyinfo.PodEndpoint{
PodIP: policyinfo.NetworkAddress(podIP),
HostIP: policyinfo.NetworkAddress(pod.Status.HostIP),
Name: pod.Name,
Namespace: pod.Namespace,
})
}
}
r.logger.V(1).Info("Resolved pod selector endpoints", "policy", k8s.NamespacedName(policy), "pod endpoints", podEndpoints)
return podEndpoints, nil
}