Kiali anonymous, журнал Helm, kubeconfig для контейнеров, UI аддонов
- Kiali: убран login, anonymous по умолчанию; удалены поля логина/пароля из UI и API - Журнал Helm: install/upgrade/delete, message и колонка в journal.js - Аддоны: values свёрнуты при подгрузке для установленных - GET …/kubeconfig/docker: host.docker.internal:порт + tls-server-name; кнопка в UI - apply_apiserver_endpoint_to_kubeconfig_file; KIND_K8S_APISERVER_GATEWAY_HOST в compose/env.example - README и api_routes.md обновлены
This commit is contained in:
+23
-20
@@ -754,11 +754,23 @@ def uninstall_metrics_server(cluster_name: str) -> tuple[bool, str]:
|
||||
return True, text or "metrics-server удалён (или отсутствовал)."
|
||||
|
||||
|
||||
def _kiali_user_values_define_auth_strategy(values: dict[str, Any] | None) -> bool:
|
||||
"""
|
||||
True, если в пользовательских values kiali-server уже задан ``auth.strategy``
|
||||
(тогда Helm не подставляет ``anonymous`` поверх).
|
||||
"""
|
||||
if not values:
|
||||
return False
|
||||
auth = values.get("auth")
|
||||
if not isinstance(auth, dict):
|
||||
return False
|
||||
strat = auth.get("strategy")
|
||||
return isinstance(strat, str) and bool(strat.strip())
|
||||
|
||||
|
||||
def install_istio_and_kiali(
|
||||
cluster_name: str,
|
||||
*,
|
||||
kiali_username: str,
|
||||
kiali_password: str,
|
||||
istio_chart_version: str | None = None,
|
||||
kiali_chart_version: str | None = None,
|
||||
istio_base_values: dict[str, Any] | None = None,
|
||||
@@ -766,7 +778,11 @@ def install_istio_and_kiali(
|
||||
kiali_user_values: dict[str, Any] | None = None,
|
||||
) -> tuple[bool, str]:
|
||||
"""
|
||||
Istio base + istiod (опциональные values из UI) + секрет Kiali + kiali-server.
|
||||
Istio base + istiod (опциональные values из UI) + kiali-server.
|
||||
|
||||
Kiali: стратегия ``login`` в актуальных версиях не поддерживается upstream. По умолчанию
|
||||
выставляется ``auth.strategy=anonymous`` (удобно для kind и port-forward); иначе
|
||||
задайте ``auth`` в YAML values (``token``, ``openid`` и т.д., см. kiali.io).
|
||||
|
||||
Для каждого чарта: если словарь ``None`` — без файла ``-f`` (дефолты чарта);
|
||||
если непустой dict — полный values как в редакторе.
|
||||
@@ -826,22 +842,6 @@ def install_istio_and_kiali(
|
||||
if istiod_tmp is not None:
|
||||
istiod_tmp.unlink(missing_ok=True)
|
||||
|
||||
# Секрет для стратегии login (ключи username / passphrase — ожидание Kiali).
|
||||
secret = {
|
||||
"apiVersion": "v1",
|
||||
"kind": "Secret",
|
||||
"metadata": {"name": "kiali", "namespace": "istio-system"},
|
||||
"type": "Opaque",
|
||||
"stringData": {
|
||||
"username": kiali_username,
|
||||
"passphrase": kiali_password,
|
||||
},
|
||||
}
|
||||
rcs, msgs = _kubectl_apply_manifest(cluster_name, secret)
|
||||
if rcs != 0:
|
||||
raise HelmAddonError(f"Secret kiali: {msgs}", exit_code=rcs)
|
||||
log_parts.append(msgs)
|
||||
|
||||
kiali_extra: list[Path] = []
|
||||
kiali_tmp: Path | None = None
|
||||
try:
|
||||
@@ -851,13 +851,16 @@ def install_istio_and_kiali(
|
||||
kiali_tmp = Path(name)
|
||||
kiali_tmp.write_text(dump_helm_values_yaml(kiali_user_values), encoding="utf-8")
|
||||
kiali_extra.append(kiali_tmp)
|
||||
kiali_helm_extra: list[str] = []
|
||||
if not _kiali_user_values_define_auth_strategy(kiali_user_values):
|
||||
kiali_helm_extra.extend(["--set", "auth.strategy=anonymous"])
|
||||
rc3, o3, e3 = _helm_upgrade_install(
|
||||
cluster_name,
|
||||
"kiali-server",
|
||||
"kiali/kiali-server",
|
||||
"istio-system",
|
||||
chart_version=kiali_ver,
|
||||
extra_args=["--set", "auth.strategy=login"],
|
||||
extra_args=kiali_helm_extra or None,
|
||||
extra_values_files=kiali_extra or None,
|
||||
)
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user