{% extends "base.html" %} {% block title %}Cluster {{ summary.cluster.name }}{% endblock %} {% block content %}

Cluster {{ summary.cluster.name }} {% for link in links['cluster']: %} {% endfor %}

{{ summary.cluster.id if summary.cluster.id != summary.cluster.name else summary.cluster.api_server_url }}

You can potentially save {{ summary.slack_cost|money }} USD every month by optimizing resource requests and reducing slack.

Price per requested vCPU is {{ '{:,.04f}'.format(summary.cost_per_user_request_hour.cpu) }} USD per hour and per requested GiB memory is {{ '{:,.04f}'.format(summary.cost_per_user_request_hour.memory) }} USD per hour.

Nodes

{% if links['node']: %} {% endif %} {% for node_name, node in summary.nodes.items()|sort: %} {% if links['node']: %} {% endif %} {%endfor %}
Name Role Instance Type S? Version CC MC CPU Memory (GiB) Cost
{{ node_name }} {{ node.role }} {{ node.instance_type }} {% if node.spot: %} {% endif %} {{ node.kubelet_version }} {{ node.capacity.cpu|round(1) }} {{ node.capacity.memory|filesizeformat(True) }}
{{ node.usage.cpu|round(1) }} {{ node.requests.cpu|round(1) }} {{ node.allocatable.cpu|round(1) }}
{{ node.usage.memory|memory('GiB') }} {{ node.requests.memory|memory('GiB') }} {{ node.allocatable.memory|memory('GiB') }}
{{ node.cost|money }}

Ingresses

{% if links['ingress']: %} {% endif %} {% for ingress in summary.ingresses: %} {% if links['ingress']: %} {% endif %} {%endfor %}
Namespace Name Application Host Status
{{ ingress[0] }} {{ ingress[1] }} {{ ingress[2] }} {{ ingress[3] }} {{ ingress[4] }}

IngressRoutes

{% if links['ingressroute']: %} {% endif %} {% for ingressroute in summary.ingressroutes: %} {% if links['ingressroute']: %} {% endif %} {%endfor %}
Namespace Name Application Host Tls
{{ ingressroute[0] }} {{ ingressroute[1] }} {{ ingressroute[2] }}
    {% for rule in ingressroute[3]: %}
  • {{rule["match"]}}
  • {% endfor %}
{% if ingressroute[4]: %} {{ ingressroute[4]['certResolver'] }} {% endif %}

Namespaces

{% if links['namespace']: %} {% endif %} {% for namespace_id, namespace_data in namespace_usage.items()|sort: %} {% if namespace_data.cluster.id == cluster_id %} {% if links['namespace']: %} {% endif %} {% endif %} {%endfor %}
ID A? P CR MR CPU Memory (MiB) Cost Slack Cost
{{ namespace_id[0] }} {% if namespace_data.status is not none: %} {% if namespace_data.status == "Active": %} {% else: %} {% endif %} {% endif %} {{ namespace_data.pods }} {{ namespace_data.requests.cpu|round(3) }} {{ namespace_data.requests.memory|filesizeformat(True) }} {{ elements.resource_bar_cpu(namespace_data) }} {{ elements.resource_bar_memory(namespace_data) }} {{ namespace_data.cost|money }} {{ namespace_data.slack_cost|money }}

Pods

{% if links['pod']: %} {% endif %} {% for namespace_name, pod in summary.pods.items(): %} {% if links['pod']: %} {% endif %} {%endfor %}
Namespace Name Application Component Team Cont. CR MR CPU Memory (MiB) Cost
{{ namespace_name[0] }} {{ namespace_name[1] }} {{ pod.application }} {{ pod.component }} {{ pod.team }} {{ pod.container_images|count }} {{ pod.requests.cpu|round(3) }} {{ pod.requests.memory|filesizeformat(True) }} {{ elements.resource_bar_cpu(pod) }} {{ elements.resource_bar_memory(pod) }} {{ pod.cost|money }}
{% endblock %}