Summary
The daemon's cache.node_to_node_pull_through_enabled setting gates all serve-time origin pull-through, but the decdn_node role does not expose it — there is no decdn_* variable and node.toml.j2 never emits the key. Operators who need it must hand-edit /etc/decdn/node.toml on the host, which the next make deploy (re-templating node.toml) silently reverts.
Proposed fix
- Add a role default
decdn_node_to_node_pull_through_enabled: false in roles/decdn_node/defaults/main.yml. - Emit it in
roles/decdn_node/templates/node.toml.j2 under [cache] (e.g. node_to_node_pull_through_enabled = {{ decdn_node_to_node_pull_through_enabled | lower }}), only when the operator opts in, matching the existing [cache] field conventions.
Notes
decdn_cache_origin_path is already a role knob (defaults/main.yml); this issue is specifically about the missing pull-through toggle.- Encountered while getting a
kind: fs origin to serve a client fetch; the toggle had to be added by hand to node.toml and did not survive as inventory-managed config.
Summary
The daemon's
cache.node_to_node_pull_through_enabledsetting gates all serve-time origin pull-through, but thedecdn_noderole does not expose it — there is nodecdn_*variable andnode.toml.j2never emits the key. Operators who need it must hand-edit/etc/decdn/node.tomlon the host, which the nextmake deploy(re-templatingnode.toml) silently reverts.Proposed fix
decdn_node_to_node_pull_through_enabled: falseinroles/decdn_node/defaults/main.yml.roles/decdn_node/templates/node.toml.j2under[cache](e.g.node_to_node_pull_through_enabled = {{ decdn_node_to_node_pull_through_enabled | lower }}), only when the operator opts in, matching the existing[cache]field conventions.Notes
decdn_cache_origin_pathis already a role knob (defaults/main.yml); this issue is specifically about the missing pull-through toggle.kind: fsorigin to serve a client fetch; the toggle had to be added by hand tonode.tomland did not survive as inventory-managed config.