mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-10-05 15:26:57 +08:00
hotfix: delete old pod (#488)
This commit is contained in:
@@ -1108,6 +1108,10 @@ func deletePodImmediately(ctx context.Context, clientset *kubernetes.Clientset,
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// delete old pod then delete new pod
|
||||
sort.SliceStable(result.Items, func(i, j int) bool {
|
||||
return result.Items[i].DeletionTimestamp != nil
|
||||
})
|
||||
for _, item := range result.Items {
|
||||
options := metav1.DeleteOptions{GracePeriodSeconds: ptr.To[int64](0)}
|
||||
err = clientset.CoreV1().Pods(ns).Delete(ctx, item.Name, options)
|
||||
|
@@ -2,10 +2,15 @@ package handler
|
||||
|
||||
import (
|
||||
"net"
|
||||
"reflect"
|
||||
"sort"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/google/gopacket/routing"
|
||||
"github.com/libp2p/go-netroute"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
func TestRoute(t *testing.T) {
|
||||
@@ -149,3 +154,47 @@ func TestRemoveCIDRsContainingIPs(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestSort(t *testing.T) {
|
||||
list := v1.PodList{
|
||||
Items: []v1.Pod{
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "a",
|
||||
DeletionTimestamp: nil,
|
||||
},
|
||||
},
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "b",
|
||||
DeletionTimestamp: &metav1.Time{
|
||||
Time: time.Now(),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "c",
|
||||
DeletionTimestamp: nil,
|
||||
},
|
||||
},
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "d",
|
||||
DeletionTimestamp: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
sort.SliceStable(list.Items, func(i, j int) bool {
|
||||
return list.Items[i].DeletionTimestamp != nil
|
||||
})
|
||||
var names []string
|
||||
for _, item := range list.Items {
|
||||
names = append(names, item.Name)
|
||||
}
|
||||
equal := reflect.DeepEqual(names, []string{"b", "a", "c", "d"})
|
||||
if !equal {
|
||||
t.Fatal()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user