mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-13 21:25:09 +00:00
Kubelet talks securely to apiserver.
Configure apiserver to serve Securely on port 6443. Generate token for kubelets during master VM startup. Put token into file apiserver can get and another file the kubelets can get. Added e2e test.
This commit is contained in:
@@ -169,6 +169,75 @@ func TestPodUpdate(c *client.Client) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// TestKubeletSendsEvent checks that kubelets and scheduler send events about pods scheduling and running.
|
||||
func TestKubeletSendsEvent(c *client.Client) bool {
|
||||
podClient := c.Pods(api.NamespaceDefault)
|
||||
|
||||
pod := loadPodOrDie("./api/examples/pod.json")
|
||||
value := strconv.Itoa(time.Now().Nanosecond())
|
||||
pod.Labels["time"] = value
|
||||
|
||||
_, err := podClient.Create(pod)
|
||||
if err != nil {
|
||||
glog.Errorf("Failed to create pod: %v", err)
|
||||
return false
|
||||
}
|
||||
defer podClient.Delete(pod.Name)
|
||||
waitForPodRunning(c, pod.Name)
|
||||
pods, err := podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
|
||||
if len(pods.Items) != 1 {
|
||||
glog.Errorf("Failed to find the correct pod")
|
||||
return false
|
||||
}
|
||||
|
||||
_, err = podClient.Get(pod.Name)
|
||||
if err != nil {
|
||||
glog.Errorf("Failed to get pod: %v", err)
|
||||
return false
|
||||
}
|
||||
|
||||
// Check for scheduler event about the pod.
|
||||
events, err := c.Events(api.NamespaceDefault).List(
|
||||
labels.Everything(),
|
||||
labels.Set{
|
||||
"involvedObject.name": pod.Name,
|
||||
"involvedObject.kind": "Pod",
|
||||
"involvedObject.namespace": api.NamespaceDefault,
|
||||
"source": "scheduler",
|
||||
}.AsSelector(),
|
||||
)
|
||||
if err != nil {
|
||||
glog.Error("Error while listing events:", err)
|
||||
return false
|
||||
}
|
||||
if len(events.Items) == 0 {
|
||||
glog.Error("Didn't see any scheduler events even though pod was running.")
|
||||
return false
|
||||
}
|
||||
glog.Info("Saw scheduler event for our pod.")
|
||||
|
||||
// Check for kubelet event about the pod.
|
||||
events, err = c.Events(api.NamespaceDefault).List(
|
||||
labels.Everything(),
|
||||
labels.Set{
|
||||
"involvedObject.name": pod.Name,
|
||||
"involvedObject.kind": "BoundPod",
|
||||
"involvedObject.namespace": api.NamespaceDefault,
|
||||
"source": "kubelet",
|
||||
}.AsSelector(),
|
||||
)
|
||||
if err != nil {
|
||||
glog.Error("Error while listing events:", err)
|
||||
return false
|
||||
}
|
||||
if len(events.Items) == 0 {
|
||||
glog.Error("Didn't see any kubelet events even though pod was running.")
|
||||
return false
|
||||
}
|
||||
glog.Info("Saw kubelet event for our pod.")
|
||||
return true
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||
@@ -186,6 +255,7 @@ func main() {
|
||||
|
||||
tests := []func(c *client.Client) bool{
|
||||
TestKubernetesROService,
|
||||
TestKubeletSendsEvent,
|
||||
// TODO(brendandburns): fix this test and re-add it: TestPodUpdate,
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user