Only pods in running phase are vallid for status

This commit is contained in:
Manuel de Brito Fontes 2018-02-15 01:21:17 -03:00
parent 1f79333789
commit f8c26b3bea
No known key found for this signature in database
GPG key ID: 786136016A8BA02A
3 changed files with 37 additions and 0 deletions

View file

@ -1,5 +1,19 @@
#!/bin/bash
# Copyright 2018 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
echo "Generating self-signed cert"
mkdir -p /certs
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \

View file

@ -260,6 +260,11 @@ func (s *statusSync) runningAddresses() ([]string, error) {
}
for _, pod := range pods.Items {
// only Running pods are valid
if pod.Status.Phase != apiv1.PodRunning {
continue
}
name := k8s.GetNodeIPOrName(s.Client, pod.Spec.NodeName, s.UseNodeInternalIP)
if !sliceutils.StringInSlice(name, addrs) {
addrs = append(addrs, name)

View file

@ -66,6 +66,21 @@ func buildSimpleClientSet() *testclient.Clientset {
Spec: apiv1.PodSpec{
NodeName: "foo_node_2",
},
Status: apiv1.PodStatus{
Phase: apiv1.PodRunning,
},
},
{
ObjectMeta: metav1.ObjectMeta{
Name: "foo1-unknown",
Namespace: apiv1.NamespaceDefault,
},
Spec: apiv1.PodSpec{
NodeName: "foo_node_1",
},
Status: apiv1.PodStatus{
Phase: apiv1.PodUnknown,
},
},
{
ObjectMeta: metav1.ObjectMeta{
@ -87,6 +102,9 @@ func buildSimpleClientSet() *testclient.Clientset {
Spec: apiv1.PodSpec{
NodeName: "foo_node_2",
},
Status: apiv1.PodStatus{
Phase: apiv1.PodRunning,
},
},
}},
&apiv1.ServiceList{Items: []apiv1.Service{