Веб-UI FastAPI, REST API v1, интерактивный setup без env.example
- Дашборд (Jinja2 + static), управление кластерами kind, задания и kubeconfig. - API: health, stats, clusters CRUD, versions, jobs; документация app/docs/api_routes.md. - Docker Compose: том app, uvicorn reload, KIND_K8S_PATCH_KUBECONFIG по умолчанию 1. - setup_env_interactive.py: список переменных в скрипте, удалён env.example. - Makefile: явный префикс docker/podman; прочие правки CLI и ядра кластеров.
This commit is contained in:
19
Dockerfile
19
Dockerfile
@@ -1,15 +1,21 @@
|
||||
# Образ kind-k8s-tools: kind, kubectl, docker CLI, Python-скрипты (без установки на хост).
|
||||
# Образ kind-k8s-tools: kind, kubectl, docker CLI, FastAPI (веб-UI), Python-скрипты.
|
||||
# Данные кластеров монтируются в /work/clusters (см. docker-compose.yml).
|
||||
#
|
||||
# Воспроизводимая версия kubectl: build-arg KUBECTL_VERSION=v1.32.0 (или пусто — stable.txt).
|
||||
#
|
||||
# Автор: Сергей Антропов — https://devops.org.ru
|
||||
|
||||
FROM alpine:3.20
|
||||
|
||||
ARG KIND_VERSION=0.24.0
|
||||
# Пусто — взять актуальный stable.txt; иначе явная версия, например v1.32.0
|
||||
ARG KUBECTL_VERSION=
|
||||
# Платформа целевого образа (BuildKit подставляет amd64/arm64; иначе — uname внутри слоя)
|
||||
ARG TARGETARCH
|
||||
|
||||
FROM alpine:3.20
|
||||
COPY requirements.txt /opt/kind-k8s/requirements.txt
|
||||
|
||||
RUN apk add --no-cache python3 docker-cli curl bash ca-certificates \
|
||||
RUN apk add --no-cache python3 py3-pip docker-cli curl bash ca-certificates \
|
||||
&& ARCH="${TARGETARCH:-}" \
|
||||
&& if [ -z "$ARCH" ]; then ARCH="$(uname -m)"; fi \
|
||||
&& case "$ARCH" in \
|
||||
@@ -19,11 +25,14 @@ RUN apk add --no-cache python3 docker-cli curl bash ca-certificates \
|
||||
esac \
|
||||
&& curl -sSLo /usr/local/bin/kind "https://kind.sigs.k8s.io/dl/v${KIND_VERSION}/kind-linux-${KARCH}" \
|
||||
&& chmod +x /usr/local/bin/kind \
|
||||
&& KVER=$(curl -Ls https://dl.k8s.io/release/stable.txt) \
|
||||
&& if [ -n "${KUBECTL_VERSION}" ]; then KVER="${KUBECTL_VERSION}"; else KVER=$(curl -Ls https://dl.k8s.io/release/stable.txt); fi \
|
||||
&& curl -sSLo /usr/local/bin/kubectl "https://dl.k8s.io/release/${KVER}/bin/linux/${KARCH}/kubectl" \
|
||||
&& chmod +x /usr/local/bin/kubectl
|
||||
&& chmod +x /usr/local/bin/kubectl \
|
||||
&& pip3 install --no-cache-dir --break-system-packages -r /opt/kind-k8s/requirements.txt
|
||||
|
||||
COPY app/ /opt/kind-k8s/app/
|
||||
COPY scripts/run_uvicorn.sh /opt/kind-k8s/run_uvicorn.sh
|
||||
RUN chmod +x /opt/kind-k8s/run_uvicorn.sh
|
||||
|
||||
ENV KIND_K8S_WORKDIR=/work \
|
||||
PYTHONPATH=/opt/kind-k8s/app \
|
||||
|
||||
Reference in New Issue
Block a user