118 lines
5.4 KiB
Nix
118 lines
5.4 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs = { self, nixpkgs }:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgs = import nixpkgs { inherit system; };
|
|
|
|
serverPkg = pkgs.rustPlatform.buildRustPackage {
|
|
pname = "lightscale-server";
|
|
version = "0.1.0";
|
|
src = ./lightscale-server;
|
|
cargoLock.lockFile = ./lightscale-server/Cargo.lock;
|
|
};
|
|
|
|
clientPkg = pkgs.rustPlatform.buildRustPackage {
|
|
pname = "lightscale-client";
|
|
version = "0.1.0";
|
|
src = ./lightscale-client;
|
|
cargoLock.lockFile = ./lightscale-client/Cargo.lock;
|
|
nativeBuildInputs = [ pkgs.pkg-config ];
|
|
buildInputs = [ pkgs.libmnl pkgs.libnftnl ];
|
|
};
|
|
|
|
testConfigFast = import ./lab/test-fast.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigFull = import ./lab/test.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigFirewall = import ./lab/test-firewall.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigNat = import ./lab/test-nat.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigMulti = import ./lab/test-multi.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigScale = import ./lab/test-scale.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigNegative = import ./lab/test-negative.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigKeys = import ./lab/test-keys.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigRestart = import ./lab/test-restart.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigControlplaneRestart = import ./lab/test-controlplane-restart.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigControlplaneHa = import ./lab/test-controlplane-ha.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigDns = import ./lab/test-dns.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigIpv6 = import ./lab/test-ipv6.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigUserspace = import ./lab/test-userspace.nix { inherit pkgs serverPkg clientPkg; };
|
|
testConfigRelayFailover = import ./lab/test-relay-failover.nix { inherit pkgs serverPkg clientPkg; };
|
|
labTestFast =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigFast)
|
|
{ inherit system pkgs; };
|
|
labTestFull =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigFull)
|
|
{ inherit system pkgs; };
|
|
labTestFirewall =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigFirewall)
|
|
{ inherit system pkgs; };
|
|
labTestNat =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigNat)
|
|
{ inherit system pkgs; };
|
|
labTestMulti =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigMulti)
|
|
{ inherit system pkgs; };
|
|
labTestScale =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigScale)
|
|
{ inherit system pkgs; };
|
|
labTestNegative =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigNegative)
|
|
{ inherit system pkgs; };
|
|
labTestKeys =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigKeys)
|
|
{ inherit system pkgs; };
|
|
labTestRestart =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigRestart)
|
|
{ inherit system pkgs; };
|
|
labTestControlplaneRestart =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigControlplaneRestart)
|
|
{ inherit system pkgs; };
|
|
labTestControlplaneHa =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigControlplaneHa)
|
|
{ inherit system pkgs; };
|
|
labTestDns =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigDns)
|
|
{ inherit system pkgs; };
|
|
labTestIpv6 =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigIpv6)
|
|
{ inherit system pkgs; };
|
|
labTestUserspace =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigUserspace)
|
|
{ inherit system pkgs; };
|
|
labTestRelayFailover =
|
|
(import (nixpkgs + "/nixos/tests/make-test-python.nix") testConfigRelayFailover)
|
|
{ inherit system pkgs; };
|
|
in
|
|
{
|
|
packages.${system} = {
|
|
lightscale-server = serverPkg;
|
|
lightscale-client = clientPkg;
|
|
};
|
|
|
|
nixosTests.lightscale-lab = labTestFast;
|
|
nixosTests.lightscale-lab-5 = labTestFull;
|
|
nixosTests.lightscale-lab-firewall = labTestFirewall;
|
|
nixosTests.lightscale-lab-nat = labTestNat;
|
|
nixosTests.lightscale-lab-multi = labTestMulti;
|
|
nixosTests.lightscale-lab-scale = labTestScale;
|
|
nixosTests.lightscale-lab-negative = labTestNegative;
|
|
nixosTests.lightscale-lab-keys = labTestKeys;
|
|
nixosTests.lightscale-lab-restart = labTestRestart;
|
|
nixosTests.lightscale-lab-controlplane-restart = labTestControlplaneRestart;
|
|
nixosTests.lightscale-lab-controlplane-ha = labTestControlplaneHa;
|
|
nixosTests.lightscale-lab-dns = labTestDns;
|
|
nixosTests.lightscale-lab-ipv6 = labTestIpv6;
|
|
nixosTests.lightscale-lab-userspace = labTestUserspace;
|
|
nixosTests.lightscale-lab-relay-failover = labTestRelayFailover;
|
|
|
|
devShells.${system}.default = pkgs.mkShell {
|
|
buildInputs = [
|
|
pkgs.nix
|
|
pkgs.qemu
|
|
pkgs.curl
|
|
];
|
|
};
|
|
};
|
|
}
|