Веб-интерфейс: страница /clusters, навигация и крошки для кластеров
- Выделена страница списка кластеров, панель упрощена; nav_active и крошки ведут в раздел Кластеры; theme.js синхронизирует активную пилюлю по URL. - Доработки дашборда, аддонов, журнала, стилей и API-документации. - Поддержка Podman: docker-compose.podman.yml, скрипты сокета; Makefile и env.
This commit is contained in:
@@ -22,7 +22,7 @@ from dataclasses import dataclass
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
from kind_k8s_paths import clusters_dir, data_root
|
||||
from kind_k8s_paths import clusters_dir, container_cli_name, data_root
|
||||
from kindest_node_tags import normalize_tag_v_prefix
|
||||
from kubeconfig_patch import (
|
||||
kubeconfig_host_file,
|
||||
@@ -504,13 +504,15 @@ def create_cluster_non_interactive(
|
||||
if not use_existing_config and (workers < 0 or workers > 20):
|
||||
raise KindClusterError("Количество worker-нод должно быть от 0 до 20.")
|
||||
|
||||
ver_tag = normalize_tag_v_prefix(kubernetes_version_tag)
|
||||
node_image = f"kindest/node:{ver_tag}"
|
||||
|
||||
# Каталог данных кластера до долгих шагов — чтобы при сбое журнал в journal/jobs_history.json
|
||||
# и provision_log могли быть привязаны к существующему clusters/<имя>/.
|
||||
root = data_root()
|
||||
cdir = clusters_dir()
|
||||
out_dir = cdir / name
|
||||
out_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
ver_tag = normalize_tag_v_prefix(kubernetes_version_tag)
|
||||
node_image = f"kindest/node:{ver_tag}"
|
||||
cfg_path = out_dir / "kind-config.yaml"
|
||||
kube_path = out_dir / "kubeconfig"
|
||||
meta_path = out_dir / "meta.json"
|
||||
@@ -912,14 +914,14 @@ def read_meta_json(cluster_name: str) -> dict[str, object] | None:
|
||||
|
||||
|
||||
def _container_cli_bin() -> str:
|
||||
"""Имя CLI к сокету (docker / podman), как в kubeconfig_patch."""
|
||||
return (os.environ.get("CONTAINER_CLI") or "docker").strip() or "docker"
|
||||
"""Имя CLI к сокету: см. :func:`kind_k8s_paths.container_cli_name`."""
|
||||
return container_cli_name()
|
||||
|
||||
|
||||
def configured_container_cli() -> str:
|
||||
"""Активное имя CLI из ``CONTAINER_CLI`` (docker/podman).
|
||||
"""Имя CLI, которое реально вызывает процесс (в контейнере веб-UI — всегда ``docker``).
|
||||
|
||||
Единый источник для проверки движка, сбора ``docker stats``/``podman stats`` и поля ``container_cli`` в GET /stats.
|
||||
Единый источник для ``docker stats``/``podman stats``, ``kind``, health и поля ``container_cli`` в API.
|
||||
"""
|
||||
return _container_cli_bin()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user