2016-09-27 21:56:58 +01:00
|
|
|
import ./make-test.nix ({ pkgs, ...} : rec {
|
|
|
|
name = "flannel";
|
|
|
|
|
|
|
|
meta = with pkgs.stdenv.lib.maintainers; {
|
|
|
|
maintainers = [ offline ];
|
|
|
|
};
|
|
|
|
|
|
|
|
nodes = let
|
|
|
|
flannelConfig = {
|
|
|
|
services.flannel = {
|
|
|
|
enable = true;
|
|
|
|
network = "10.1.0.0/16";
|
|
|
|
iface = "eth1";
|
|
|
|
etcd.endpoints = ["http://etcd:2379"];
|
|
|
|
};
|
|
|
|
|
|
|
|
networking.firewall.allowedUDPPorts = [ 8472 ];
|
|
|
|
};
|
|
|
|
in {
|
2018-07-20 21:56:59 +01:00
|
|
|
etcd = { ... }: {
|
2016-09-27 21:56:58 +01:00
|
|
|
services = {
|
|
|
|
etcd = {
|
|
|
|
enable = true;
|
2019-02-12 17:26:08 +00:00
|
|
|
listenClientUrls = ["http://0.0.0.0:2379"]; # requires ip-address for binding
|
|
|
|
listenPeerUrls = ["http://0.0.0.0:2380"]; # requires ip-address for binding
|
|
|
|
advertiseClientUrls = ["http://etcd:2379"];
|
2016-09-27 21:56:58 +01:00
|
|
|
initialAdvertisePeerUrls = ["http://etcd:2379"];
|
|
|
|
initialCluster = ["etcd=http://etcd:2379"];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
networking.firewall.allowedTCPPorts = [ 2379 ];
|
|
|
|
};
|
|
|
|
|
2018-07-20 21:56:59 +01:00
|
|
|
node1 = { ... }: {
|
2016-09-27 21:56:58 +01:00
|
|
|
require = [flannelConfig];
|
|
|
|
};
|
|
|
|
|
2018-07-20 21:56:59 +01:00
|
|
|
node2 = { ... }: {
|
2016-09-27 21:56:58 +01:00
|
|
|
require = [flannelConfig];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
testScript = ''
|
|
|
|
startAll;
|
|
|
|
|
|
|
|
$node1->waitForUnit("flannel.service");
|
|
|
|
$node2->waitForUnit("flannel.service");
|
|
|
|
|
|
|
|
my $ip1 = $node1->succeed("ip -4 addr show flannel.1 | grep -oP '(?<=inet).*(?=/)'");
|
|
|
|
my $ip2 = $node2->succeed("ip -4 addr show flannel.1 | grep -oP '(?<=inet).*(?=/)'");
|
|
|
|
|
|
|
|
$node1->waitUntilSucceeds("ping -c 1 $ip2");
|
|
|
|
$node2->waitUntilSucceeds("ping -c 1 $ip1");
|
|
|
|
'';
|
|
|
|
})
|