diff --git a/nixos/tests/lxd.nix b/nixos/tests/lxd.nix index 81b36124cc6b..162bbcc47e87 100644 --- a/nixos/tests/lxd.nix +++ b/nixos/tests/lxd.nix @@ -6,16 +6,47 @@ let # # I've chosen to import Alpine Linux, because its image is turbo-tiny and, # generally, sufficient for our tests. - alpine-meta = pkgs.fetchurl { + alpine-meta-x86 = pkgs.fetchurl { url = "https://tarballs.nixos.org/alpine/3.12/lxd.tar.xz"; hash = "sha256-1tcKaO9lOkvqfmG/7FMbfAEToAuFy2YMewS8ysBKuLA="; }; + alpine-meta-for = arch: pkgs.stdenv.mkDerivation { + name = "alpine-meta-${arch}"; + version = "3.12"; + unpackPhase = "true"; + buildPhase = '' + runHook preBuild - alpine-rootfs = pkgs.fetchurl { - url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz"; - hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA="; + tar xvf ${alpine-meta-x86} + sed -i 's/architecture: .*/architecture: ${arch}/' metadata.yaml + + runHook postBuild + ''; + installPhase = '' + runHook preInstall + + tar czRf $out * + + runHook postInstall + ''; }; + alpine-meta = { + x86_64-linux = alpine-meta-x86; + aarch64-linux = alpine-meta-for "aarch64"; + }.${pkgs.system} or (throw "Unsupported system: ${pkgs.system}"); + + alpine-rootfs = { + x86_64-linux = pkgs.fetchurl { + url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz"; + hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA="; + }; + aarch64-linux = pkgs.fetchurl { + url = "https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/aarch64/alpine-minirootfs-3.15.4-aarch64.tar.gz"; + hash = "sha256-9kBz8Jwmo8XepJhTMt5zilCaHHpflnUH7y9+0To39Us="; + }; + }.${pkgs.system} or (throw "Unsupported system: ${pkgs.system}"); + lxd-config = pkgs.writeText "config.yaml" '' storage_pools: - name: default