@@ -25,51 +25,60 @@ var _ = g.Describe("[sig-etcd] etcd", func() {
25
25
g .It ("cluster has the same number of master nodes and voting members from the endpoints configmap [Early][apigroup:config.openshift.io]" , func () {
26
26
exutil .SkipIfExternalControlplaneTopology (oc , "clusters with external controlplane topology don't have master nodes" )
27
27
masterNodeLabelSelectorString := "node-role.kubernetes.io/master"
28
- masterNodeList , err := oc .KubeClient ().CoreV1 ().Nodes ().List (context .TODO (), metav1.ListOptions {LabelSelector : masterNodeLabelSelectorString })
28
+ controlPlaneNodeList , err := oc .KubeClient ().CoreV1 ().Nodes ().List (context .TODO (), metav1.ListOptions {LabelSelector : masterNodeLabelSelectorString })
29
29
o .Expect (err ).ToNot (o .HaveOccurred ())
30
30
31
+ controlPlaneTopology , err := exutil .GetControlPlaneTopology (oc )
32
+ o .Expect (err ).ToNot (o .HaveOccurred ())
33
+
34
+ if * controlPlaneTopology == configv1 .HighlyAvailableArbiterMode {
35
+ arbiterNodeLabelSelectorString := "node-role.kubernetes.io/arbiter"
36
+ arbiterNodeList , err := oc .KubeClient ().CoreV1 ().Nodes ().List (context .TODO (), metav1.ListOptions {LabelSelector : arbiterNodeLabelSelectorString })
37
+ o .Expect (err ).ToNot (o .HaveOccurred ())
38
+ controlPlaneNodeList .Items = append (controlPlaneNodeList .Items , arbiterNodeList .Items ... )
39
+ }
40
+
31
41
ipFamily := getCurrentNetworkTopology (oc )
32
- currentMasterNodesIPListSet := sets .NewString ()
33
- for _ , masterNode := range masterNodeList .Items {
34
- for _ , masterNodeAddress := range masterNode .Status .Addresses {
35
- if masterNodeAddress .Type == corev1 .NodeInternalIP {
42
+ currentControlPlaneNodesIPListSet := sets .NewString ()
43
+ for _ , controlPlaneNode := range controlPlaneNodeList .Items {
44
+ for _ , nodeAddress := range controlPlaneNode .Status .Addresses {
45
+ if nodeAddress .Type == corev1 .NodeInternalIP {
36
46
switch ipFamily {
37
47
case "tcp4" :
38
- isIPv4 , err := isIPv4 (masterNodeAddress .Address )
48
+ isIPv4 , err := isIPv4 (nodeAddress .Address )
39
49
o .Expect (err ).ToNot (o .HaveOccurred ())
40
50
if isIPv4 {
41
- currentMasterNodesIPListSet .Insert (masterNodeAddress .Address )
51
+ currentControlPlaneNodesIPListSet .Insert (nodeAddress .Address )
42
52
}
43
53
case "tcp6" :
44
- isIPv4 , err := isIPv4 (masterNodeAddress .Address )
54
+ isIPv4 , err := isIPv4 (nodeAddress .Address )
45
55
o .Expect (err ).ToNot (o .HaveOccurred ())
46
56
if ! isIPv4 {
47
- currentMasterNodesIPListSet .Insert (masterNodeAddress .Address )
57
+ currentControlPlaneNodesIPListSet .Insert (nodeAddress .Address )
48
58
}
49
59
default :
50
60
g .GinkgoT ().Fatalf ("unexpected ip family: %q" , ipFamily )
51
61
}
52
62
}
53
63
}
54
64
}
55
-
56
65
etcdEndpointsConfigMap , err := oc .KubeClient ().CoreV1 ().ConfigMaps ("openshift-etcd" ).Get (context .TODO (), "etcd-endpoints" , metav1.GetOptions {})
57
66
o .Expect (err ).ToNot (o .HaveOccurred ())
58
67
currentVotingMemberIPListSet := sets .NewString ()
59
68
for _ , votingMemberIP := range etcdEndpointsConfigMap .Data {
60
69
currentVotingMemberIPListSet .Insert (votingMemberIP )
61
70
}
62
71
63
- if currentVotingMemberIPListSet .Len () != currentMasterNodesIPListSet .Len () {
72
+ if currentVotingMemberIPListSet .Len () != currentControlPlaneNodesIPListSet .Len () {
64
73
g .GinkgoT ().Fatalf (
65
74
"incorrect number of voting members found in openshift-etcd/etcd-endpoints, expected it to match the number of master nodes = %d, members from the cm = %v, master nodes = %v" ,
66
- currentMasterNodesIPListSet .Len (),
75
+ currentControlPlaneNodesIPListSet .Len (),
67
76
currentVotingMemberIPListSet .List (),
68
- currentMasterNodesIPListSet .List ())
77
+ currentControlPlaneNodesIPListSet .List ())
69
78
}
70
79
71
- if ! currentVotingMemberIPListSet .Equal (currentMasterNodesIPListSet ) {
72
- g .GinkgoT ().Fatalf ("IPs of voting members from openshift-etcd/etcd-endpoints =%v don't match master nodes IPs = %v " , currentVotingMemberIPListSet .List (), currentMasterNodesIPListSet .List ())
80
+ if ! currentVotingMemberIPListSet .Equal (currentControlPlaneNodesIPListSet ) {
81
+ g .GinkgoT ().Fatalf ("IPs of voting members from openshift-etcd/etcd-endpoints =%v don't match master nodes IPs = %v " , currentVotingMemberIPListSet .List (), currentControlPlaneNodesIPListSet .List ())
73
82
}
74
83
})
75
84
})
0 commit comments