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:
Sergey Antropoff
2026-04-04 18:54:10 +03:00
parent 349b78d24d
commit 4b703801e1
13 changed files with 415 additions and 123 deletions
+17 -15
View File
@@ -464,7 +464,13 @@
if (ta) ta.value = "";
}
function showAddonValuesPanel(addon) {
/**
* Показать панель YAML values. Для установленного аддона при подгрузке values — блок <details> свёрнут.
* @param {string} addon
* @param {{ collapseDetails?: boolean } | undefined} opts
*/
function showAddonValuesPanel(addon, opts) {
opts = opts || {};
var pid = ADDON_VALUES_PANEL_ID[addon];
if (!pid) return;
var panel = document.getElementById(pid);
@@ -472,6 +478,10 @@
panel.classList.remove("hidden");
panel.removeAttribute("hidden");
panel.setAttribute("aria-hidden", "false");
var det = panel.querySelector("details.cluster-addon-card__values-details");
if (det) {
det.open = opts.collapseDetails ? false : true;
}
}
function resetAllAddonValuesPanels() {
@@ -532,7 +542,7 @@
var t = document.getElementById("addons-values-yaml-" + addon);
if (t) t.value = r.values_yaml || "";
}
showAddonValuesPanel(addon);
showAddonValuesPanel(addon, { collapseDetails: addonEndpointInstalled(addon) });
} catch (e) {
setBootstrapMsg("Не удалось загрузить values (helm show values): " + e.message);
} finally {
@@ -674,7 +684,7 @@
} else if (iv.ingress_nginx && iv.ingress_nginx.values_yaml) {
var ti = document.getElementById("addons-values-yaml-ingress-nginx");
if (ti) ti.value = iv.ingress_nginx.values_yaml;
showAddonValuesPanel("ingress-nginx");
showAddonValuesPanel("ingress-nginx", { collapseDetails: true });
}
if (!st.kube_prometheus_stack) {
@@ -682,7 +692,7 @@
} else if (iv.kube_prometheus_stack && iv.kube_prometheus_stack.values_yaml) {
var tp = document.getElementById("addons-values-yaml-kube-prometheus-stack");
if (tp) tp.value = iv.kube_prometheus_stack.values_yaml;
showAddonValuesPanel("kube-prometheus-stack");
showAddonValuesPanel("kube-prometheus-stack", { collapseDetails: true });
}
if (!st.metrics_server) {
@@ -690,7 +700,7 @@
} else if (iv.metrics_server && iv.metrics_server.values_yaml) {
var tm = document.getElementById("addons-values-yaml-metrics-server");
if (tm) tm.value = iv.metrics_server.values_yaml;
showAddonValuesPanel("metrics-server");
showAddonValuesPanel("metrics-server", { collapseDetails: true });
}
if (!st.istio_mesh_ready) {
@@ -710,7 +720,7 @@
if (tiod) tiod.value = ik.istiod_values_yaml;
}
if (ik.kiali_values_yaml || ik.istio_base_values_yaml || ik.istiod_values_yaml) {
showAddonValuesPanel("istio-kiali");
showAddonValuesPanel("istio-kiali", { collapseDetails: true });
}
}
}
@@ -1002,17 +1012,9 @@
return;
}
if (ep === "istio-kiali") {
const u = document.getElementById("addons-kiali-user");
const p = document.getElementById("addons-kiali-pass");
const isel = document.getElementById("addons-istio-version-select");
const ksel = document.getElementById("addons-kiali-version-select");
const user = u ? u.value.trim() : "kiali-admin";
const pw = p ? p.value : "";
if (pw.length < 8) {
alert("Задайте пароль Kiali не короче 8 символов.");
return;
}
const payload = { kiali_username: user, kiali_password: pw };
const payload = {};
if (isel && isel.value.trim()) payload.istio_chart_version = isel.value.trim();
if (ksel && ksel.value.trim()) payload.kiali_chart_version = ksel.value.trim();
if (!attachAddonYamlToPayload(ep, payload)) return;