- prometheus metrics: make the latency histogram cumulative (!1731, GH#117)
- fix file permission checks when running as root (!1741)
- /network/address-renumbering: fix conversion to Lua configuration (!1739)
+- manager: avoid uncommon bugs when starting/quitting policy-loader (!1742)
Knot Resolver 6.0.15 (2025-07-17)
set_global_validation_context(Context(Path(Path(self.input_file[0]).parent), self.strict))
if self.type == "worker":
- lua = KresConfig(data).render_lua()
+ lua = KresConfig(data).render_kresd_lua()
elif self.type == "policy-loader":
- lua = KresConfig(data).render_lua_policy()
+ lua = KresConfig(data).render_policy_loader_lua()
else:
raise ValueError(f"Invalid self.type={self.type}")
reset_global_validation_context()
def _render_lua(self) -> Optional[str]:
if self.type is SubprocessType.KRESD:
- return self._config.render_lua()
+ return self._config.render_kresd_lua()
if self.type is SubprocessType.POLICY_LOADER:
- return self._config.render_lua_policy()
+ return self._config.render_policy_loader_lua()
return None
def _write_config(self) -> None:
from knot_resolver.datamodel.network_schema import NetworkSchema
from knot_resolver.datamodel.options_schema import OptionsSchema
from knot_resolver.datamodel.rate_limiting_schema import RateLimitingSchema
-from knot_resolver.datamodel.templates import POLICY_CONFIG_TEMPLATE, WORKER_CONFIG_TEMPLATE
+from knot_resolver.datamodel.templates import KRESD_CONFIG_TEMPLATE, POLICY_LOADER_CONFIG_TEMPLATE
from knot_resolver.datamodel.types import EscapedStr, IntPositive, WritableDir
from knot_resolver.datamodel.view_schema import ViewSchema
from knot_resolver.datamodel.webmgmt_schema import WebmgmtSchema
if len(errs) > 1:
raise AggregateDataValidationError("/", errs)
- def render_lua(self) -> str:
+ def render_kresd_lua(self) -> str:
# FIXME the `cwd` argument is used only for configuring control socket path
# it should be removed and relative path used instead as soon as issue
# https://gitlab.nic.cz/knot/knot-resolver/-/issues/720 is fixed
- return WORKER_CONFIG_TEMPLATE.render(cfg=self, cwd=os.getcwd())
+ return KRESD_CONFIG_TEMPLATE.render(cfg=self, cwd=os.getcwd())
- def render_lua_policy(self) -> str:
- return POLICY_CONFIG_TEMPLATE.render(cfg=self, cwd=os.getcwd())
+ def render_policy_loader_lua(self) -> str:
+ return POLICY_LOADER_CONFIG_TEMPLATE.render(cfg=self, cwd=os.getcwd())
def get_rundir_without_validation(data: Dict[str, Any]) -> WritableDir:
_TEMPLATES_DIR = _get_templates_dir()
-def _import_kresd_worker_config_template() -> Template:
- path = os.path.join(_TEMPLATES_DIR, "worker-config.lua.j2")
+def _import_kresd_config_template() -> Template:
+ path = os.path.join(_TEMPLATES_DIR, "kresd.lua.j2")
with open(path, "r", encoding="UTF-8") as file:
template = file.read()
return template_from_str(template)
-def _import_kresd_policy_config_template() -> Template:
- path = os.path.join(_TEMPLATES_DIR, "policy-config.lua.j2")
+def _import_policy_loader_config_template() -> Template:
+ path = os.path.join(_TEMPLATES_DIR, "policy-loader.lua.j2")
with open(path, "r", encoding="UTF-8") as file:
template = file.read()
return template_from_str(template)
return env.from_string(template)
-WORKER_CONFIG_TEMPLATE = _import_kresd_worker_config_template()
+KRESD_CONFIG_TEMPLATE = _import_kresd_config_template()
-POLICY_CONFIG_TEMPLATE = _import_kresd_policy_config_template()
+POLICY_LOADER_CONFIG_TEMPLATE = _import_policy_loader_config_template()