uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
170
nixos/tests/web-apps/mastodon.nix
Normal file
170
nixos/tests/web-apps/mastodon.nix
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
import ../make-test-python.nix ({pkgs, ...}:
|
||||
let
|
||||
test-certificates = pkgs.runCommandLocal "test-certificates" { } ''
|
||||
mkdir -p $out
|
||||
echo insecure-root-password > $out/root-password-file
|
||||
echo insecure-intermediate-password > $out/intermediate-password-file
|
||||
${pkgs.step-cli}/bin/step certificate create "Example Root CA" $out/root_ca.crt $out/root_ca.key --password-file=$out/root-password-file --profile root-ca
|
||||
${pkgs.step-cli}/bin/step certificate create "Example Intermediate CA 1" $out/intermediate_ca.crt $out/intermediate_ca.key --password-file=$out/intermediate-password-file --ca-password-file=$out/root-password-file --profile intermediate-ca --ca $out/root_ca.crt --ca-key $out/root_ca.key
|
||||
'';
|
||||
|
||||
hosts = ''
|
||||
192.168.2.10 ca.local
|
||||
192.168.2.11 mastodon.local
|
||||
'';
|
||||
|
||||
in
|
||||
{
|
||||
name = "mastodon";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ erictapen izorkin ];
|
||||
|
||||
nodes = {
|
||||
ca = { pkgs, ... }: {
|
||||
networking = {
|
||||
interfaces.eth1 = {
|
||||
ipv4.addresses = [
|
||||
{ address = "192.168.2.10"; prefixLength = 24; }
|
||||
];
|
||||
};
|
||||
extraHosts = hosts;
|
||||
};
|
||||
services.step-ca = {
|
||||
enable = true;
|
||||
address = "0.0.0.0";
|
||||
port = 8443;
|
||||
openFirewall = true;
|
||||
intermediatePasswordFile = "${test-certificates}/intermediate-password-file";
|
||||
settings = {
|
||||
dnsNames = [ "ca.local" ];
|
||||
root = "${test-certificates}/root_ca.crt";
|
||||
crt = "${test-certificates}/intermediate_ca.crt";
|
||||
key = "${test-certificates}/intermediate_ca.key";
|
||||
db = {
|
||||
type = "badger";
|
||||
dataSource = "/var/lib/step-ca/db";
|
||||
};
|
||||
authority = {
|
||||
provisioners = [
|
||||
{
|
||||
type = "ACME";
|
||||
name = "acme";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
server = { pkgs, ... }: {
|
||||
networking = {
|
||||
interfaces.eth1 = {
|
||||
ipv4.addresses = [
|
||||
{ address = "192.168.2.11"; prefixLength = 24; }
|
||||
];
|
||||
};
|
||||
extraHosts = hosts;
|
||||
firewall.allowedTCPPorts = [ 80 443 ];
|
||||
};
|
||||
|
||||
security = {
|
||||
acme = {
|
||||
acceptTerms = true;
|
||||
defaults.server = "https://ca.local:8443/acme/acme/directory";
|
||||
defaults.email = "mastodon@mastodon.local";
|
||||
};
|
||||
pki.certificateFiles = [ "${test-certificates}/root_ca.crt" ];
|
||||
};
|
||||
|
||||
services.redis.servers.mastodon = {
|
||||
enable = true;
|
||||
bind = "127.0.0.1";
|
||||
port = 31637;
|
||||
};
|
||||
|
||||
services.mastodon = {
|
||||
enable = true;
|
||||
configureNginx = true;
|
||||
localDomain = "mastodon.local";
|
||||
enableUnixSocket = false;
|
||||
redis = {
|
||||
createLocally = true;
|
||||
host = "127.0.0.1";
|
||||
port = 31637;
|
||||
};
|
||||
database = {
|
||||
createLocally = true;
|
||||
host = "/run/postgresql";
|
||||
port = 5432;
|
||||
};
|
||||
smtp = {
|
||||
createLocally = false;
|
||||
fromAddress = "mastodon@mastodon.local";
|
||||
};
|
||||
extraConfig = {
|
||||
EMAIL_DOMAIN_ALLOWLIST = "example.com";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
client = { pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.jq ];
|
||||
networking = {
|
||||
interfaces.eth1 = {
|
||||
ipv4.addresses = [
|
||||
{ address = "192.168.2.12"; prefixLength = 24; }
|
||||
];
|
||||
};
|
||||
extraHosts = hosts;
|
||||
};
|
||||
|
||||
security = {
|
||||
pki.certificateFiles = [ "${test-certificates}/root_ca.crt" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
ca.wait_for_unit("step-ca.service")
|
||||
ca.wait_for_open_port(8443)
|
||||
|
||||
server.wait_for_unit("nginx.service")
|
||||
server.wait_for_unit("redis-mastodon.service")
|
||||
server.wait_for_unit("postgresql.service")
|
||||
server.wait_for_unit("mastodon-sidekiq.service")
|
||||
server.wait_for_unit("mastodon-streaming.service")
|
||||
server.wait_for_unit("mastodon-web.service")
|
||||
server.wait_for_open_port(55000)
|
||||
server.wait_for_open_port(55001)
|
||||
|
||||
# Check Mastodon version from remote client
|
||||
client.succeed("curl --fail https://mastodon.local/api/v1/instance | jq -r '.version' | grep '${pkgs.mastodon.version}'")
|
||||
|
||||
# Check using admin CLI
|
||||
# Check Mastodon version
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl version' | grep '${pkgs.mastodon.version}'")
|
||||
|
||||
# Manage accounts
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl email_domain_blocks add example.com'")
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl email_domain_blocks list' | grep 'example.com'")
|
||||
server.fail("su - mastodon -s /bin/sh -c 'mastodon-env tootctl email_domain_blocks list' | grep 'mastodon.local'")
|
||||
server.fail("su - mastodon -s /bin/sh -c 'mastodon-env tootctl accounts create alice --email=alice@example.com'")
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl email_domain_blocks remove example.com'")
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl accounts create bob --email=bob@example.com'")
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl accounts approve bob'")
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl accounts delete bob'")
|
||||
|
||||
# Manage IP access
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl ip_blocks add 192.168.0.0/16 --severity=no_access'")
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl ip_blocks export' | grep '192.168.0.0/16'")
|
||||
server.fail("su - mastodon -s /bin/sh -c 'mastodon-env tootctl p_blocks export' | grep '172.16.0.0/16'")
|
||||
client.fail("curl --fail https://mastodon.local/about")
|
||||
server.succeed("su - mastodon -s /bin/sh -c 'mastodon-env tootctl ip_blocks remove 192.168.0.0/16'")
|
||||
client.succeed("curl --fail https://mastodon.local/about")
|
||||
|
||||
ca.shutdown()
|
||||
server.shutdown()
|
||||
client.shutdown()
|
||||
'';
|
||||
})
|
||||
30
nixos/tests/web-apps/netbox.nix
Normal file
30
nixos/tests/web-apps/netbox.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import ../make-test-python.nix ({ lib, pkgs, ... }: {
|
||||
name = "netbox";
|
||||
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ n0emis ];
|
||||
};
|
||||
|
||||
nodes.machine = { ... }: {
|
||||
services.netbox = {
|
||||
enable = true;
|
||||
secretKeyFile = pkgs.writeText "secret" ''
|
||||
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.start()
|
||||
machine.wait_for_unit("netbox.target")
|
||||
machine.wait_until_succeeds("journalctl --since -1m --unit netbox --grep Listening")
|
||||
|
||||
with subtest("Home screen loads"):
|
||||
machine.succeed(
|
||||
"curl -sSfL http://[::1]:8001 | grep '<title>Home | NetBox</title>'"
|
||||
)
|
||||
|
||||
with subtest("Staticfiles are generated"):
|
||||
machine.succeed("test -e /var/lib/netbox/static/netbox.js")
|
||||
'';
|
||||
})
|
||||
30
nixos/tests/web-apps/nifi.nix
Normal file
30
nixos/tests/web-apps/nifi.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import ../make-test-python.nix ({pkgs, ...}:
|
||||
{
|
||||
name = "nifi";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ izorkin ];
|
||||
|
||||
nodes = {
|
||||
nifi = { pkgs, ... }: {
|
||||
virtualisation = {
|
||||
memorySize = 2048;
|
||||
diskSize = 4096;
|
||||
};
|
||||
services.nifi = {
|
||||
enable = true;
|
||||
enableHTTPS = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
nifi.start()
|
||||
|
||||
nifi.wait_for_unit("nifi.service")
|
||||
nifi.wait_for_open_port(8080)
|
||||
|
||||
# Check if NiFi is running
|
||||
nifi.succeed("curl --fail http://127.0.0.1:8080/nifi/login 2> /dev/null | grep 'NiFi Login'")
|
||||
|
||||
nifi.shutdown()
|
||||
'';
|
||||
})
|
||||
132
nixos/tests/web-apps/peertube.nix
Normal file
132
nixos/tests/web-apps/peertube.nix
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
import ../make-test-python.nix ({pkgs, ...}:
|
||||
{
|
||||
name = "peertube";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ izorkin ];
|
||||
|
||||
nodes = {
|
||||
database = {
|
||||
networking = {
|
||||
interfaces.eth1 = {
|
||||
ipv4.addresses = [
|
||||
{ address = "192.168.2.10"; prefixLength = 24; }
|
||||
];
|
||||
};
|
||||
firewall.allowedTCPPorts = [ 5432 31638 ];
|
||||
};
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
enableTCPIP = true;
|
||||
authentication = ''
|
||||
hostnossl peertube_local peertube_test 192.168.2.11/32 md5
|
||||
'';
|
||||
initialScript = pkgs.writeText "postgresql_init.sql" ''
|
||||
CREATE ROLE peertube_test LOGIN PASSWORD '0gUN0C1mgST6czvjZ8T9';
|
||||
CREATE DATABASE peertube_local TEMPLATE template0 ENCODING UTF8;
|
||||
GRANT ALL PRIVILEGES ON DATABASE peertube_local TO peertube_test;
|
||||
\connect peertube_local
|
||||
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
||||
CREATE EXTENSION IF NOT EXISTS unaccent;
|
||||
'';
|
||||
};
|
||||
|
||||
services.redis.servers.peertube = {
|
||||
enable = true;
|
||||
bind = "0.0.0.0";
|
||||
requirePass = "turrQfaQwnanGbcsdhxy";
|
||||
port = 31638;
|
||||
};
|
||||
};
|
||||
|
||||
server = { pkgs, ... }: {
|
||||
environment = {
|
||||
etc = {
|
||||
"peertube/password-posgressql-db".text = ''
|
||||
0gUN0C1mgST6czvjZ8T9
|
||||
'';
|
||||
"peertube/password-redis-db".text = ''
|
||||
turrQfaQwnanGbcsdhxy
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
interfaces.eth1 = {
|
||||
ipv4.addresses = [
|
||||
{ address = "192.168.2.11"; prefixLength = 24; }
|
||||
];
|
||||
};
|
||||
extraHosts = ''
|
||||
192.168.2.11 peertube.local
|
||||
'';
|
||||
firewall.allowedTCPPorts = [ 9000 ];
|
||||
};
|
||||
|
||||
services.peertube = {
|
||||
enable = true;
|
||||
localDomain = "peertube.local";
|
||||
enableWebHttps = false;
|
||||
|
||||
database = {
|
||||
host = "192.168.2.10";
|
||||
name = "peertube_local";
|
||||
user = "peertube_test";
|
||||
passwordFile = "/etc/peertube/password-posgressql-db";
|
||||
};
|
||||
|
||||
redis = {
|
||||
host = "192.168.2.10";
|
||||
port = 31638;
|
||||
passwordFile = "/etc/peertube/password-redis-db";
|
||||
};
|
||||
|
||||
settings = {
|
||||
listen = {
|
||||
hostname = "0.0.0.0";
|
||||
};
|
||||
instance = {
|
||||
name = "PeerTube Test Server";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
client = {
|
||||
environment.systemPackages = [ pkgs.jq ];
|
||||
networking = {
|
||||
interfaces.eth1 = {
|
||||
ipv4.addresses = [
|
||||
{ address = "192.168.2.12"; prefixLength = 24; }
|
||||
];
|
||||
};
|
||||
extraHosts = ''
|
||||
192.168.2.11 peertube.local
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
database.wait_for_unit("postgresql.service")
|
||||
database.wait_for_unit("redis-peertube.service")
|
||||
|
||||
database.wait_for_open_port(5432)
|
||||
database.wait_for_open_port(31638)
|
||||
|
||||
server.wait_for_unit("peertube.service")
|
||||
server.wait_for_open_port(9000)
|
||||
|
||||
# Check if PeerTube is running
|
||||
client.succeed("curl --fail http://peertube.local:9000/api/v1/config/about | jq -r '.instance.name' | grep 'PeerTube\ Test\ Server'")
|
||||
|
||||
# Check PeerTube CLI version
|
||||
assert "${pkgs.peertube.version}" in server.succeed('su - peertube -s /bin/sh -c "peertube --version"')
|
||||
|
||||
client.shutdown()
|
||||
server.shutdown()
|
||||
database.shutdown()
|
||||
'';
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue