mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-01 18:58:18 +00:00
cmd/kube-controller-manager
This commit is contained in:
@@ -21,10 +21,10 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/client/cache"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
@@ -40,7 +40,7 @@ func (*FakeController) HasSynced() bool {
|
||||
func TestGCTerminated(t *testing.T) {
|
||||
type nameToPhase struct {
|
||||
name string
|
||||
phase api.PodPhase
|
||||
phase v1.PodPhase
|
||||
}
|
||||
|
||||
testCases := []struct {
|
||||
@@ -50,8 +50,8 @@ func TestGCTerminated(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodFailed},
|
||||
{name: "b", phase: api.PodSucceeded},
|
||||
{name: "a", phase: v1.PodFailed},
|
||||
{name: "b", phase: v1.PodSucceeded},
|
||||
},
|
||||
threshold: 0,
|
||||
// threshold = 0 disables terminated pod deletion
|
||||
@@ -59,34 +59,34 @@ func TestGCTerminated(t *testing.T) {
|
||||
},
|
||||
{
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodFailed},
|
||||
{name: "b", phase: api.PodSucceeded},
|
||||
{name: "c", phase: api.PodFailed},
|
||||
{name: "a", phase: v1.PodFailed},
|
||||
{name: "b", phase: v1.PodSucceeded},
|
||||
{name: "c", phase: v1.PodFailed},
|
||||
},
|
||||
threshold: 1,
|
||||
deletedPodNames: sets.NewString("a", "b"),
|
||||
},
|
||||
{
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodRunning},
|
||||
{name: "b", phase: api.PodSucceeded},
|
||||
{name: "c", phase: api.PodFailed},
|
||||
{name: "a", phase: v1.PodRunning},
|
||||
{name: "b", phase: v1.PodSucceeded},
|
||||
{name: "c", phase: v1.PodFailed},
|
||||
},
|
||||
threshold: 1,
|
||||
deletedPodNames: sets.NewString("b"),
|
||||
},
|
||||
{
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodFailed},
|
||||
{name: "b", phase: api.PodSucceeded},
|
||||
{name: "a", phase: v1.PodFailed},
|
||||
{name: "b", phase: v1.PodSucceeded},
|
||||
},
|
||||
threshold: 1,
|
||||
deletedPodNames: sets.NewString("a"),
|
||||
},
|
||||
{
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodFailed},
|
||||
{name: "b", phase: api.PodSucceeded},
|
||||
{name: "a", phase: v1.PodFailed},
|
||||
{name: "b", phase: v1.PodSucceeded},
|
||||
},
|
||||
threshold: 5,
|
||||
deletedPodNames: sets.NewString(),
|
||||
@@ -108,16 +108,16 @@ func TestGCTerminated(t *testing.T) {
|
||||
creationTime := time.Unix(0, 0)
|
||||
for _, pod := range test.pods {
|
||||
creationTime = creationTime.Add(1 * time.Hour)
|
||||
gcc.podStore.Indexer.Add(&api.Pod{
|
||||
ObjectMeta: api.ObjectMeta{Name: pod.name, CreationTimestamp: unversioned.Time{Time: creationTime}},
|
||||
Status: api.PodStatus{Phase: pod.phase},
|
||||
Spec: api.PodSpec{NodeName: "node"},
|
||||
gcc.podStore.Indexer.Add(&v1.Pod{
|
||||
ObjectMeta: v1.ObjectMeta{Name: pod.name, CreationTimestamp: unversioned.Time{Time: creationTime}},
|
||||
Status: v1.PodStatus{Phase: pod.phase},
|
||||
Spec: v1.PodSpec{NodeName: "node"},
|
||||
})
|
||||
}
|
||||
|
||||
store := cache.NewStore(cache.MetaNamespaceKeyFunc)
|
||||
store.Add(&api.Node{
|
||||
ObjectMeta: api.ObjectMeta{Name: "node"},
|
||||
store.Add(&v1.Node{
|
||||
ObjectMeta: v1.ObjectMeta{Name: "node"},
|
||||
})
|
||||
gcc.nodeStore = cache.StoreToNodeLister{Store: store}
|
||||
gcc.podController = &FakeController{}
|
||||
@@ -143,7 +143,7 @@ func TestGCTerminated(t *testing.T) {
|
||||
func TestGCOrphaned(t *testing.T) {
|
||||
type nameToPhase struct {
|
||||
name string
|
||||
phase api.PodPhase
|
||||
phase v1.PodPhase
|
||||
}
|
||||
|
||||
testCases := []struct {
|
||||
@@ -153,15 +153,15 @@ func TestGCOrphaned(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodFailed},
|
||||
{name: "b", phase: api.PodSucceeded},
|
||||
{name: "a", phase: v1.PodFailed},
|
||||
{name: "b", phase: v1.PodSucceeded},
|
||||
},
|
||||
threshold: 0,
|
||||
deletedPodNames: sets.NewString("a", "b"),
|
||||
},
|
||||
{
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodRunning},
|
||||
{name: "a", phase: v1.PodRunning},
|
||||
},
|
||||
threshold: 1,
|
||||
deletedPodNames: sets.NewString("a"),
|
||||
@@ -183,10 +183,10 @@ func TestGCOrphaned(t *testing.T) {
|
||||
creationTime := time.Unix(0, 0)
|
||||
for _, pod := range test.pods {
|
||||
creationTime = creationTime.Add(1 * time.Hour)
|
||||
gcc.podStore.Indexer.Add(&api.Pod{
|
||||
ObjectMeta: api.ObjectMeta{Name: pod.name, CreationTimestamp: unversioned.Time{Time: creationTime}},
|
||||
Status: api.PodStatus{Phase: pod.phase},
|
||||
Spec: api.PodSpec{NodeName: "node"},
|
||||
gcc.podStore.Indexer.Add(&v1.Pod{
|
||||
ObjectMeta: v1.ObjectMeta{Name: pod.name, CreationTimestamp: unversioned.Time{Time: creationTime}},
|
||||
Status: v1.PodStatus{Phase: pod.phase},
|
||||
Spec: v1.PodSpec{NodeName: "node"},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -220,7 +220,7 @@ func TestGCOrphaned(t *testing.T) {
|
||||
func TestGCUnscheduledTerminating(t *testing.T) {
|
||||
type nameToPhase struct {
|
||||
name string
|
||||
phase api.PodPhase
|
||||
phase v1.PodPhase
|
||||
deletionTimeStamp *unversioned.Time
|
||||
nodeName string
|
||||
}
|
||||
@@ -233,18 +233,18 @@ func TestGCUnscheduledTerminating(t *testing.T) {
|
||||
{
|
||||
name: "Unscheduled pod in any phase must be deleted",
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodFailed, deletionTimeStamp: &unversioned.Time{}, nodeName: ""},
|
||||
{name: "b", phase: api.PodSucceeded, deletionTimeStamp: &unversioned.Time{}, nodeName: ""},
|
||||
{name: "c", phase: api.PodRunning, deletionTimeStamp: &unversioned.Time{}, nodeName: ""},
|
||||
{name: "a", phase: v1.PodFailed, deletionTimeStamp: &unversioned.Time{}, nodeName: ""},
|
||||
{name: "b", phase: v1.PodSucceeded, deletionTimeStamp: &unversioned.Time{}, nodeName: ""},
|
||||
{name: "c", phase: v1.PodRunning, deletionTimeStamp: &unversioned.Time{}, nodeName: ""},
|
||||
},
|
||||
deletedPodNames: sets.NewString("a", "b", "c"),
|
||||
},
|
||||
{
|
||||
name: "Scheduled pod in any phase must not be deleted",
|
||||
pods: []nameToPhase{
|
||||
{name: "a", phase: api.PodFailed, deletionTimeStamp: nil, nodeName: ""},
|
||||
{name: "b", phase: api.PodSucceeded, deletionTimeStamp: nil, nodeName: "node"},
|
||||
{name: "c", phase: api.PodRunning, deletionTimeStamp: &unversioned.Time{}, nodeName: "node"},
|
||||
{name: "a", phase: v1.PodFailed, deletionTimeStamp: nil, nodeName: ""},
|
||||
{name: "b", phase: v1.PodSucceeded, deletionTimeStamp: nil, nodeName: "node"},
|
||||
{name: "c", phase: v1.PodRunning, deletionTimeStamp: &unversioned.Time{}, nodeName: "node"},
|
||||
},
|
||||
deletedPodNames: sets.NewString(),
|
||||
},
|
||||
@@ -265,11 +265,11 @@ func TestGCUnscheduledTerminating(t *testing.T) {
|
||||
creationTime := time.Unix(0, 0)
|
||||
for _, pod := range test.pods {
|
||||
creationTime = creationTime.Add(1 * time.Hour)
|
||||
gcc.podStore.Indexer.Add(&api.Pod{
|
||||
ObjectMeta: api.ObjectMeta{Name: pod.name, CreationTimestamp: unversioned.Time{Time: creationTime},
|
||||
gcc.podStore.Indexer.Add(&v1.Pod{
|
||||
ObjectMeta: v1.ObjectMeta{Name: pod.name, CreationTimestamp: unversioned.Time{Time: creationTime},
|
||||
DeletionTimestamp: pod.deletionTimeStamp},
|
||||
Status: api.PodStatus{Phase: pod.phase},
|
||||
Spec: api.PodSpec{NodeName: pod.nodeName},
|
||||
Status: v1.PodStatus{Phase: pod.phase},
|
||||
Spec: v1.PodSpec{NodeName: pod.nodeName},
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user