Add test case for the host-based Nginx reverse proxy service
This commit is contained in:
parent
dc01c9bf8b
commit
c130294a0a
|
@ -39,6 +39,10 @@ in
|
||||||
inherit pkgs processManagers profiles testService;
|
inherit pkgs processManagers profiles testService;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nginx-reverse-proxy-hostbased = import ./nginx-reverse-proxy-hostbased {
|
||||||
|
inherit pkgs processManagers profiles testService nix-processmgmt;
|
||||||
|
};
|
||||||
|
|
||||||
postgresql = import ./postgresql {
|
postgresql = import ./postgresql {
|
||||||
inherit pkgs processManagers profiles testService;
|
inherit pkgs processManagers profiles testService;
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
|
||||||
|
|
||||||
|
testService {
|
||||||
|
exprFile = ./processes.nix;
|
||||||
|
extraParams = {
|
||||||
|
inherit nix-processmgmt;
|
||||||
|
};
|
||||||
|
|
||||||
|
readiness = {instanceName, instance, ...}:
|
||||||
|
''
|
||||||
|
machine.wait_for_open_port(${toString instance.port})
|
||||||
|
'';
|
||||||
|
|
||||||
|
tests = {instanceName, instance, ...}:
|
||||||
|
pkgs.lib.optionalString (instanceName == "nginx" || instanceName == "nginx2")
|
||||||
|
(pkgs.lib.concatMapStrings (webapp: ''
|
||||||
|
machine.succeed(
|
||||||
|
"curl --fail -H 'Host: ${webapp.dnsName}' http://localhost:${toString instance.port} | grep ': ${toString webapp.port}'"
|
||||||
|
)
|
||||||
|
'') instance.webapps);
|
||||||
|
|
||||||
|
inherit processManagers profiles;
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
{ pkgs ? import <nixpkgs> { inherit system; }
|
||||||
|
, system ? builtins.currentSystem
|
||||||
|
, nix-processmgmt
|
||||||
|
, stateDir ? "/var"
|
||||||
|
, runtimeDir ? "${stateDir}/run"
|
||||||
|
, logDir ? "${stateDir}/log"
|
||||||
|
, cacheDir ? "${stateDir}/cache"
|
||||||
|
, spoolDir ? "${stateDir}/spool"
|
||||||
|
, libDir ? "${stateDir}/lib"
|
||||||
|
, tmpDir ? (if stateDir == "/var" then "/tmp" else "${stateDir}/tmp")
|
||||||
|
, forceDisableUserChange ? false
|
||||||
|
, processManager
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
sharedConstructors = import ../../services-agnostic/constructors.nix {
|
||||||
|
inherit pkgs stateDir runtimeDir logDir cacheDir spoolDir libDir tmpDir forceDisableUserChange processManager;
|
||||||
|
};
|
||||||
|
|
||||||
|
constructors = import "${nix-processmgmt}/examples/webapps-agnostic/constructors/constructors.nix" {
|
||||||
|
inherit pkgs stateDir runtimeDir logDir tmpDir forceDisableUserChange processManager;
|
||||||
|
webappMode = null;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
webapp1 = rec {
|
||||||
|
port = 5000;
|
||||||
|
dnsName = "webapp1.local";
|
||||||
|
|
||||||
|
pkg = constructors.webapp {
|
||||||
|
inherit port;
|
||||||
|
instanceSuffix = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
webapp2 = rec {
|
||||||
|
port = 5001;
|
||||||
|
dnsName = "webapp2.local";
|
||||||
|
|
||||||
|
pkg = constructors.webapp {
|
||||||
|
inherit port;
|
||||||
|
instanceSuffix = "2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
webapp3 = rec {
|
||||||
|
port = 5002;
|
||||||
|
dnsName = "webapp3.local";
|
||||||
|
|
||||||
|
pkg = constructors.webapp {
|
||||||
|
inherit port;
|
||||||
|
instanceSuffix = "3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
webapp4 = rec {
|
||||||
|
port = 5003;
|
||||||
|
dnsName = "webapp4.local";
|
||||||
|
|
||||||
|
pkg = constructors.webapp {
|
||||||
|
inherit port;
|
||||||
|
instanceSuffix = "4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nginx = rec {
|
||||||
|
port = if forceDisableUserChange then 8080 else 80;
|
||||||
|
webapps = [ webapp1 webapp2 webapp3 webapp4 ];
|
||||||
|
|
||||||
|
pkg = sharedConstructors.nginxReverseProxyHostBased {
|
||||||
|
inherit port webapps;
|
||||||
|
} {};
|
||||||
|
};
|
||||||
|
|
||||||
|
webapp5 = rec {
|
||||||
|
port = 5004;
|
||||||
|
dnsName = "webapp5.local";
|
||||||
|
|
||||||
|
pkg = constructors.webapp {
|
||||||
|
inherit port;
|
||||||
|
instanceSuffix = "5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
webapp6 = rec {
|
||||||
|
port = 5005;
|
||||||
|
dnsName = "webapp6.local";
|
||||||
|
|
||||||
|
pkg = constructors.webapp {
|
||||||
|
inherit port;
|
||||||
|
instanceSuffix = "6";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nginx2 = rec {
|
||||||
|
port = if forceDisableUserChange then 8081 else 8080;
|
||||||
|
webapps = [ webapp5 webapp6 ];
|
||||||
|
|
||||||
|
pkg = sharedConstructors.nginxReverseProxyHostBased {
|
||||||
|
inherit port webapps;
|
||||||
|
instanceSuffix = "2";
|
||||||
|
} {};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue