Skip to content

Commit a398296

Browse files
authored
nixos/k3s: use dynamic networking in multi node test (#381122)
2 parents 2e9285a + c256d7b commit a398296

File tree

1 file changed

+14
-35
lines changed

1 file changed

+14
-35
lines changed

nixos/tests/k3s/multi-node.nix

Lines changed: 14 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ import ../make-test-python.nix (
6060

6161
nodes = {
6262
server =
63-
{ pkgs, ... }:
63+
{ nodes, pkgs, ... }:
6464
{
6565
environment.systemPackages = with pkgs; [
6666
gzip
@@ -83,8 +83,12 @@ import ../make-test-python.nix (
8383
"--disable metrics-server"
8484
"--disable servicelb"
8585
"--disable traefik"
86-
"--node-ip 192.168.1.1"
8786
"--pause-image test.local/pause:local"
87+
"--node-ip ${nodes.server.networking.primaryIPAddress}"
88+
# The interface selection logic of flannel would normally use eth0, as the nixos
89+
# testing driver sets a default route via dev eth0. However, in test setups we
90+
# have to use eth1 for inter-node communication.
91+
"--flannel-iface eth1"
8892
];
8993
};
9094
networking.firewall.allowedTCPPorts = [
@@ -93,19 +97,10 @@ import ../make-test-python.nix (
9397
6443
9498
];
9599
networking.firewall.allowedUDPPorts = [ 8472 ];
96-
networking.firewall.trustedInterfaces = [ "flannel.1" ];
97-
networking.useDHCP = false;
98-
networking.defaultGateway = "192.168.1.1";
99-
networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
100-
{
101-
address = "192.168.1.1";
102-
prefixLength = 24;
103-
}
104-
];
105100
};
106101

107102
server2 =
108-
{ pkgs, ... }:
103+
{ nodes, pkgs, ... }:
109104
{
110105
environment.systemPackages = with pkgs; [
111106
gzip
@@ -119,16 +114,17 @@ import ../make-test-python.nix (
119114
enable = true;
120115
package = k3s;
121116
images = [ pauseImage ];
122-
serverAddr = "https://192.168.1.1:6443";
117+
serverAddr = "https://${nodes.server.networking.primaryIPAddress}:6443";
123118
clusterInit = false;
124119
extraFlags = [
125120
"--disable coredns"
126121
"--disable local-storage"
127122
"--disable metrics-server"
128123
"--disable servicelb"
129124
"--disable traefik"
130-
"--node-ip 192.168.1.3"
131125
"--pause-image test.local/pause:local"
126+
"--node-ip ${nodes.server2.networking.primaryIPAddress}"
127+
"--flannel-iface eth1"
132128
];
133129
};
134130
networking.firewall.allowedTCPPorts = [
@@ -137,19 +133,10 @@ import ../make-test-python.nix (
137133
6443
138134
];
139135
networking.firewall.allowedUDPPorts = [ 8472 ];
140-
networking.firewall.trustedInterfaces = [ "flannel.1" ];
141-
networking.useDHCP = false;
142-
networking.defaultGateway = "192.168.1.3";
143-
networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
144-
{
145-
address = "192.168.1.3";
146-
prefixLength = 24;
147-
}
148-
];
149136
};
150137

151138
agent =
152-
{ pkgs, ... }:
139+
{ nodes, pkgs, ... }:
153140
{
154141
virtualisation.memorySize = 1024;
155142
virtualisation.diskSize = 2048;
@@ -159,23 +146,15 @@ import ../make-test-python.nix (
159146
role = "agent";
160147
package = k3s;
161148
images = [ pauseImage ];
162-
serverAddr = "https://192.168.1.3:6443";
149+
serverAddr = "https://${nodes.server2.networking.primaryIPAddress}:6443";
163150
extraFlags = [
164151
"--pause-image test.local/pause:local"
165-
"--node-ip 192.168.1.2"
152+
"--node-ip ${nodes.agent.networking.primaryIPAddress}"
153+
"--flannel-iface eth1"
166154
];
167155
};
168156
networking.firewall.allowedTCPPorts = [ 6443 ];
169157
networking.firewall.allowedUDPPorts = [ 8472 ];
170-
networking.firewall.trustedInterfaces = [ "flannel.1" ];
171-
networking.useDHCP = false;
172-
networking.defaultGateway = "192.168.1.2";
173-
networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
174-
{
175-
address = "192.168.1.2";
176-
prefixLength = 24;
177-
}
178-
];
179158
};
180159
};
181160

0 commit comments

Comments
 (0)