af0d1705cc
- Страница /cluster/<имя>: сводка, ресурсы узлов полосами, отдельные карточки на каждый kubectl get … -o json, рестарт пода. - API: overview с блоками k8s_*, POST pods/restart, расширенный набор ресурсов (-A). - Панель: спиннер загрузки, правки дашборда и стилей; документация api_routes, compose и прочие сопутствующие изменения.
88 lines
3.2 KiB
HTML
88 lines
3.2 KiB
HTML
{# Главная: создание (CTA), статистика, донаты, таблица кластеров.
|
|
Автор: Сергей Антропов — https://devops.org.ru #}
|
|
{% extends "base.html" %}
|
|
|
|
{% block body_extra_class %} dashboard-home-loading{% endblock %}
|
|
|
|
{% block body_attrs %}data-dashboard-mode="home"{% endblock %}
|
|
|
|
{% block footer %}
|
|
<div class="footer-inner">
|
|
<p class="footer-copyright">
|
|
© {{ app_title }} ·
|
|
<a href="https://devops.org.ru" target="_blank" rel="noopener">devops.org.ru</a>
|
|
</p>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<div
|
|
id="home-page-loading-overlay"
|
|
class="page-loading-overlay"
|
|
role="status"
|
|
aria-live="polite"
|
|
aria-busy="true"
|
|
aria-label="Загрузка панели"
|
|
>
|
|
<div class="page-loading-backdrop" aria-hidden="true"></div>
|
|
<div class="page-loading-center">
|
|
<span class="spinner page-loading-spinner" aria-hidden="true"></span>
|
|
<span class="page-loading-label">Загрузка панели…</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="top-dashboard-row">
|
|
<section class="card cta-hero-card" aria-labelledby="cta-hero-title">
|
|
<div class="cta-hero-inner">
|
|
<h1 class="page-title" id="cta-hero-title">Создать кластер</h1>
|
|
<p class="muted page-lead cta-hero-lead">
|
|
Кластеры kind, kubeconfig и kubectl — ниже на странице. Данные обновляются автоматически.
|
|
</p>
|
|
<a href="/cluster-create" class="btn btn-cta-large">Перейти к форме создания</a>
|
|
</div>
|
|
</section>
|
|
|
|
<aside class="card stats-side-card" aria-labelledby="stats-heading">
|
|
<h2 id="stats-heading">Статистика</h2>
|
|
<p id="stats-engine-hint" class="stats-engine-hint muted hidden" aria-live="polite"></p>
|
|
<div id="stats-failure-wrap" class="stats-failure-wrap hidden" role="alert" aria-live="polite"></div>
|
|
<div id="stats-env" class="stats-env-cards" role="status" aria-live="polite">
|
|
<p class="stats-env-placeholder muted">Проверка среды…</p>
|
|
</div>
|
|
<div id="stats-grid" class="stats-metrics-grid" aria-label="Сводка по кластерам и заданиям"></div>
|
|
</aside>
|
|
</div>
|
|
|
|
<section id="aggregate-donuts-section" class="card aggregate-donuts-card" aria-labelledby="donuts-heading">
|
|
<h2 id="donuts-heading" class="donuts-card-title">Ресурсы узлов (сводка)</h2>
|
|
<div id="aggregate-donuts" class="aggregate-donuts" aria-live="polite"></div>
|
|
</section>
|
|
|
|
<section class="card clusters-card">
|
|
<h2>Кластеры</h2>
|
|
<div class="table-wrap">
|
|
<table id="tbl-clusters" aria-label="Список кластеров">
|
|
<thead>
|
|
<tr>
|
|
<th>Имя</th>
|
|
<th>kind</th>
|
|
<th>kubeconfig</th>
|
|
<th>Версия</th>
|
|
<th>Workers</th>
|
|
<th>Состояние</th>
|
|
<th class="col-actions">Действия</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody></tbody>
|
|
</table>
|
|
</div>
|
|
<p id="list-msg" class="msg muted"></p>
|
|
</section>
|
|
|
|
{% include "partials/dashboard_modals.html" %}
|
|
{% endblock %}
|
|
|
|
{% block scripts %}
|
|
<script src="/static/js/dashboard.js" defer></script>
|
|
{% endblock %}
|