new status format, new podSelector field, more accurate pod stats

* renamed pod label prefix from "homepage" to "gethomepage.dev"
  which is more inline with typical kubernetes practices
This commit is contained in:
James Wynn 2022-12-08 16:03:29 -06:00
parent 174cb651b4
commit 09eb172079
8 changed files with 65 additions and 40 deletions

View file

@ -144,13 +144,14 @@ export async function servicesFromKubernetes() {
app: ingress.metadata.name,
namespace: ingress.metadata.namespace,
href: getUrlFromIngress(ingress),
name: ingress.metadata.annotations['homepage/name'] || ingress.metadata.name,
group: ingress.metadata.annotations['homepage/group'] || "Kubernetes",
icon: ingress.metadata.annotations['homepage/icon'] || '',
description: ingress.metadata.annotations['homepage/description'] || ''
name: ingress.metadata.annotations['gethomepage.dev/name'] || ingress.metadata.name,
group: ingress.metadata.annotations['gethomepage.dev/group'] || "Kubernetes",
icon: ingress.metadata.annotations['gethomepage.dev/icon'] || '',
description: ingress.metadata.annotations['gethomepage.dev/description'] || '',
podSelector: ingress.metadata.annotations['gethomepage.dev/pod-selector'] || ''
};
Object.keys(ingress.metadata.annotations).forEach((annotation) => {
if (annotation.startsWith("homepage/widget/")) {
if (annotation.startsWith("gethomepage.dev//widget/")) {
shvl.set(constructedService, annotation.replace("homepage/widget/", ""), ingress.metadata.annotations[annotation]);
}
});
@ -202,9 +203,10 @@ export function cleanServiceGroups(groups) {
container,
currency, // coinmarketcap widget
symbols,
defaultinterval
defaultinterval,
namespace, // kubernetes widget
app
app,
podSelector
} = cleanedService.widget;
cleanedService.widget = {
@ -225,6 +227,7 @@ export function cleanServiceGroups(groups) {
if (type === "kubernetes") {
if (namespace) cleanedService.widget.namespace = namespace;
if (app) cleanedService.widget.app = app;
if (podSelector) cleanedService.widget.podSelector = podSelector;
}
}
@ -267,4 +270,4 @@ export default async function getServiceWidget(group, service) {
}
return false;
}
}