This commit is contained in:
2026-05-28 14:26:02 +07:00
parent b0443d5950
commit 991d6f5257
13 changed files with 464 additions and 22 deletions

View File

@@ -13,6 +13,16 @@ def _csv(value: str | None, fallback: list[str]) -> list[str]:
return [item.strip() for item in value.split(",") if item.strip()]
def _csv_with_defaults(value: str | None, defaults: list[str]) -> list[str]:
items = _csv(value, [])
seen = set(items)
for item in defaults:
if item not in seen:
items.append(item)
seen.add(item)
return items
def _default_allowed_download_hosts(base_url: str) -> list[str]:
parsed = urlparse(base_url)
if parsed.hostname:
@@ -37,6 +47,7 @@ class Settings:
allow_purge: bool
allow_docker: bool
allow_docker_compose: bool
auto_install_docker: bool
command_timeout_seconds: int
@@ -63,9 +74,9 @@ def get_settings() -> Settings:
os.getenv("ALLOWED_DOWNLOAD_HOSTS"),
_default_allowed_download_hosts(robot_package_base_url),
),
allowed_docker_registries=_csv(
allowed_docker_registries=_csv_with_defaults(
os.getenv("ALLOWED_DOCKER_REGISTRIES"),
["registry.robot.package"],
["registry.robot.package", "docker.io"],
),
cache_dir=Path(os.getenv("CACHE_DIR", "/var/cache/local-installer-agent/packages")),
app_dir=Path(os.getenv("APP_DIR", "/opt/robot-apps")),
@@ -73,8 +84,9 @@ def get_settings() -> Settings:
db_path=Path(os.getenv("DB_PATH", "/var/lib/local-installer-agent/agent.db")),
allow_remove=_bool("ALLOW_REMOVE", True),
allow_purge=_bool("ALLOW_PURGE", False),
allow_docker=_bool("ALLOW_DOCKER", False),
allow_docker=_bool("ALLOW_DOCKER", True),
allow_docker_compose=_bool("ALLOW_DOCKER_COMPOSE", False),
auto_install_docker=_bool("AUTO_INSTALL_DOCKER", True),
command_timeout_seconds=int(os.getenv("COMMAND_TIMEOUT_SECONDS", "900")),
)