@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
188 lines (182 loc) • 7.49 kB
HTML
<div class="details-panel">
<div ng-if="ctrl.state.loading" class="header">
<div class="close-button">
<a class="btn btn-link" ui-sref="^">
<span class="glyphicon glyphicon-remove"></span>
</a>
</div>
<h4 class="text-center">
<span us-spinner="{radius:20, width:6, length: 12}"></span>
</h4>
</div>
<div class="header" ng-if="!ctrl.state.loading">
<div class="close-button">
<a class="btn btn-link" ui-sref="^">
<span class="glyphicon glyphicon-remove"></span>
</a>
</div>
<div class="header-text horizontal middle">
<cloud-provider-logo
provider="ctrl.loadBalancer.cloudProvider"
height="'36px'"
width="'36px'"
></cloud-provider-logo>
<h3 class="horizontal middle space-between flex-1" select-on-dbl-click>
{{ctrl.loadBalancer.displayName}}
<render-if-feature feature="entityTags">
<entity-notifications
ng-if="!state.loading"
entity="ctrl.loadBalancer"
application="ctrl.app"
placement="bottom"
h-offset-percent="90%"
entity-type="loadBalancer"
page-location="details"
on-update="ctrl.app.loadBalancers.refresh()"
></entity-notifications>
</render-if-feature>
</h3>
</div>
<div class="actions">
<div class="dropdown" uib-dropdown dropdown-append-to-body>
<button type="button" class="btn btn-sm btn-primary dropdown-toggle" uib-dropdown-toggle ng-hide="isDisabled">
{{ctrl.loadBalancer.kind | robotToHuman}} Actions <span class="caret"></span>
</button>
<ul class="dropdown-menu" uib-dropdown-menu role="menu">
<li>
<a href ng-click="ctrl.deleteLoadBalancer()">Delete</a>
</li>
<li>
<a href ng-click="ctrl.editLoadBalancer()">Edit</a>
</li>
<render-if-feature feature="entityTags">
<add-entity-tag-links
component="ctrl.loadBalancer"
application="ctrl.app"
entity-type="loadBalancer"
on-update="ctrl.app.loadBalancers.refresh()"
></add-entity-tag-links>
</render-if-feature>
</ul>
</div>
</div>
</div>
<div ng-if="!ctrl.state.loading" class="content">
<collapsible-section heading="Information" expanded="true">
<dl class="dl-horizontal dl-narrow">
<dt>Created</dt>
<dd>{{ctrl.loadBalancer.createdTime | timestamp}}</dd>
<dt>Account</dt>
<dd><account-tag account="ctrl.loadBalancer.account" pad="right"></account-tag></dd>
<dt>Namespace</dt>
<dd>{{ctrl.loadBalancer.namespace}}</dd>
<dt>Kind</dt>
<dd>{{ctrl.loadBalancer.kind}}</dd>
<dt>Service Type</dt>
<dd>{{ctrl.manifest.manifest.spec.type}}</dd>
<dt>Sess. Affinity</dt>
<dd>{{ctrl.manifest.manifest.spec.sessionAffinity}}</dd>
</dl>
</collapsible-section>
<collapsible-section heading="Status" expanded="true">
<dl class="dl-horizontal dl-narrow">
<div ng-if="!ctrl.loadBalancer.serverGroups.length">
No workloads associated with this {{ctrl.loadBalancer.kind | robotToHuman}}.
</div>
<dt ng-if="ctrl.loadBalancer.serverGroups.length">Workloads</dt>
<dd ng-if="ctrl.loadBalancer.serverGroups.length">
<ul>
<li ng-repeat="serverGroup in ctrl.loadBalancer.serverGroups | orderBy: ['isDisabled', '-name']">
<a
ui-sref="^.serverGroup({region: serverGroup.region,
accountId: serverGroup.account,
serverGroup: serverGroup.name,
provider: 'kubernetes'})"
>
{{serverGroup.name}}
</a>
</li>
</ul>
</dd>
<div ng-if="ctrl.loadBalancer.serverGroups.length">
<dt>Pod status</dt>
<dd>
<health-counts class="pull-left" container="ctrl.loadBalancer.instanceCounts"></health-counts>
</dd>
</div>
<div ng-if="ctrl.manifest.manifest.spec.clusterIP">
<dt>Cluster IP</dt>
<dd>
<a target="_blank" href="//{{ctrl.manifest.manifest.spec.clusterIP}}">
{{ctrl.manifest.manifest.spec.clusterIP}}
</a>
<copy-to-clipboard
class="copy-to-clipboard copy-to-clipboard-sm"
text="ctrl.manifest.manifest.spec.clusterIP"
tool-tip="'Copy Cluster IP to clipboard'"
>
</copy-to-clipboard>
</dd>
</div>
<div ng-if="ctrl.manifest.manifest.spec.loadBalancerIP">
<dt>Load Balancer IP</dt>
<dd>
<a target="_blank" href="//{{ctrl.manifest.manifest.spec.loadBalancerIP}}">
{{ctrl.manifest.manifest.spec.loadBalancerIP}}
</a>
<copy-to-clipboard
class="copy-to-clipboard copy-to-clipboard-sm"
text="ctrl.manifest.manifest.spec.loadBalancerIP"
tool-tip="'Copy Load Balancer IP to clipboard'"
>
</copy-to-clipboard>
</dd>
</div>
<div ng-if="ctrl.manifest.manifest.spec.rules.length">
<dt>Host Rules</dt>
<dd ng-repeat="ingressRule in ctrl.manifest.manifest.spec.rules">
<a ng-if="ingressRule.host" target="_blank" href="//{{ingressRule.host}}"> {{ingressRule.host}} </a>
<copy-to-clipboard
ng-if="ingressRule.host"
class="copy-to-clipboard copy-to-clipboard-sm"
text="ingressRule.host"
tool-tip="'Copy ingress rule host to clipboard'"
>
</copy-to-clipboard>
</dd>
</div>
<div ng-if="ctrl.manifest.manifest.status.loadBalancer.ingress.length">
<dt>Ingress</dt>
<dd ng-repeat="ingress in ctrl.manifest.manifest.status.loadBalancer.ingress">
<a ng-if="ingress.hostname" target="_blank" href="//{{ingress.hostname}}"> {{ingress.hostname}} </a>
<copy-to-clipboard
ng-if="ingress.hostname"
class="copy-to-clipboard copy-to-clipboard-sm"
text="ingress.hostname"
tool-tip="'Copy Ingress hostname to clipboard'"
>
</copy-to-clipboard>
<a ng-if="ingress.ip" target="_blank" href="//{{ingress.ip}}"> {{ingress.ip}} </a>
<copy-to-clipboard
ng-if="ingress.ip"
class="copy-to-clipboard copy-to-clipboard-sm"
text="ingress.ip"
tool-tip="'Copy Ingress IP to clipboard'"
>
</copy-to-clipboard>
</dd>
</div>
</dl>
</collapsible-section>
<kubernetes-annotation-custom-sections
manifest="ctrl.manifest.manifest"
resource="ctrl.loadBalancer"
></kubernetes-annotation-custom-sections>
<collapsible-section heading="Events" expanded="true">
<kubernetes-manifest-events manifest="ctrl.manifest"></kubernetes-manifest-events>
</collapsible-section>
<collapsible-section heading="Labels" expanded="true">
<kubernetes-manifest-labels manifest="ctrl.manifest.manifest"></kubernetes-manifest-labels>
</collapsible-section>
</div>
</div>