mirror of
https://github.com/FairwindsOps/polaris.git
synced 2026-05-11 03:37:42 +00:00
130 lines
5.9 KiB
Plaintext
130 lines
5.9 KiB
Plaintext
{{define "dashboard"}}
|
|
<div class="card cluster">
|
|
<h3>Cluster Overview</h3>
|
|
<div class="cluster-overview">
|
|
<div class="cluster-score">
|
|
<div class="weather"><i class="fas {{ getWeatherIcon .AuditData.ClusterSummary.Results }}"></i></div>
|
|
<div class="sailing">{{ getWeatherText .AuditData.ClusterSummary.Results }}</div>
|
|
<div class="scores">Grade: <strong>{{ getGrade .AuditData.ClusterSummary.Results }}</strong> | Score: <strong>{{ getScore .AuditData.ClusterSummary.Results }}%</strong></div>
|
|
</div>
|
|
<div class="result-messages">
|
|
<ul class="message-list">
|
|
<li class="success"><i class="message-icon fas fa-check"></i> {{ .AuditData.ClusterSummary.Results.Totals.Successes }} checks passed</li>
|
|
<li class="warning"><i class="message-icon fas fa-exclamation"></i> {{ .AuditData.ClusterSummary.Results.Totals.Warnings }} checks had warnings</li>
|
|
<li class="error"><i class="message-icon fas fa-times"></i> {{ .AuditData.ClusterSummary.Results.Totals.Errors }} checks had errors</li>
|
|
</ul>
|
|
</div>
|
|
<canvas id="clusterScoreChart"></canvas>
|
|
</div>
|
|
<table class="expandable-table" cellspacing="0">
|
|
<tr>
|
|
<td class="resource-info">
|
|
<div class="name"><span class="caret-expander"></span>Cluster details</div>
|
|
<div class="expandable-content">
|
|
<ul class="message-list">
|
|
<li>
|
|
<span class="detail-label">Kubernetes Version:</span>
|
|
<span class="detail-value">{{ .AuditData.ClusterSummary.Version }}</span>
|
|
</li>
|
|
<li>
|
|
<span class="detail-label">Nodes:</span>
|
|
<span class="detail-value">{{ .AuditData.ClusterSummary.Nodes }}</span>
|
|
</li>
|
|
<li>
|
|
<span class="detail-label">Pods:</span>
|
|
<span class="detail-value">{{ .AuditData.ClusterSummary.Pods }}</span>
|
|
</li>
|
|
<li>
|
|
<span class="detail-label">Namespaces:</span>
|
|
<span class="detail-value">{{ .AuditData.ClusterSummary.Namespaces }}</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="resource-info">
|
|
<div class="name"><span class="caret-expander"></span>Health summary</div>
|
|
<div class="expandable-content">
|
|
<ul class="message-list">
|
|
{{ range $category, $summary := .AuditData.ClusterSummary.Results.ByCategory }}
|
|
<li>
|
|
<span class="detail-label">{{ $category }}</span>
|
|
<span class="detail-value">{{ $summary.Errors }} errors, {{ $summary.Warnings }} warnings</span>
|
|
<div class="status-bar">
|
|
<div class="status">
|
|
<div class="failing">
|
|
<div class="warning" style="width: {{ getWarningWidth $summary 280 }}px;">
|
|
<div class="passing" style="width: {{ getSuccessWidth $summary 280 }}px;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
{{ end }}
|
|
</ul>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
{{ range $namespace, $nsResult := .AuditData.NamespacedResults }}
|
|
<div class="card namespace">
|
|
<h3>Namespace: <strong>{{ $namespace }}</strong></h3>
|
|
<table class="expandable-table" cellspacing="0">
|
|
{{ range .DeploymentResults }}
|
|
<tr>
|
|
<td class="resource-info">
|
|
<div class="name"><span class="caret-expander"></span>Deployment: <strong>{{ .Name }}</strong></div>
|
|
<div class="result-messages expandable-content">
|
|
<h4>Pod Spec:</h4>
|
|
<ul class="message-list">
|
|
{{ range $message := .PodResult.Messages}}
|
|
<li class="{{ .Type }}">
|
|
<i class="message-icon {{ getIcon $message }}"></i>
|
|
<a class="more-info" href="/details/{{ getCategoryLink .Category }}">
|
|
<i class="far fa-question-circle"></i>
|
|
</a>
|
|
<span class="message">{{ .Message }}</span>
|
|
</li>
|
|
{{ end }}
|
|
</ul>
|
|
</div>
|
|
{{ range .PodResult.ContainerResults}}
|
|
<div class="result-messages expandable-content">
|
|
<h4>Container: {{ .Name }}</h4>
|
|
<ul class="message-list">
|
|
{{ range $message := .Messages}}
|
|
<li class="{{ .Type }}">
|
|
<i class="message-icon {{ getIcon $message }}"></i>
|
|
<a class="more-info" href="/details/{{ getCategoryLink .Category }}">
|
|
<i class="far fa-question-circle"></i>
|
|
</a>
|
|
<span class="message">{{ .Message }}</span>
|
|
</li>
|
|
{{ end }}
|
|
</ul>
|
|
</div>
|
|
{{ end }} {{/* end range .PodResult.ContainerResults */}}
|
|
</div>
|
|
</td>
|
|
<td class="status-bar">
|
|
<div class="status">
|
|
<div class="failing">
|
|
<div class="warning" style="width: {{ getWarningWidth .PodResult.Summary.Totals 200 }}px;">
|
|
<div class="passing" style="width: {{ getSuccessWidth .PodResult.Summary.Totals 200 }}px;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{{ end }} {{/* end range .DeploymentResults */}}
|
|
</table>
|
|
</div>
|
|
{{ end }} {{/* end range .AuditData.NamespacedResults */}}
|
|
<script src="/static/js/charts.js">
|
|
</script>
|
|
{{end}}
|