diff --git a/images/echoheaders/run.sh b/images/echoheaders/run.sh index 7dd3296047..8df757b9f4 100644 --- a/images/echoheaders/run.sh +++ b/images/echoheaders/run.sh @@ -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 \ diff --git a/internal/ingress/status/status.go b/internal/ingress/status/status.go index 4fd4d9fe0e..91f6edcd6e 100644 --- a/internal/ingress/status/status.go +++ b/internal/ingress/status/status.go @@ -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) diff --git a/internal/ingress/status/status_test.go b/internal/ingress/status/status_test.go index 925edf685a..70bac53b11 100644 --- a/internal/ingress/status/status_test.go +++ b/internal/ingress/status/status_test.go @@ -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{