portainer/app/kubernetes/views/cluster/node/node.html

117 lines
5.0 KiB
HTML

<kubernetes-view-header title="Node details" state="kubernetes.cluster.node" view-ready="ctrl.state.viewReady">
<a ui-sref="kubernetes.cluster">Cluster</a> &gt; {{ ctrl.node.Name }}
</kubernetes-view-header>
<kubernetes-view-loading view-ready="ctrl.state.viewReady"></kubernetes-view-loading>
<div ng-if="ctrl.state.viewReady">
<div class="row">
<div class="col-sm-12">
<rd-widget>
<rd-widget-body classes="no-padding">
<uib-tabset active="ctrl.state.activeTab" justified="true" type="pills">
<uib-tab index="0" classes="btn-sm" select="ctrl.selectTab(0)">
<uib-tab-heading> <i class="fa fa-hdd space-right" aria-hidden="true"></i> Node </uib-tab-heading>
<form class="form-horizontal" style="padding: 20px;">
<table class="table">
<tbody ng-if="ctrl.node">
<tr>
<td>Hostname</td>
<td>
{{ ctrl.node.Name }}
<span class="label label-primary image-tag" style="margin-left: 5px;" ng-if="ctrl.node.Api">api</span>
</td>
</tr>
<tr ng-if="ctrl.endpoint.Subsets">
<td>
Kubernetes API
</td>
<td>{{ ctrl.node.IPAddress }}:{{ ctrl.node.Port }}</td>
</tr>
<tr>
<td>Role</td>
<td>{{ ctrl.node.Role }}</td>
</tr>
<tr>
<td>Kubelet version</td>
<td>{{ ctrl.node.Version }}</td>
</tr>
<tr>
<td>Creation date</td>
<td>{{ ctrl.node.CreationDate | getisodate }}</td>
</tr>
<tr>
<td>Status</td>
<td>
<span class="label label-{{ ctrl.node.Status | kubernetesNodeStatusColor }}">
{{ ctrl.node.Status }}
</span>
<span ng-if="ctrl.node.Status == 'Warning'" class="text text-warning">
{{ ctrl.node.Conditions | kubernetesNodeConditionsMessage }}
</span>
</td>
</tr>
</tbody>
</table>
<div style="padding: 8px;">
<kubernetes-resource-reservation
ng-if="ctrl.resourceReservation"
cpu="ctrl.resourceReservation.CPU"
cpu-limit="ctrl.node.CPU"
memory="ctrl.resourceReservation.Memory"
memory-limit="ctrl.memoryLimit"
description="Resource reservation represents the total amount of resource assigned to all the applications running on this node."
>
</kubernetes-resource-reservation>
</div>
</form>
</uib-tab>
<uib-tab index="1" classes="btn-sm" select="ctrl.selectTab(1)">
<uib-tab-heading>
<i class="fa fa-history space-right" aria-hidden="true"></i> Events
<div ng-if="ctrl.hasEventWarnings()">
<i class="fa fa-exclamation-circle orange-icon" aria-hidden="true" style="margin-right: 2px;"></i>
{{ ctrl.state.eventWarningCount }} warning(s)
</div>
</uib-tab-heading>
<kubernetes-events-datatable
title-text="Events"
title-icon="fa-history"
dataset="ctrl.events"
table-key="kubernetes.node.events"
order-by="Date"
reverse-order="true"
loading="ctrl.state.eventsLoading"
refresh-callback="ctrl.getEvents"
>
</kubernetes-events-datatable>
</uib-tab>
<uib-tab index="2" ng-if="ctrl.node.Yaml" select="ctrl.showEditor()" classes="btn-sm">
<uib-tab-heading> <i class="fa fa-code space-right" aria-hidden="true"></i> YAML </uib-tab-heading>
<div style="padding-right: 25px;" ng-if="ctrl.state.showEditorTab">
<kubernetes-yaml-inspector key="node-yaml" data="ctrl.node.Yaml"> </kubernetes-yaml-inspector>
</div>
</uib-tab>
</uib-tabset>
</rd-widget-body>
</rd-widget>
</div>
</div>
<div class="row" ng-if="ctrl.applications && ctrl.applications.length > 0">
<div class="col-sm-12">
<kubernetes-node-applications-datatable
dataset="ctrl.applications"
table-key="kubernetes.node.applications"
order-by="Name"
refresh-callback="ctrl.getApplications"
loading="ctrl.state.applicationsLoading"
title-text="Applications running on this node"
title-icon="fa-laptop-code"
>
</kubernetes-node-applications-datatable>
</div>
</div>
</div>