mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-10-05 23:36:59 +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 {
|
if err != nil {
|
||||||
return err
|
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 {
|
for _, item := range result.Items {
|
||||||
options := metav1.DeleteOptions{GracePeriodSeconds: ptr.To[int64](0)}
|
options := metav1.DeleteOptions{GracePeriodSeconds: ptr.To[int64](0)}
|
||||||
err = clientset.CoreV1().Pods(ns).Delete(ctx, item.Name, options)
|
err = clientset.CoreV1().Pods(ns).Delete(ctx, item.Name, options)
|
||||||
|
@@ -2,10 +2,15 @@ package handler
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"net"
|
"net"
|
||||||
|
"reflect"
|
||||||
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/google/gopacket/routing"
|
"github.com/google/gopacket/routing"
|
||||||
"github.com/libp2p/go-netroute"
|
"github.com/libp2p/go-netroute"
|
||||||
|
v1 "k8s.io/api/core/v1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRoute(t *testing.T) {
|
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