обновлён /admin/config и API для os_registry. - Molecule/раннер: env из конфигурации, ensure roleforge-os (ensure_roleforge_os.yml), os_registry_pull и доработки executors / runner / create.yml. - /admin/os-images: выбор реестра, buildx (в т.ч. split amd64+arm64 + imagetools), опция --no-cache, стрим логов; domain.py: план команд build, ретраи push. - UI: брендинг (app_name, app_tagline) из app_config через get_ui_branding_context; base.xhtml, role-create / role-view, core.js, pages-main, стили. - Dockerfiles: требование Python ≥3.9 (assert), доработки alt9/astra/debian9/ubuntu20 и др.; новые Dockerfile.arm64 для centos7/centos8. - Конфиг: .env.example, config.py, pyproject.toml.
53 lines
1.2 KiB
TOML
53 lines
1.2 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "roleforge-backend"
|
|
version = "0.1.0"
|
|
description = "Ansible orchestration backend inspired by Tower"
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
# Ephemeral runner (`app.runner`) runs Molecule with Docker; pip gives a current ansible-core (callback result_format yaml needs >=2.15).
|
|
"ansible-core>=2.19.0,<3",
|
|
"molecule>=26.0.0",
|
|
"molecule-plugins[docker]>=23.0.0",
|
|
"fastapi>=0.115.0",
|
|
"uvicorn[standard]>=0.30.0",
|
|
"asyncpg>=0.30.0",
|
|
"pydantic-settings>=2.4.0",
|
|
"python-jose[cryptography]>=3.3.0",
|
|
"passlib[bcrypt]>=1.7.4",
|
|
"python-multipart>=0.0.9",
|
|
"jinja2>=3.1.4",
|
|
"httpx>=0.27.0",
|
|
"email-validator>=2.2.0",
|
|
"celery>=5.4.0",
|
|
"redis>=5.0.8",
|
|
"docker>=7.1.0",
|
|
"cryptography>=43.0.0",
|
|
"websockets>=13.1",
|
|
"pyyaml>=6.0.2",
|
|
"yamllint>=1.35.0",
|
|
"kubernetes>=30.1.0",
|
|
"pillow>=11.0.0",
|
|
]
|
|
|
|
[tool.uv]
|
|
dev-dependencies = [
|
|
"pytest>=8.3.2",
|
|
"pytest-asyncio>=0.24.0",
|
|
"ruff>=0.6.3",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py312"
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["app*"]
|