0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 13:40:28 +03:00

Merge pull request #241314 from jnsgruk/master

This commit is contained in:
Ryan Lahfa 2023-07-08 13:58:20 +02:00 committed by GitHub
commit 49413e25e0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 196 additions and 0 deletions

View file

@ -85,6 +85,14 @@ in {
considered failed and systemd will attempt to restart it.
'';
};
ui = {
enable = lib.mkEnableOption (lib.mdDoc ''
Enables the (experimental) LXD UI.
'');
package = mkPackageOption pkgs.lxd "ui" { };
};
};
};
@ -143,6 +151,10 @@ in {
path = [ pkgs.util-linux ]
++ optional cfg.zfsSupport config.boot.zfs.package;
environment = mkIf (cfg.ui.enable) {
"LXD_UI" = cfg.ui.package;
};
serviceConfig = {
ExecStart = "@${cfg.package}/bin/lxd lxd --group lxd";
ExecStartPost = "${cfg.package}/bin/lxd waitready --timeout=${cfg.startTimeout}";

View file

@ -436,6 +436,7 @@ in {
lxd = handleTest ./lxd.nix {};
lxd-nftables = handleTest ./lxd-nftables.nix {};
lxd-image-server = handleTest ./lxd-image-server.nix {};
lxd-ui = handleTest ./lxd-ui.nix {};
#logstash = handleTest ./logstash.nix {};
lorri = handleTest ./lorri/default.nix {};
maddy = discoverTests (import ./maddy { inherit handleTest; });

35
nixos/tests/lxd-ui.nix Normal file
View file

@ -0,0 +1,35 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "lxd-ui";
meta = with pkgs.lib.maintainers; {
maintainers = [ jnsgruk ];
};
nodes.machine = { lib, ... }: {
virtualisation = {
lxd.enable = true;
lxd.ui.enable = true;
};
environment.systemPackages = [ pkgs.curl ];
};
testScript = ''
machine.wait_for_unit("sockets.target")
machine.wait_for_unit("lxd.service")
machine.wait_for_file("/var/lib/lxd/unix.socket")
# Wait for lxd to settle
machine.succeed("lxd waitready")
# Configure LXC listen address
machine.succeed("lxc config set core.https_address :8443")
machine.succeed("systemctl restart lxd")
# Check that the LXD_UI environment variable is populated in the systemd unit
machine.succeed("cat /etc/systemd/system/lxd.service | grep 'LXD_UI'")
# Ensure the endpoint returns an HTML page with 'LXD UI' in the title
machine.succeed("curl -kLs https://localhost:8443/ui | grep '<title>LXD UI</title>'")
'';
})