kubectl: add a space between effect and operator when printing tolerations

Empty key and non-empty effect means to match all keys and values and
the specified effect. However "kubectl describe" prints it without space
between effect and operator. This patch adds the space for this case.

Kubernetes-commit: 04185f4e533b9b8ebaabe1ed09516e85c5ed1ae1
This commit is contained in:
Quan Tian 2020-09-21 23:45:31 +08:00 committed by Kubernetes Publisher
parent 446628412f
commit 81f5e57cae
2 changed files with 3 additions and 1 deletions

View File

@ -4841,7 +4841,7 @@ func printTolerationsMultilineWithIndent(w PrefixWriter, initialIndent, title, i
// - operator: "Exists"
// is a special case which tolerates everything
if toleration.Operator == corev1.TolerationOpExists && len(toleration.Value) == 0 {
if len(toleration.Key) != 0 {
if len(toleration.Key) != 0 || len(toleration.Effect) != 0 {
w.Write(LEVEL_0, " op=Exists")
} else {
w.Write(LEVEL_0, "op=Exists")

View File

@ -180,6 +180,7 @@ func TestDescribePodTolerations(t *testing.T) {
Spec: corev1.PodSpec{
Tolerations: []corev1.Toleration{
{Operator: corev1.TolerationOpExists},
{Effect: corev1.TaintEffectNoSchedule, Operator: corev1.TolerationOpExists},
{Key: "key0", Operator: corev1.TolerationOpExists},
{Key: "key1", Value: "value1"},
{Key: "key2", Operator: corev1.TolerationOpEqual, Value: "value2", Effect: corev1.TaintEffectNoSchedule},
@ -195,6 +196,7 @@ func TestDescribePodTolerations(t *testing.T) {
t.Errorf("unexpected error: %v", err)
}
if !strings.Contains(out, " op=Exists\n") ||
!strings.Contains(out, ":NoSchedule op=Exists\n") ||
!strings.Contains(out, "key0 op=Exists\n") ||
!strings.Contains(out, "key1=value1\n") ||
!strings.Contains(out, "key2=value2:NoSchedule\n") ||