lightscale/flake.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
];
};
};
}