Документация и kubectl из контейнера; Kind Clusters Dashboard
- Цель make docker|podman kubectl CLUSTER=… (KUBECTL_ARGS) — exec kubectl в kind-k8s-web - README: без kubectl на хосте; раздел про проверку API из контейнера - create_cluster/cluster_status: подсказки для UI, make kubectl и exec в контейнере - app/docs: api_routes.md и README.md про kubectl и API workloads - Прочее: переименование проекта, документация, UI документации (ранее в рабочем дереве)
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
# kind-k8s-develop — веб-интерфейс (FastAPI) для kind.
|
||||
# Kind Clusters Dashboard — веб-интерфейс (FastAPI) для kind.
|
||||
# Создание кластеров — в браузере: http://127.0.0.1:8080 (порт: KIND_K8S_WEB_PORT; 6000 на хосте — ERR_UNSAFE_PORT в Chrome).
|
||||
#
|
||||
# Все операции с Compose только с явным выбором среды:
|
||||
# make docker up | make docker down | make docker logs | …
|
||||
# make podman up | make podman down | …
|
||||
# make docker rebuild / make podman rebuild — образ без кэша и пересоздание контейнера
|
||||
# Без префикса docker/podman цели up/down/logs/ps/compose-build/rebuild/check-docker завершатся с подсказкой.
|
||||
# Без префикса docker/podman цели up/down/logs/ps/compose-build/rebuild/check-docker/kubectl завершатся с подсказкой.
|
||||
#
|
||||
# Автор: Сергей Антропов — https://devops.org.ru
|
||||
|
||||
@@ -15,13 +15,16 @@ else ifneq (,$(filter docker,$(MAKECMDGOALS)))
|
||||
COMPOSE := docker compose
|
||||
endif
|
||||
|
||||
.PHONY: help docker podman _require_runtime up down logs ps setup clusters-dir check-docker compose-build rebuild
|
||||
.PHONY: help docker podman _require_runtime up down logs ps setup clusters-dir check-docker compose-build rebuild kubectl
|
||||
|
||||
KIND_K8S_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
|
||||
SETUP_ENV_SCRIPT := $(KIND_K8S_DIR)/scripts/setup_env_interactive.py
|
||||
PYTHON ?= python3
|
||||
# При «exec format error» у kind: make docker compose-build COMPOSE_BUILD_FLAGS=--platform linux/arm64
|
||||
COMPOSE_BUILD_FLAGS ?=
|
||||
# Для цели kubectl: имя кластера и аргументы kubectl после --kubeconfig (по умолчанию: get nodes).
|
||||
CLUSTER ?=
|
||||
KUBECTL_ARGS ?= get nodes
|
||||
|
||||
help: ## Справка по целям
|
||||
@echo "Веб-UI kind — только с выбором Docker или Podman в одной команде с целью:"
|
||||
@@ -32,6 +35,7 @@ help: ## Справка по целям
|
||||
@echo " make docker compose-build / make podman compose-build"
|
||||
@echo " make docker rebuild / make podman rebuild (build --no-cache + up --force-recreate)"
|
||||
@echo " make docker check-docker / make podman check-docker"
|
||||
@echo " make docker kubectl CLUSTER=<имя> — kubectl в контейнере (см. KUBECTL_ARGS, по умолчанию get nodes)"
|
||||
@echo "Без установки Compose: make setup, make clusters-dir (python3 для setup)."
|
||||
@grep -E '^[a-zA-Z0-9_-]+:.*?##' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?##"} {printf " \033[36m%-28s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
@@ -41,12 +45,12 @@ docker: ## Маркер среды: задайте вторую цель (нап
|
||||
podman: ## Маркер среды: задайте вторую цель (например: make podman up)
|
||||
@:
|
||||
|
||||
# Общая проверка: цели up/down/logs/ps/compose-build/rebuild/check-docker — только make docker … / make podman …
|
||||
# Общая проверка: цели up/down/logs/ps/compose-build/rebuild/check-docker/kubectl — только make docker … / make podman …
|
||||
_require_runtime:
|
||||
@if [ -z "$(COMPOSE)" ]; then \
|
||||
echo >&2 "Укажите среду в той же команде, что и цель:"; \
|
||||
echo >&2 " make docker up | make podman up"; \
|
||||
echo >&2 " make docker down | make docker logs | make docker ps | make docker compose-build | make docker rebuild | make docker check-docker"; \
|
||||
echo >&2 " make docker down | make docker logs | make docker ps | make docker compose-build | make docker rebuild | make docker check-docker | make docker kubectl CLUSTER=…"; \
|
||||
echo >&2 " (или то же с префиксом podman)"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@@ -77,6 +81,16 @@ check-docker: _require_runtime ## (с docker/podman) Проверить CLI и c
|
||||
@$(COMPOSE) version >/dev/null 2>&1 || { echo >&2 "Команда «$(COMPOSE) version» недоступна."; exit 1; }
|
||||
@echo "$(COMPOSE): OK"
|
||||
|
||||
# kubectl и kind в образе; kubeconfig в томе /work/clusters/<CLUSTER>/kubeconfig — kubectl на хосте не нужен.
|
||||
kubectl: _require_runtime ## (с docker/podman) kubectl в контейнере: CLUSTER=имя [KUBECTL_ARGS="get pods -A"]
|
||||
@if [ -z "$(CLUSTER)" ]; then \
|
||||
echo >&2 "Задайте CLUSTER=<имя_кластера> (каталог в ./clusters/)."; \
|
||||
echo >&2 "Пример: make docker kubectl CLUSTER=dev"; \
|
||||
echo >&2 "Свои подкоманды: make docker kubectl CLUSTER=dev KUBECTL_ARGS=\"get pods -A\""; \
|
||||
exit 1; \
|
||||
fi
|
||||
cd "$(KIND_K8S_DIR)" && $(COMPOSE) exec kind-k8s-web kubectl --kubeconfig=/work/clusters/$(CLUSTER)/kubeconfig $(KUBECTL_ARGS)
|
||||
|
||||
compose-build: _require_runtime clusters-dir ## (с docker/podman) Собрать образ kind-k8s-tools:local
|
||||
cd "$(KIND_K8S_DIR)" && $(COMPOSE) build $(COMPOSE_BUILD_FLAGS)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user