From 925f3091f8a320137a215694528355da489d3684 Mon Sep 17 00:00:00 2001 From: Wenhao Zhou <34303854+zhou1203@users.noreply.github.com> Date: Thu, 21 Sep 2023 14:36:26 +0800 Subject: [PATCH] Feat: Support search pods by pod ip (#5921) feat: support search pods by pod ip Signed-off-by: wenhaozhou --- pkg/models/resources/v1alpha3/pod/pods.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkg/models/resources/v1alpha3/pod/pods.go b/pkg/models/resources/v1alpha3/pod/pods.go index 7518b622c..583e19715 100644 --- a/pkg/models/resources/v1alpha3/pod/pods.go +++ b/pkg/models/resources/v1alpha3/pod/pods.go @@ -36,6 +36,7 @@ const ( fieldServiceName = "serviceName" fieldPhase = "phase" fieldStatus = "status" + fieldPodIP = "podIP" statusTypeWaitting = "Waiting" statusTypeRunning = "Running" @@ -103,11 +104,22 @@ func (p *podsGetter) filter(object runtime.Object, filter query.Filter) bool { return statusType == string(filter.Value) case fieldPhase: return string(pod.Status.Phase) == string(filter.Value) + case fieldPodIP: + return p.podWithIP(pod, string(filter.Value)) default: return v1alpha3.DefaultObjectMetaFilter(pod.ObjectMeta, filter) } } +func (p *podsGetter) podWithIP(item *corev1.Pod, ipAddress string) bool { + for _, ip := range item.Status.PodIPs { + if strings.Contains(ip.String(), ipAddress) { + return true + } + } + return false +} + func (p *podsGetter) podBindPVC(item *corev1.Pod, pvcName string) bool { for _, v := range item.Spec.Volumes { if v.VolumeSource.PersistentVolumeClaim != nil &&