Skip to content
This repository was archived by the owner on Jul 30, 2021. It is now read-only.

Commit deb04e0

Browse files
author
Patrick Baxter
authored
Merge pull request #539 from pbx0/api-del
e2e: add delete apiserver test
2 parents ca27c9e + 1ac0989 commit deb04e0

File tree

4 files changed

+73
-7
lines changed

4 files changed

+73
-7
lines changed

e2e/deleteapi_test.go

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package e2e
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
"time"
7+
8+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9+
)
10+
11+
func TestDeleteAPI(t *testing.T) {
12+
apiPods, err := client.CoreV1().Pods("kube-system").List(metav1.ListOptions{LabelSelector: "k8s-app=kube-apiserver"})
13+
if err != nil {
14+
t.Fatal(err)
15+
}
16+
17+
// delete any api-server pods
18+
for i, pod := range apiPods.Items {
19+
err := client.CoreV1().Pods("kube-system").Delete(pod.ObjectMeta.Name, &metav1.DeleteOptions{})
20+
if err != nil {
21+
// TODO: if HA we should be able to successfully
22+
// delete all. Until then just log if we can't delete
23+
// something that isn't the first pod.
24+
if i == 0 {
25+
t.Fatalf("error deleting api-server pod: %v", err)
26+
} else {
27+
t.Logf("error deleting api-server pod: %v", err)
28+
}
29+
}
30+
}
31+
32+
// wait for api-server to go down by waiting until listing pods returns
33+
// errors. This is potentially error prone, but without waiting for the
34+
// apiserver to go down the next step will return sucess before the
35+
// apiserver is ever destroyed.
36+
waitDestroy := func() error {
37+
// only checking api being down , specific function not important
38+
_, err := client.Discovery().ServerVersion()
39+
40+
if err == nil {
41+
return fmt.Errorf("waiting for apiserver to go down: %v", err)
42+
}
43+
return nil
44+
}
45+
46+
if err := retry(100, 500*time.Millisecond, waitDestroy); err != nil {
47+
t.Fatal(err)
48+
}
49+
50+
// wait until api server is back up
51+
waitAPI := func() error {
52+
// only checking for presence of api returning, specific function not important
53+
_, err := client.Discovery().ServerVersion()
54+
if err != nil {
55+
return fmt.Errorf("waiting for apiserver to return: %v", err)
56+
}
57+
return nil
58+
}
59+
if err := retry(30, 10*time.Second, waitAPI); err != nil {
60+
t.Fatal(err)
61+
}
62+
}

e2e/etcdscale_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ func resizeSelfHostedEtcd(c kubernetes.Interface, size int) error {
132132
return nil
133133
}
134134

135-
if err := retry(15, 10*time.Second, podsReady); err != nil {
136-
return fmt.Errorf("Waited 150 seconds for etcd to scale: %v", err)
135+
if err := retry(31, 10*time.Second, podsReady); err != nil {
136+
return fmt.Errorf("Waited 300 seconds for etcd to scale: %v", err)
137137
}
138138

139139
return nil

hack/terraform-quickstart/iam.tf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
resource "aws_iam_instance_profile" "bk_profile" {
22
name_prefix = "bootkube_e2e_profile"
3-
role = "${aws_iam_role.bk_role.name}"
3+
role = "${aws_iam_role.bk_role.id}"
4+
5+
provisioner "local-exec" {
6+
command = "sleep 90"
7+
}
48
}
59

610
resource "aws_iam_role" "bk_role" {

hack/terraform-quickstart/main.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ resource "aws_instance" "worker_node" {
2828
}
2929

3030
resource "aws_instance" "master_node" {
31-
ami = "${data.aws_ami.coreos_ami.image_id}"
32-
instance_type = "m3.medium"
33-
key_name = "${var.ssh_key}"
34-
count = "${var.additional_masters}"
31+
ami = "${data.aws_ami.coreos_ami.image_id}"
32+
instance_type = "m3.medium"
33+
key_name = "${var.ssh_key}"
34+
count = "${var.additional_masters}"
3535
iam_instance_profile = "${aws_iam_instance_profile.bk_profile.id}"
3636

3737
tags {

0 commit comments

Comments
 (0)