From c7dc98b48df0ebd49e91531081d0e1f3f074cddf Mon Sep 17 00:00:00 2001 From: Ole Markus With Date: Sun, 16 May 2021 11:11:40 +0200 Subject: [PATCH] Don't consider nodes with exclude-from-external-load-balancer eligible worker nodes in e2e The NLB instance target e2e tests in particular considers all nodes eligible targets. This on kOps, which labels control plane nodes with the exclude-from-external-load-balancer label. --- test/e2e/service/nlb_instance_target.go | 12 +++++++++--- test/e2e/service/nlb_instance_target_test.go | 15 ++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/test/e2e/service/nlb_instance_target.go b/test/e2e/service/nlb_instance_target.go index 91075b4d1..302af1782 100644 --- a/test/e2e/service/nlb_instance_target.go +++ b/test/e2e/service/nlb_instance_target.go @@ -55,12 +55,18 @@ func (s *NLBInstanceTestStack) GetLoadBalancerIngressHostName() string { } func (s *NLBInstanceTestStack) GetWorkerNodes(ctx context.Context, f *framework.Framework) ([]corev1.Node, error) { - nodeList := &corev1.NodeList{} - err := f.K8sClient.List(ctx, nodeList) + allNodes := &corev1.NodeList{} + err := f.K8sClient.List(ctx, allNodes) if err != nil { return nil, err } - return nodeList.Items, nil + nodeList := []corev1.Node{} + for _, node := range allNodes.Items { + if _, notarget := node.Labels["node.kubernetes.io/exclude-from-external-load-balancers"]; !notarget { + nodeList = append(nodeList, node) + } + } + return nodeList, nil } func (s *NLBInstanceTestStack) ApplyNodeLabels(ctx context.Context, f *framework.Framework, node *corev1.Node, labels map[string]string) error { diff --git a/test/e2e/service/nlb_instance_target_test.go b/test/e2e/service/nlb_instance_target_test.go index 184c244f5..dc92acb2a 100644 --- a/test/e2e/service/nlb_instance_target_test.go +++ b/test/e2e/service/nlb_instance_target_test.go @@ -47,8 +47,7 @@ var _ = Describe("test k8s service reconciled by the aws load balancer controlle }) By("verifying AWS loadbalancer resources", func() { - nodeList := &corev1.NodeList{} - err := tf.K8sClient.List(ctx, nodeList) + nodeList, err := stack.GetWorkerNodes(ctx, tf) Expect(err).ToNot(HaveOccurred()) err = verifyAWSLoadBalancerResources(ctx, tf, lbARN, LoadBalancerExpectation{ Type: "network", @@ -56,7 +55,7 @@ var _ = Describe("test k8s service reconciled by the aws load balancer controlle TargetType: "instance", Listeners: stack.resourceStack.getListenersPortMap(), TargetGroups: stack.resourceStack.getTargetGroupNodePortMap(), - NumTargets: len(nodeList.Items), + NumTargets: len(nodeList), TargetGroupHC: &TargetGroupHC{ Protocol: "TCP", Port: "traffic-port", @@ -69,10 +68,9 @@ var _ = Describe("test k8s service reconciled by the aws load balancer controlle Expect(err).NotTo(HaveOccurred()) }) By("waiting for target group targets to be healthy", func() { - nodeList := &corev1.NodeList{} - err := tf.K8sClient.List(ctx, nodeList) + nodeList, err := stack.GetWorkerNodes(ctx, tf) Expect(err).ToNot(HaveOccurred()) - err = waitUntilTargetsAreHealthy(ctx, tf, lbARN, len(nodeList.Items)) + err = waitUntilTargetsAreHealthy(ctx, tf, lbARN, len(nodeList)) Expect(err).NotTo(HaveOccurred()) }) By("waiting until DNS name is available", func() { @@ -174,8 +172,7 @@ var _ = Describe("test k8s service reconciled by the aws load balancer controlle Expect(lbARN).ToNot(BeEmpty()) }) By("verifying AWS loadbalancer resources", func() { - nodeList := &corev1.NodeList{} - err := tf.K8sClient.List(ctx, nodeList) + nodeList, err := stack.GetWorkerNodes(ctx, tf) Expect(err).ToNot(HaveOccurred()) err = verifyAWSLoadBalancerResources(ctx, tf, lbARN, LoadBalancerExpectation{ Type: "network", @@ -183,7 +180,7 @@ var _ = Describe("test k8s service reconciled by the aws load balancer controlle TargetType: "instance", Listeners: stack.resourceStack.getListenersPortMap(), TargetGroups: stack.resourceStack.getTargetGroupNodePortMap(), - NumTargets: len(nodeList.Items), + NumTargets: len(nodeList), TargetGroupHC: &TargetGroupHC{ Protocol: "TCP", Port: "traffic-port",