{% extends "base.html" %} {% import "macros/ui.html" as m %} {% block title %}{{ ws_name }} · Clusters{% endblock %} {% block nav_workspaces %}btn-active{% endblock %} {% block content %} {{ m::ws_tabs(ws_name=ws_name, active=ws_active_tab, ws_envs=ws_envs, ws_has_clusters=ws_has_clusters, ws_has_workflows=ws_has_workflows, current_env=current_env) }} {# ── Controls bar ──────────────────────────────────────────────────────────── #}
{# ── Live node metrics (cluster top) ──────────────────────────────────────── #} {% if top %} {% if top.nodes %}| Node | CPU | CPU% | Mem | Mem% |
|---|---|---|---|---|
| {{ n.node }} | {{ n.cpu }} | {% set pct = n.cpu_pct | replace(from="%", to="") | int(default=0) %} {{ n.cpu_pct }} | {{ n.mem }} | {% set mpct = n.mem_pct | replace(from="%", to="") | int(default=0) %} {{ n.mem_pct }} |
{{ top.nodes | length }} node(s) — kubectl top (live) ·
| Namespace | Pod | CPU | Mem |
|---|
| # | Name | Namespace | Version | Class | Resources | Placement | Deploy | Live |
|---|---|---|---|---|---|---|---|---|
| {{ loop.index0 }} | {{ comp.name }} | {% if comp.namespace %}{{ comp.namespace }}{% else %}—{% endif %} | {% if comp.version %}{{ comp.version }}{% else %}—{% endif %} | {% if comp.class %} {{ comp.class }} {% else %}—{% endif %} | {% if comp.resources and comp.resources != "—" %}{{ comp.resources }}{% else %}—{% endif %} | {% if comp.placement and comp.placement != "—" %}{{ comp.placement }}{% else %}—{% endif %} | {% if comp.deploy == "completed" %} completed {% elif comp.deploy == "pending" %} pending {% elif comp.deploy == "failed" %} failed {% elif comp.deploy %} {{ comp.deploy }} {% else %} — {% endif %} | {% if comp.live and comp.live != "" %} {{ comp.live }} {% elif comp.ncl_state and comp.ncl_state != "" %} {% if comp.ncl_state == "completed" %} {{ comp.ncl_state }} {% elif comp.ncl_state == "running" %} {{ comp.ncl_state }} {% elif comp.ncl_state == "failed" %} {{ comp.ncl_state }} {% else %} {{ comp.ncl_state }} {% endif %} {% else %} — {% endif %} |
{{ cluster_components | length }} component(s)
| Name | Workspace | Env | Labels |
|---|---|---|---|
| {{ cl.name }} | {{ cl.workspace | default(value="—") }} | {{ cl.env | default(value="—") }} | {% if cl.config.labels %} {% for k, v in cl.config.labels %} {{ k }}={{ v }} {% endfor %} {% endif %} |
{{ clusters.total | default(value=clusters.items | length) }} cluster definition(s)