Skip to content

Commit fa56af4

Browse files
committed
E2E test fix
1 parent f89702f commit fa56af4

File tree

5 files changed

+61
-10
lines changed

5 files changed

+61
-10
lines changed

test/e2e/pipeline/installer/liqoctl/setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ do
7777
fi
7878
if [[ "${INFRA}" == "cluster-api" ]]; then
7979
LIQO_PROVIDER="kubeadm"
80-
COMMON_ARGS=("${COMMON_ARGS[@]}" --set auth.service.type=NodePort --set gateway.service.type=NodePort)
80+
COMMON_ARGS=("${COMMON_ARGS[@]}" --set auth.service.type=NodePort --set peering.networking.gateway.server.service.type=NodePort )
8181
else
8282
LIQO_PROVIDER="${INFRA}"
8383
fi

test/e2e/postinstall/basic_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ var _ = Describe("Liqo E2E", func() {
8888
Eventually(func() bool {
8989
readyPods, notReadyPods, err := util.ArePodsUp(ctx, cluster.NativeClient, tenantNs.Name)
9090
klog.Infof("Tenant pods status: %d ready, %d not ready", len(readyPods), len(notReadyPods))
91-
return err == nil && len(notReadyPods) == 0 && len(readyPods) == 1
91+
return err == nil && len(notReadyPods) == 0 && len(readyPods) == 2
9292
}, timeout, interval).Should(BeTrue())
9393
}
9494
},

test/e2e/testutils/microservices/deploy_app.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,25 @@ func CheckApplicationIsWorking(t ginkgo.GinkgoTInterface, options *k8s.KubectlOp
9090
if len(nodes) == 0 {
9191
return fmt.Errorf("no nodes retrieved from the cluster")
9292
}
93-
nodeAddress, err := getInternalAddress(nodes[0].Status.Addresses)
94-
if err != nil {
95-
return err
93+
94+
var nodeAddress string
95+
if len(nodes) == 1 {
96+
nodeAddress, err = getInternalAddress(nodes[0].Status.Addresses)
97+
if err != nil {
98+
return err
99+
}
100+
} else {
101+
for i := range nodes {
102+
if util.IsNodeControlPlane(nodes[i].Spec.Taints) {
103+
continue
104+
}
105+
nodeAddress, err = getInternalAddress(nodes[i].Status.Addresses)
106+
if err != nil {
107+
return err
108+
}
109+
}
96110
}
111+
97112
url := fmt.Sprintf("http://%s:%d", nodeAddress, service.Spec.Ports[0].NodePort)
98113
return http_helper.HttpGetWithRetryWithCustomValidationE(t, url, nil, retries, sleepBetweenRetries, func(code int, body string) bool {
99114
return code == 200

test/e2e/testutils/util/exec.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ func TriggerCheckNodeConnectivity(localNodes *v1.NodeList, command string, nodeP
8787
return fmt.Errorf("nodePort Value invalid (Must be >= 0)")
8888
}
8989
for index := range localNodes.Items {
90+
if len(localNodes.Items) != 1 && IsNodeControlPlane(localNodes.Items[index].Spec.Taints) {
91+
continue
92+
}
9093
cmd := command + localNodes.Items[index].Status.Addresses[0].Address + ":" + strconv.Itoa(nodePortValue)
9194
c := exec.Command("sh", "-c", cmd) //nolint:gosec // Just a test, no need for this check
9295
output := &bytes.Buffer{}

test/e2e/testutils/util/nodes.go

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ package util
1717
import (
1818
"context"
1919

20-
v1 "k8s.io/api/core/v1"
20+
corev1 "k8s.io/api/core/v1"
2121
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2222
"k8s.io/apimachinery/pkg/labels"
2323
"k8s.io/client-go/kubernetes"
@@ -26,15 +26,48 @@ import (
2626
"github.com/liqotech/liqo/pkg/consts"
2727
)
2828

29+
const (
30+
// controlPlaneTaintKey is the key of the taint applied to control-plane nodes.
31+
controlPlaneTaintKey = "node-role.kubernetes.io/control-plane"
32+
)
33+
34+
// IsNodeControlPlane checks if the node has the control-plane taint.
35+
func IsNodeControlPlane(taints []corev1.Taint) bool {
36+
for _, taint := range taints {
37+
if taint.Key == controlPlaneTaintKey {
38+
return true
39+
}
40+
}
41+
return false
42+
}
43+
2944
// GetNodes returns the list of nodes of the cluster matching the given labels.
30-
func GetNodes(ctx context.Context, client kubernetes.Interface, clusterID, labelSelector string) (*v1.NodeList, error) {
45+
func GetNodes(ctx context.Context, client kubernetes.Interface, clusterID, labelSelector string) (*corev1.NodeList, error) {
46+
remoteNodes, err := client.CoreV1().Nodes().List(ctx, metav1.ListOptions{
47+
LabelSelector: labelSelector,
48+
})
49+
if err != nil {
50+
klog.Errorf("%s -> an error occurred while listing nodes: %s", clusterID, err)
51+
return nil, err
52+
}
53+
return remoteNodes, nil
54+
}
55+
56+
// GetWorkerNodes returns the list of worker nodes of the cluster.
57+
func GetWorkerNodes(ctx context.Context, client kubernetes.Interface, clusterID, labelSelector string) (*corev1.NodeList, error) {
3158
remoteNodes, err := client.CoreV1().Nodes().List(ctx, metav1.ListOptions{
3259
LabelSelector: labelSelector,
3360
})
3461
if err != nil {
3562
klog.Errorf("%s -> an error occurred while listing nodes: %s", clusterID, err)
3663
return nil, err
3764
}
65+
var remoteNodeWorkers corev1.NodeList
66+
for i := range remoteNodes.Items {
67+
if !IsNodeControlPlane(remoteNodes.Items[i].Spec.Taints) {
68+
remoteNodeWorkers.Items = append(remoteNodeWorkers.Items, remoteNodes.Items[i])
69+
}
70+
}
3871
return remoteNodes, nil
3972
}
4073

@@ -57,14 +90,14 @@ func CheckVirtualNodes(ctx context.Context, homeClusterClient kubernetes.Interfa
5790

5891
for index := range virtualNodes.Items {
5992
for _, condition := range virtualNodes.Items[index].Status.Conditions {
60-
if condition.Type == v1.NodeReady {
61-
if condition.Status == v1.ConditionFalse {
93+
if condition.Type == corev1.NodeReady {
94+
if condition.Status == corev1.ConditionFalse {
6295
klog.Infof("Virtual nodes aren't yet ready: node %d has %s=%s",
6396
index, condition.Type, condition.Status)
6497
return false
6598
}
6699
} else {
67-
if condition.Status == v1.ConditionTrue {
100+
if condition.Status == corev1.ConditionTrue {
68101
klog.Infof("Virtual nodes aren't yet ready: node %d has %s=%s",
69102
index, condition.Type, condition.Status)
70103
return false

0 commit comments

Comments
 (0)