move the squid host options to deploy.hive-controller.squid
This commit is contained in:
parent
c9b5705ad8
commit
da16487800
1 changed files with 168 additions and 57 deletions
|
|
@ -1621,6 +1621,73 @@ let
|
|||
&& (locs h.swarm.forge.domain)."/".proxyPass == "http://127.0.0.1:3000/"
|
||||
&& !allLocal.containers.hive-matrix.config.services.matrix-tuwunel.settings.global.allow_encryption;
|
||||
}
|
||||
{
|
||||
# Each old spelling lands on the new path, with its own rename warning;
|
||||
# the squid.conf it renders equals the one the new spelling renders, and
|
||||
# differs from the default's (the control that the values reach it).
|
||||
name = "services.hyperhive.squid.* settings still apply, with a rename warning each";
|
||||
ok =
|
||||
let
|
||||
old = hiveWithController {
|
||||
squid = {
|
||||
allowedDomains = [ "legacy.example" ];
|
||||
baseAllowedDomains = [ "base.example" ];
|
||||
usersFile = "/var/lib/legacy-squid/users";
|
||||
selfcheck.unrestrictedCanary = "legacy-u.example";
|
||||
selfcheck.canary = "legacy-c.example";
|
||||
};
|
||||
};
|
||||
new = hiveWithController {
|
||||
deploy.hive-controller.squid = {
|
||||
allowedDomains = [ "legacy.example" ];
|
||||
baseAllowedDomains = [ "base.example" ];
|
||||
usersFile = "/var/lib/legacy-squid/users";
|
||||
selfcheck.unrestrictedCanary = "legacy-u.example";
|
||||
selfcheck.canary = "legacy-c.example";
|
||||
};
|
||||
};
|
||||
sq = old.services.hyperhive.deploy.hive-controller.squid;
|
||||
warned =
|
||||
m: path:
|
||||
lib.any (
|
||||
w: lib.hasInfix "services.hyperhive.squid.${path}" w && lib.hasInfix "has been renamed" w
|
||||
) m.warnings;
|
||||
in
|
||||
sq.allowedDomains == [ "legacy.example" ]
|
||||
&& sq.baseAllowedDomains == [ "base.example" ]
|
||||
&& sq.usersFile == "/var/lib/legacy-squid/users"
|
||||
&& sq.allowedFile == "/var/lib/legacy-squid/allowed"
|
||||
&& sq.selfcheck.unrestrictedCanary == "legacy-u.example"
|
||||
&& sq.selfcheck.canary == "legacy-c.example"
|
||||
&& lib.all (warned old) [
|
||||
"allowedDomains"
|
||||
"baseAllowedDomains"
|
||||
"usersFile"
|
||||
"selfcheck.unrestrictedCanary"
|
||||
"selfcheck.canary"
|
||||
]
|
||||
&& !(warned bare "allowedDomains")
|
||||
&& old.systemd.services.hive-c0re.environment.HIVE_SQUID_USERS_FILE == "/var/lib/legacy-squid/users"
|
||||
&& old.services.squid.configText == new.services.squid.configText
|
||||
&& lib.hasInfix "legacy-c.example" old.services.squid.configText
|
||||
&& !(lib.hasInfix "legacy-c.example" bare.services.squid.configText);
|
||||
}
|
||||
{
|
||||
# The default render, pinned so moving the options changes none of it:
|
||||
# the listen address squid binds and hive-c0re hands out, and the users
|
||||
# file hive-c0re writes.
|
||||
name = "squid's default listen address and users file reach squid.conf and hive-c0re unchanged";
|
||||
ok =
|
||||
let
|
||||
e = bare.systemd.services.hive-c0re.environment;
|
||||
conf = bare.services.squid.configText;
|
||||
in
|
||||
e.HIVE_SQUID_PROXY == "${bare.services.hyperhive.network.bridgeIp}:3128"
|
||||
&& e.HIVE_SQUID_USERS_FILE == "/var/lib/hive-squid/users"
|
||||
&& lib.hasInfix "http_port ${e.HIVE_SQUID_PROXY}" conf
|
||||
&& lib.hasInfix "basic_ncsa_auth /var/lib/hive-squid/users" conf
|
||||
&& lib.hasInfix "acl allowed_dst dstdomain cache.nixos.org" conf;
|
||||
}
|
||||
{
|
||||
# A hive's rendered identity, pinned so moving the option changes none of
|
||||
# it: the coordinator's name and client, the dashboard name, the CN of the
|
||||
|
|
|
|||
Loading…
Reference in a new issue