@@ -43,36 +43,21 @@ var _ = Describe("Multi-Node Clusters", func() {
4343 kubeClient , kubeconfigPath := helpers .SetupKubeClient (clusterName )
4444 defer helpers .CleanupKubeconfig (kubeconfigPath )
4545
46- By ("Adding first worker node" )
47- helpers .AddNode (clusterName , node2 , "--role" , "worker" )
46+ By ("Adding first worker node with labels " )
47+ helpers .AddNode (clusterName , node2 , "--role" , "worker" , "--label" , "env=test1" )
4848
4949 By ("Verifying node2 container is running" )
5050 containerName2 := helpers .NodeContainerName (clusterName , node2 )
5151 container2 := helpers .GetContainer (containerName2 )
5252 Expect (container2 ).ToNot (BeNil (), "Container %s should exist" , containerName2 )
5353 Expect (container2 .State ).To (Equal ("running" ), "Container should be running" )
5454
55- By ("Verifying node2 joined Kubernetes with worker role" )
55+ By ("Verifying node2 joined Kubernetes with worker role and custom labels " )
5656 helpers .WaitForNodeReady (kubeClient , node2 , 5 * time .Minute )
5757 n2 , err := kubeClient .CoreV1 ().Nodes ().Get (context .Background (), node2 , metav1.GetOptions {})
5858 Expect (err ).ToNot (HaveOccurred ())
59- hasWorkerRole := false
60- for key := range n2 .Labels {
61- if key == "node-role.kubernetes.io/worker" {
62- hasWorkerRole = true
63- break
64- }
65- }
66- hasControlPlaneRole := false
67- for key := range n2 .Labels {
68- if key == "node-role.kubernetes.io/control-plane" {
69- hasControlPlaneRole = true
70- break
71- }
72- }
73- Expect (hasControlPlaneRole ).To (BeFalse (), "node2 should not have control-plane role" )
74- // Worker role label may not be set by kubeadm by default, so just verify it's not control-plane
75- _ = hasWorkerRole
59+ Expect (n2 .Labels ).ToNot (HaveKey ("node-role.kubernetes.io/control-plane" ), "node2 should not have control-plane role" )
60+ Expect (n2 .Labels ).To (HaveKeyWithValue ("env" , "test1" ), "node2 should have label env=test1" )
7661
7762 By ("Verifying DNS entry for node2" )
7863 hostsFile := helpers .PodmanExec (helpers .DNSContainerName (clusterName ), "cat /var/lib/dnsmasq/cluster-hosts" )
@@ -85,8 +70,8 @@ var _ = Describe("Multi-Node Clusters", func() {
8570 Expect (listOutput ).To (ContainSubstring (node1 ), "node list should contain node1" )
8671 Expect (listOutput ).To (ContainSubstring (node2 ), "node list should contain node2" )
8772
88- By ("Adding second worker node" )
89- helpers .AddNode (clusterName , node3 , "--role" , "worker" )
73+ By ("Adding second worker node with different labels " )
74+ helpers .AddNode (clusterName , node3 , "--role" , "worker" , "--label" , "env=test2" )
9075
9176 By ("Verifying all three containers are running" )
9277 for _ , nodeName := range []string {node1 , node2 , node3 } {
@@ -112,6 +97,11 @@ var _ = Describe("Multi-Node Clusters", func() {
11297 Expect (ready ).To (BeTrue (), "Node %s should be Ready" , node .Name )
11398 }
11499
100+ By ("Verifying custom labels on node3" )
101+ n3 , err := kubeClient .CoreV1 ().Nodes ().Get (context .Background (), node3 , metav1.GetOptions {})
102+ Expect (err ).ToNot (HaveOccurred ())
103+ Expect (n3 .Labels ).To (HaveKeyWithValue ("env" , "test2" ), "node3 should have label env=test2" )
104+
115105 By ("Verifying DNS entries for all nodes" )
116106 hostsFile = helpers .PodmanExec (helpers .DNSContainerName (clusterName ), "cat /var/lib/dnsmasq/cluster-hosts" )
117107 Expect (hostsFile ).To (ContainSubstring (node1 ), "cluster-hosts should contain node1" )
0 commit comments