-rundir: ./runtime
workers: 1
management:
interface: 127.0.0.1@5000
-cache:
- storage: ./cache
logging:
level: notice
groups:
GROUP = "@group@"
# dirs paths
-RUN_DIR = Path("@run_dir@")
+RUN_DIR = Path("@prefix@@run_dir@")
ETC_DIR = Path("@etc_dir@")
SBIN_DIR = Path("@sbin_dir@")
+CACHE_DIR = Path("@cache_dir@")
# files paths
CONFIG_FILE = ETC_DIR / "config.yaml"
RUN_DIR = Path("/run/knot-resolver")
ETC_DIR = Path("/etc/knot-resolver")
SBIN_DIR = Path("/usr/bin")
+CACHE_DIR = Path("/var/cache/knot-resolver")
# files paths
CONFIG_FILE = ETC_DIR / "config.yaml"
API_SOCK_FILE = RUN_DIR / "kres-api.sock"
-# environmental variables
-CONFIG_FILE_ENV_VAR = "KRES_CONFIG_FILE"
-API_SOCK_FILE_ENV_VAR = "KRES_API_SOCK_FILE"
-
# executables paths
KRESD_EXECUTABLE = SBIN_DIR / "kresd"
KRES_CACHE_GC_EXECUTABLE = SBIN_DIR / "kres-cache-gc"
from typing import List, Literal, Optional, Union
+from knot_resolver.constants import CACHE_DIR
from knot_resolver.datamodel.templates import template_from_str
from knot_resolver.datamodel.types import (
DNSRecordTypeEnum,
prefetch: These options help keep the cache hot by prefetching expiring records or learning usage patterns and repetitive queries.
"""
- storage: WritableDir = lazy_default(WritableDir, "/var/cache/knot-resolver")
+ storage: WritableDir = lazy_default(WritableDir, str(CACHE_DIR))
size_max: SizeUnit = SizeUnit("100M")
garbage_collector: Union[GarbageCollectorSchema, Literal[False]] = GarbageCollectorSchema()
ttl_min: TimeUnit = TimeUnit("5s")
Used for initial manager startup.
"""
- return WritableDir(data["rundir"] if "rundir" in data else RUN_DIR, object_path="/rundir")
+ return WritableDir(data["rundir"] if "rundir" in data else str(RUN_DIR), object_path="/rundir")
def kres_config_json_schema() -> Dict[str, Any]:
constants_config.set('version', meson.project_version())
constants_config.set('user', user)
constants_config.set('group', group)
+constants_config.set('prefix', prefix)
constants_config.set('run_dir', run_dir)
constants_config.set('etc_dir', etc_dir)
constants_config.set('sbin_dir', sbin_dir)
+constants_config.set('cache_dir', systemd_cache_dir)
configure_file(
input: 'constants.py.in',