notes: 2.3.0 -> 2.3.1 (#352950)
[NixPkgs.git] / nixos / tests / cloud-init-hostname.nix
blob7c657cc9f6f98ca87373b89642d13f1e54be2ce3
1 { system ? builtins.currentSystem,
2   config ? {},
3   pkgs ? import ../.. { inherit system config; }
4 }:
6 with import ../lib/testing-python.nix { inherit system pkgs; };
7 with pkgs.lib;
9 let
10   # Hostname can also be set through "hostname" in user-data.
11   # This is how proxmox configures hostname through cloud-init.
12   metadataDrive = pkgs.stdenv.mkDerivation {
13     name = "metadata";
14     buildCommand = ''
15       mkdir -p $out/iso
17       cat << EOF > $out/iso/user-data
18       #cloud-config
19       hostname: testhostname
20       EOF
22       cat << EOF > $out/iso/meta-data
23       instance-id: iid-local02
24       EOF
26       ${pkgs.cdrkit}/bin/genisoimage -volid cidata -joliet -rock -o $out/metadata.iso $out/iso
27     '';
28   };
30 in makeTest {
31   name = "cloud-init-hostname";
32   meta = with pkgs.lib.maintainers; {
33     maintainers = [ lewo illustris ];
34   };
36   nodes.machine2 = { ... }: {
37     virtualisation.qemu.options = [ "-cdrom" "${metadataDrive}/metadata.iso" ];
38     services.cloud-init.enable = true;
39     networking.hostName = "";
40   };
42   testScript = ''
43     unnamed.wait_for_unit("cloud-final.service")
44     assert "testhostname" in unnamed.succeed("hostname")
45   '';