Веб-интерфейс: страница /clusters, навигация и крошки для кластеров
- Выделена страница списка кластеров, панель упрощена; nav_active и крошки ведут в раздел Кластеры; theme.js синхронизирует активную пилюлю по URL. - Доработки дашборда, аддонов, журнала, стилей и API-документации. - Поддержка Podman: docker-compose.podman.yml, скрипты сокета; Makefile и env.
This commit is contained in:
@@ -6,6 +6,14 @@
|
||||
# export CONTAINER_SOCKET="$XDG_RUNTIME_DIR/podman/podman.sock"
|
||||
# make podman up
|
||||
#
|
||||
# Доступ к сокету: при rootless Podman сокет часто принадлежит вашему UID; процесс в контейнере
|
||||
# должен совпадать по UID/GID. «make podman …» передаёт KIND_K8S_CONTAINER_UIDGID и HOME (см. Makefile).
|
||||
# Вручную: KIND_K8S_CONTAINER_UIDGID=$(id -u):$(id -g) KIND_K8S_CONTAINER_HOME=/tmp podman compose up -d
|
||||
# SELinux (Fedora и т.д.): при «permission denied» попробуйте CONTAINER_SOCKET_VOLUME_OPTS=:Z в .env
|
||||
# Podman rootless: «make podman …» подключает docker-compose.podman.yml (userns_mode: keep-id), подставляет
|
||||
# путь к podman.sock и монтирует его в контейнер как /run/podman/podman.sock (см. CONTAINER_SOCKET_MOUNT_TARGET,
|
||||
# KIND_K8S_REMOTE_SOCKET_URI). В .env нужны KIND_K8S_CONTAINER_UIDGID / KIND_K8S_CONTAINER_HOME (make setup).
|
||||
#
|
||||
# Автор: Сергей Антропов — https://devops.org.ru
|
||||
|
||||
services:
|
||||
@@ -18,9 +26,12 @@ services:
|
||||
KUBECTL_VERSION: ${KUBECTL_VERSION:-}
|
||||
HELM_VERSION: ${HELM_VERSION:-v3.16.3}
|
||||
image: kind-k8s-tools:local
|
||||
container_name: kind-clusters-dashboard
|
||||
# 0:0 — как root в образе (Docker Desktop и т.д.). Для rootless Podman задайте UID:GID владельца сокета.
|
||||
user: "${KIND_K8S_CONTAINER_UIDGID:-0:0}"
|
||||
volumes:
|
||||
- ./clusters:/work/clusters
|
||||
- ${CONTAINER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock
|
||||
- ${CONTAINER_SOCKET:-/var/run/docker.sock}:${CONTAINER_SOCKET_MOUNT_TARGET:-/var/run/docker.sock}${CONTAINER_SOCKET_VOLUME_OPTS:-}
|
||||
# Локальная разработка: код с хоста сразу в контейнере (пересборка образа не нужна).
|
||||
- ./app:/opt/kind-k8s/app
|
||||
# README для /documentation и GET /api/v1/docs/readme (без пересборки образа).
|
||||
@@ -33,7 +44,10 @@ services:
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
environment:
|
||||
DOCKER_HOST: unix:///var/run/docker.sock
|
||||
# Не-root в контейнере: домашний каталог (в образе нет /home/<uid>).
|
||||
HOME: ${KIND_K8S_CONTAINER_HOME:-/root}
|
||||
# docker-cli и kind читают DOCKER_HOST; путь должен совпадать с правой частью тома сокета выше.
|
||||
DOCKER_HOST: ${KIND_K8S_REMOTE_SOCKET_URI:-unix:///var/run/docker.sock}
|
||||
KIND_K8S_IN_CONTAINER: "1"
|
||||
KIND_K8S_WORKDIR: /work
|
||||
# kubeconfig.host на томе; скачивание в UI патчит копию с KIND_K8S_KUBECONFIG_CLIENT_HOST (по умолчанию localhost).
|
||||
@@ -64,6 +78,8 @@ services:
|
||||
# Журнал заданий в clusters/<имя>/journal/jobs_history.json
|
||||
KIND_K8S_CLUSTER_JOURNAL_MAX_ENTRIES: ${KIND_K8S_CLUSTER_JOURNAL_MAX_ENTRIES:-}
|
||||
KIND_K8S_CLUSTER_JOURNAL_MAX_LOG_LINES: ${KIND_K8S_CLUSTER_JOURNAL_MAX_LOG_LINES:-}
|
||||
# Максимум записей в clusters/<имя>/helm_addon_log.json (история Helm).
|
||||
KIND_K8S_HELM_ADDON_LOG_MAX_ENTRIES: ${KIND_K8S_HELM_ADDON_LOG_MAX_ENTRIES:-}
|
||||
KIND_K8S_APP_TITLE: ${KIND_K8S_APP_TITLE:-}
|
||||
# 1 — uvicorn --reload (изменения в ./app); 0 — один процесс без reload.
|
||||
KIND_K8S_UVICORN_RELOAD: ${KIND_K8S_UVICORN_RELOAD:-1}
|
||||
|
||||
Reference in New Issue
Block a user