👽️ Move to new node data model

This commit is contained in:
andreas.dinauer 2025-11-16 14:03:15 +01:00
parent 1f478c7edb
commit 78d88ba0c0
5 changed files with 19 additions and 10 deletions

View File

@ -1,16 +1,25 @@
import type { Metadata } from "./Metadata";
import type { HasMetadata } from "./repo/ResourceRepo";
import { Metadata } from "../Metadata";
import { type HasMetadata } from "../repo/ResourceRepo";
export class Node implements HasMetadata
{
constructor (
public metadata: Metadata,
public runningPods: number,
public metrics: NodeMetrics,
public status: Status
) { }
}
class NodeMetrics
{
absoluteCpuUsage?: number;
relativeCpuUsage?: number;
absoluteMemory?: number;
relativeMemory?: number;
runningPods?: number;
relativeDiskUsage?: number;
totalDiskSpace?: number;
}
class Status

View File

@ -4,21 +4,21 @@
<div class="grid-element">
<p>{{ calcAge(nodeStats.metadata?.creationTimestamp) }}</p>
</div>
<p class="grid-element">{{ nodeStats.runningPods }}</p>
<p class="grid-element">{{ nodeStats.metrics.runningPods }}</p>
<div class="grid-element">
<NodeReadyComponent :ready="isReady(nodeStats)"></NodeReadyComponent>
</div>
<div class="grid-element">
<p class="usage" :class="cpuUsageFlag(nodeStats.relativeCpuUsage)">{{ nodeStats.relativeCpuUsage }}%</p>
<p class="usage" :class="cpuUsageFlag(nodeStats.metrics.relativeCpuUsage)">{{ nodeStats.metrics.relativeCpuUsage }}%</p>
</div>
<div class="grid-element">
<p class="usage" :class="ramUsageFlag(nodeStats.relativeMemory)">{{ nodeStats.relativeMemory }}%</p>
<p class="usage" :class="ramUsageFlag(nodeStats.metrics.relativeMemory)">{{ nodeStats.metrics.relativeMemory }}%</p>
</div>
</div>
</template>
<script setup lang="ts">
import type { Node } from '~/classes/Node';
import type { Node } from '~/classes/node/Node';
import NodeReadyComponent from './NodeReadyComponent.vue';
import { calcAge } from '~/classes/Pod';

View File

@ -15,7 +15,7 @@
</template>
<script setup lang="ts">
import type { Node } from '~/classes/Node';
import type { Node } from '~/classes/node/Node';
import { ResourceRepo } from '~/classes/repo/ResourceRepo';
import NodeComponent from '~/components/NodeComponent.vue';

View File

@ -1,5 +1,5 @@
import axios from "axios";
import type { Node } from "~/classes/Node";
import type { Node } from "~/classes/node/Node";
import type { Pod } from "~/classes/Pod";
import { Data } from "../chart/Dataset";
import dayjs from "dayjs";

View File

@ -40,7 +40,7 @@
</template>
<script setup lang="ts">
import type { Node } from '~/classes/Node';
import type { Node } from '~/classes/node/Node';
import { MonitoredResource } from './MonitoredResource';
import { Dataset } from '../chart/Dataset';
import { VOLUME_CHART_CONFIG } from './volumes/ChartConfig';