default swarm.attic domain and cache to the swarm's own cache on every host
This commit is contained in:
parent
61292e865e
commit
606817a994
1 changed files with 80 additions and 57 deletions
|
|
@ -45,6 +45,7 @@ let
|
|||
deploy.bao.enable = true;
|
||||
deploy.builder.enable = true;
|
||||
swarm.attic.domain = "cache.example.org";
|
||||
swarm.attic.cache = null;
|
||||
};
|
||||
refusedHalfCache =
|
||||
m:
|
||||
|
|
@ -67,13 +68,23 @@ let
|
|||
svc = inner.systemd.services.swarm-builder;
|
||||
env = svc.environment;
|
||||
hasOnPath = name: s: lib.any (p: lib.getName p == name) s.path;
|
||||
# A builder with no cache named anywhere.
|
||||
# A builder that opts out of pushing: both options null.
|
||||
withBuilderNoCache = hive {
|
||||
deploy.bao.enable = true;
|
||||
deploy.builder.enable = true;
|
||||
swarm.attic.domain = null;
|
||||
swarm.attic.cache = null;
|
||||
};
|
||||
withoutCache = withBuilderNoCache.containers.swarm-builder.config.systemd.services.swarm-builder;
|
||||
|
||||
# A builder on a host that doesn't run the cache and names nothing.
|
||||
builderDefaults = hive {
|
||||
deploy.bao.enable = true;
|
||||
deploy.builder.enable = true;
|
||||
};
|
||||
defaultsEnv =
|
||||
builderDefaults.containers.swarm-builder.config.systemd.services.swarm-builder.environment;
|
||||
|
||||
# Hosting the shared services runs the swarm's own cache, which names itself.
|
||||
atticHere = servicesHere;
|
||||
atticDeploy = atticHere.services.hyperhive.deploy.attic;
|
||||
|
|
@ -83,7 +94,7 @@ let
|
|||
atticTokens = atticHere.systemd.services.swarm-bao-attic-tokens;
|
||||
atticVhost = atticHere.services.hyperhive.gateway.vhosts."attic.t.local";
|
||||
|
||||
# The cache switched on while the operator names the options by hand.
|
||||
# The cache switched on while the operator overrides the options.
|
||||
atticByHand = hive {
|
||||
deploy.bao.enable = true;
|
||||
deploy.attic.enable = true;
|
||||
|
|
@ -310,10 +321,10 @@ let
|
|||
}
|
||||
{
|
||||
# The switch is on wherever the shared services are and the host holds the
|
||||
# cache's leaf, and the two options every host reads come from the cache.
|
||||
# The builder on the same host pushes to it. `bare` is the control that the
|
||||
# lookup reads null where nothing runs a cache.
|
||||
name = "hosting the shared services runs the swarm's cache and fills the cache options, which the builder follows";
|
||||
# cache's leaf.
|
||||
# The builder on the same host pushes to it. `bare` is the control that no
|
||||
# cache renders where nothing enables it.
|
||||
name = "hosting the shared services runs the swarm's cache, and the builder pushes to it";
|
||||
ok =
|
||||
atticDeploy.enable
|
||||
&& atticHere.containers ? swarm-attic
|
||||
|
|
@ -327,10 +338,23 @@ let
|
|||
&&
|
||||
atticHere.containers.swarm-builder.config.systemd.services.swarm-builder.environment.SWARM_BUILDER_ATTIC_CACHE
|
||||
== "swarm"
|
||||
&& (atticSwarm bare).domain == null
|
||||
&& (atticSwarm bare).cache == null
|
||||
&& !(hasAtticHost bare);
|
||||
}
|
||||
{
|
||||
# The options default to the swarm's own cache on every host, so a
|
||||
# builder host that runs no cache pushes to it. `atticHere` is the control
|
||||
# that the cache host reads the same values.
|
||||
name = "a builder host that doesn't run the cache pushes to the swarm's own by default";
|
||||
ok =
|
||||
!(hasAtticHost builderDefaults)
|
||||
&& (atticSwarm builderDefaults).domain == "attic.t.local"
|
||||
&& (atticSwarm builderDefaults).cache == "swarm"
|
||||
&& (atticSwarm bare).domain == (atticSwarm atticHere).domain
|
||||
&& (atticSwarm bare).cache == (atticSwarm atticHere).cache
|
||||
&& defaultsEnv.SWARM_BUILDER_ATTIC_DOMAIN == "attic.t.local"
|
||||
&& defaultsEnv.SWARM_BUILDER_ATTIC_CACHE == "swarm"
|
||||
&& !(builderDefaults.systemd.services ? swarm-bao-attic-tokens);
|
||||
}
|
||||
{
|
||||
# Names the operator gives win over the cache's own, and the gateway then
|
||||
# serves the cache under the operator's name. `atticHere` is the control
|
||||
|
|
|
|||
Loading…
Reference in a new issue