Enhancement: Fixed original behavior of manual config k8s service

pull/3352/head
Grayton Ward 2 weeks ago
parent fa677c2ab2
commit a5ecb34ddf

@ -28,7 +28,7 @@ export default async function handler(req, res) {
return;
}
const coreApi = kc.makeApiClient(CoreV1Api);
const labelSelector = podSelector !== undefined ? podSelector : await parseIngressSelector(appName, namespace, kc);
const labelSelector = podSelector !== undefined ? podSelector : await parseIngressSelector(appName, namespace, kc, logger);
const metricsApi = new Metrics(kc);
const podsResponse = await coreApi
.listNamespacedPod(namespace, null, null, null, null, labelSelector)

@ -25,7 +25,7 @@ export default async function handler(req, res) {
});
return;
}
const labelSelector = podSelector !== undefined ? podSelector : await parseIngressSelector(appName, namespace, kc);
const labelSelector = podSelector !== undefined ? podSelector : await parseIngressSelector(appName, namespace, kc, logger);
const coreApi = kc.makeApiClient(CoreV1Api);
const podsResponse = await coreApi
.listNamespacedPod(namespace, null, null, null, null, labelSelector)

@ -1,14 +1,35 @@
import { CoreV1Api, NetworkingV1Api } from "@kubernetes/client-node";
export async function parseIngressSelector(ingressName, namespace, kc) {
export async function parseIngressSelector(ingressName, namespace, kc, logger) {
const coreApi = kc.makeApiClient(CoreV1Api);
const networkApi = kc.makeApiClient(NetworkingV1Api);
const ingress = await networkApi.readNamespacedIngress(ingressName, namespace);
const serviceName = ingress.body.spec.rules[0].http.paths[0].backend.service.name;
const ingress = await networkApi
.readNamespacedIngress(ingressName, namespace)
.then((response) => response.body)
.catch((err) => {
logger.error("Error getting ingress: %d %s %s", err.statusCode, err.body, err.response);
return null;
});
const svc = await coreApi.readNamespacedService(serviceName, namespace);
return svc.body.spec.selector;
if (!ingress) {
return {"app.kubernetes.io/name": ingressName};
}
const serviceName = ingress.spec.rules[0].http.paths[0].backend.service.name;
const svc = await coreApi
.readNamespacedService(serviceName, namespace)
.then((response) => response.body)
.catch((err) => {
logger.error("Error getting service: %d %s %s", err.statusCode, err.body, err.response);
return null;
});
if (!svc) {
return {"app.kubernetes.io/name": ingressName};
}
return svc.spec.selector;
}
export function parseCpu(cpuStr) {

Loading…
Cancel
Save