Skip to content

Commit 2ac187e

Browse files
authoredMar 23, 2025··
hotfix: delete old pod (#488)
1 parent b46f7a9 commit 2ac187e

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed
 

‎pkg/handler/connect.go

+4
Original file line numberDiff line numberDiff line change
@@ -1108,6 +1108,10 @@ func deletePodImmediately(ctx context.Context, clientset *kubernetes.Clientset,
11081108
if err != nil {
11091109
return err
11101110
}
1111+
// delete old pod then delete new pod
1112+
sort.SliceStable(result.Items, func(i, j int) bool {
1113+
return result.Items[i].DeletionTimestamp != nil
1114+
})
11111115
for _, item := range result.Items {
11121116
options := metav1.DeleteOptions{GracePeriodSeconds: ptr.To[int64](0)}
11131117
err = clientset.CoreV1().Pods(ns).Delete(ctx, item.Name, options)

‎pkg/handler/connect_test.go

+49
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@ package handler
22

33
import (
44
"net"
5+
"reflect"
6+
"sort"
57
"testing"
8+
"time"
69

710
"github.com/google/gopacket/routing"
811
"github.com/libp2p/go-netroute"
12+
v1 "k8s.io/api/core/v1"
13+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
914
)
1015

1116
func TestRoute(t *testing.T) {
@@ -149,3 +154,47 @@ func TestRemoveCIDRsContainingIPs(t *testing.T) {
149154
})
150155
}
151156
}
157+
158+
func TestSort(t *testing.T) {
159+
list := v1.PodList{
160+
Items: []v1.Pod{
161+
{
162+
ObjectMeta: metav1.ObjectMeta{
163+
Name: "a",
164+
DeletionTimestamp: nil,
165+
},
166+
},
167+
{
168+
ObjectMeta: metav1.ObjectMeta{
169+
Name: "b",
170+
DeletionTimestamp: &metav1.Time{
171+
Time: time.Now(),
172+
},
173+
},
174+
},
175+
{
176+
ObjectMeta: metav1.ObjectMeta{
177+
Name: "c",
178+
DeletionTimestamp: nil,
179+
},
180+
},
181+
{
182+
ObjectMeta: metav1.ObjectMeta{
183+
Name: "d",
184+
DeletionTimestamp: nil,
185+
},
186+
},
187+
},
188+
}
189+
sort.SliceStable(list.Items, func(i, j int) bool {
190+
return list.Items[i].DeletionTimestamp != nil
191+
})
192+
var names []string
193+
for _, item := range list.Items {
194+
names = append(names, item.Name)
195+
}
196+
equal := reflect.DeepEqual(names, []string{"b", "a", "c", "d"})
197+
if !equal {
198+
t.Fatal()
199+
}
200+
}

0 commit comments

Comments
 (0)
Please sign in to comment.