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:
@@ -250,6 +250,20 @@
|
||||
document.body.removeChild(a);
|
||||
}
|
||||
|
||||
/**
|
||||
* Скачать kubeconfig для kubectl из другого контейнера: host.docker.internal:порт + tls-server-name (см. GET …/kubeconfig/docker).
|
||||
* @param {string} clusterName
|
||||
*/
|
||||
function downloadKubeconfigDocker(clusterName) {
|
||||
const url = API + "/clusters/" + encodeURIComponent(clusterName) + "/kubeconfig/docker";
|
||||
const a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = "kubeconfig-docker-" + clusterName + ".yaml";
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
document.body.removeChild(a);
|
||||
}
|
||||
|
||||
/** SVG-иконки действий (stroke, currentColor). */
|
||||
var ICONS = {
|
||||
state:
|
||||
@@ -260,6 +274,9 @@
|
||||
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5" y="5" width="14" height="14" rx="2"/></svg>',
|
||||
download:
|
||||
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>',
|
||||
/** kubeconfig для контейнера: apiserver по имени control-plane в сети Docker */
|
||||
kubeDocker:
|
||||
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>',
|
||||
trash:
|
||||
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" y1="11" x2="10" y2="17"/><line x1="14" y1="11" x2="14" y2="17"/></svg>',
|
||||
logFile:
|
||||
@@ -1519,7 +1536,7 @@
|
||||
iconActionButton(
|
||||
ICONS.download,
|
||||
c.has_local_kubeconfig
|
||||
? "Скачать kubeconfig для kubectl на хосте"
|
||||
? "Скачать kubeconfig для kubectl на хосте (localhost:порт)"
|
||||
: "Kubeconfig ещё нет — появится после создания или подъёма кластера",
|
||||
"icon-btn--secondary",
|
||||
c.has_local_kubeconfig
|
||||
@@ -1530,6 +1547,21 @@
|
||||
!c.has_local_kubeconfig,
|
||||
),
|
||||
);
|
||||
host.appendChild(
|
||||
iconActionButton(
|
||||
ICONS.kubeDocker,
|
||||
c.has_local_kubeconfig
|
||||
? "Скачать kubeconfig для kubectl из другого контейнера: host.docker.internal:порт + tls-server-name (как в веб-UI; на Linux — extra_hosts host-gateway)"
|
||||
: "Kubeconfig ещё нет — появится после создания или подъёма кластера",
|
||||
"icon-btn--secondary",
|
||||
c.has_local_kubeconfig
|
||||
? function () {
|
||||
downloadKubeconfigDocker(name);
|
||||
}
|
||||
: null,
|
||||
!c.has_local_kubeconfig,
|
||||
),
|
||||
);
|
||||
if (c.has_provision_log) {
|
||||
host.appendChild(
|
||||
iconActionButton(
|
||||
|
||||
Reference in New Issue
Block a user