mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-07 09:35:54 -08:00
Added constant exports and linted new ...list.js files.
This commit is contained in:
@@ -35,6 +35,9 @@ const extractKubeData = (config) => {
|
||||
};
|
||||
};
|
||||
|
||||
export const ANNOTATION_BASE = "gethomepage.dev";
|
||||
export const ANNOTATION_WIDGET_BASE = `${ANNOTATION_BASE}/widget.`;
|
||||
|
||||
export default function getKubeArguments() {
|
||||
checkAndCopyConfig("kubernetes.yaml");
|
||||
|
||||
@@ -72,4 +75,4 @@ export async function checkCRD(name,kc,logger) {
|
||||
});
|
||||
|
||||
return exist;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import createLogger from "utils/logger";
|
||||
import checkAndCopyConfig, { CONF_DIR, getSettings, substituteEnvironmentVars } from "utils/config/config";
|
||||
import getDockerArguments from "utils/config/docker";
|
||||
import { getUrlSchema, getRouteList } from "utils/kubernetes/kubernetes-routes";
|
||||
import {ANNOTATION_BASE,ANNOTATION_WIDGET_BASE} from "utils/config/kubernetes"
|
||||
import * as shvl from "utils/config/shvl";
|
||||
|
||||
const logger = createLogger("service-helpers");
|
||||
@@ -167,8 +168,6 @@ export async function servicesFromDocker() {
|
||||
}
|
||||
|
||||
export async function servicesFromKubernetes() {
|
||||
const ANNOTATION_BASE = "gethomepage.dev";
|
||||
const ANNOTATION_WIDGET_BASE = `${ANNOTATION_BASE}/widget.`;
|
||||
const { instanceName } = getSettings();
|
||||
|
||||
checkAndCopyConfig("kubernetes.yaml");
|
||||
|
||||
@@ -1,50 +1,54 @@
|
||||
|
||||
// import { CustomObjectsApi, CoreV1Api } from "@kubernetes/client-node";
|
||||
// import createLogger from "utils/logger";
|
||||
import { CustomObjectsApi, CoreV1Api } from "@kubernetes/client-node";
|
||||
|
||||
import createLogger from "utils/logger";
|
||||
|
||||
const logger = createLogger("kubernetes-httproute-list");
|
||||
const HTTPROUTE_API_GROUP = "gateway.networking.k8s.io";
|
||||
const HTTPROUTE_API_VERSION = "v1";
|
||||
|
||||
// export async function getHttpRouteList(kc) {
|
||||
export default async function listHttpRoute(kubeArguments) {
|
||||
|
||||
// const logger = createLogger("service-helpers");
|
||||
// const crd = kc.makeApiClient(CustomObjectsApi);
|
||||
// const core = kc.makeApiClient(CoreV1Api);
|
||||
// let httpRouteList = [];
|
||||
|
||||
// // httproutes
|
||||
// const getHttpRoute = async (namespace) =>
|
||||
// crd
|
||||
// .listNamespacedCustomObject(apiGroup, version, namespace, "httproutes")
|
||||
// .then((response) => {
|
||||
// const [httpRoute] = response.body.items;
|
||||
// return httpRoute;
|
||||
// })
|
||||
// .catch((error) => {
|
||||
// logger.error("Error getting httproutes: %d %s %s", error.statusCode, error.body, error.response);
|
||||
// logger.debug(error);
|
||||
// return null;
|
||||
// });
|
||||
|
||||
// // namespaces
|
||||
// const namespaces = await core
|
||||
// .listNamespace()
|
||||
// .then((response) => response.body.items.map((ns) => ns.metadata.name))
|
||||
// .catch((error) => {
|
||||
// logger.error("Error getting namespaces: %d %s %s", error.statusCode, error.body, error.response);
|
||||
// logger.debug(error);
|
||||
// return null;
|
||||
// });
|
||||
|
||||
// if (namespaces) {
|
||||
// const httpRouteListUnfiltered = await Promise.all(
|
||||
// namespaces.map(async (namespace) => {
|
||||
// const httpRoute = await getHttpRoute(namespace);
|
||||
// return httpRoute;
|
||||
// }),
|
||||
// );
|
||||
|
||||
// httpRouteList = httpRouteListUnfiltered.filter((httpRoute) => httpRoute !== undefined);
|
||||
// }
|
||||
const crd = kubeArguments.config.makeApiClient(CustomObjectsApi);
|
||||
const core = kubeArguments.config.makeApiClient(CoreV1Api);
|
||||
const { gateway } = kubeArguments;
|
||||
let httpRouteList = [];
|
||||
|
||||
// return httpRouteList;
|
||||
// }
|
||||
if (gateway === true) {
|
||||
// httproutes
|
||||
const getHttpRoute = async (namespace) =>
|
||||
crd
|
||||
.listNamespacedCustomObject(HTTPROUTE_API_GROUP, HTTPROUTE_API_VERSION, namespace, "httproutes")
|
||||
.then((response) => {
|
||||
const [httpRoute] = response.body.items;
|
||||
return httpRoute;
|
||||
})
|
||||
.catch((error) => {
|
||||
logger.error("Error getting httproutes: %d %s %s", error.statusCode, error.body, error.response);
|
||||
logger.debug(error);
|
||||
return null;
|
||||
});
|
||||
|
||||
// namespaces
|
||||
const namespaces = await core
|
||||
.listNamespace()
|
||||
.then((response) => response.body.items.map((ns) => ns.metadata.name))
|
||||
.catch((error) => {
|
||||
logger.error("Error getting namespaces: %d %s %s", error.statusCode, error.body, error.response);
|
||||
logger.debug(error);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (namespaces) {
|
||||
const httpRouteListUnfiltered = await Promise.all(
|
||||
namespaces.map(async (namespace) => {
|
||||
const httpRoute = await getHttpRoute(namespace);
|
||||
return httpRoute;
|
||||
}),
|
||||
);
|
||||
|
||||
httpRouteList = httpRouteListUnfiltered.filter((httpRoute) => httpRoute !== undefined);
|
||||
}
|
||||
}
|
||||
return httpRouteList;
|
||||
}
|
||||
@@ -1,18 +1,25 @@
|
||||
// import NetworkingV1Api from "@kubernetes/client-node";
|
||||
import NetworkingV1Api from "@kubernetes/client-node";
|
||||
|
||||
import createLogger from "utils/logger";
|
||||
|
||||
const logger = createLogger("kubernetes-ingress-list");
|
||||
|
||||
|
||||
// export async function listIngress(kc) {
|
||||
export default async function listIngress(kubeArguments) {
|
||||
|
||||
// const networking = kc.makeApiClient(NetworkingV1Api);
|
||||
|
||||
// const ingressList = await networking
|
||||
// .listIngressForAllNamespaces(null, null, null, null)
|
||||
// .then((response) => response.body)
|
||||
// .catch((error) => {
|
||||
// logger.error("Error getting ingresses: %d %s %s", error.statusCode, error.body, error.response);
|
||||
// logger.debug(error);
|
||||
// return null;
|
||||
// });
|
||||
|
||||
// return ingressList;
|
||||
// }
|
||||
const networking = kubeArguments.config.makeApiClient(NetworkingV1Api);
|
||||
const { ingress} = kubeArguments;
|
||||
let ingressList = []
|
||||
|
||||
if (ingress===true){
|
||||
ingressList = await networking
|
||||
.listIngressForAllNamespaces(null, null, null, null)
|
||||
.then((response) => response.body)
|
||||
.catch((error) => {
|
||||
logger.error("Error getting ingresses: %d %s %s", error.statusCode, error.body, error.response);
|
||||
logger.debug(error);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
return ingressList.items;
|
||||
}
|
||||
@@ -1,60 +1,63 @@
|
||||
// import CustomObjectsApi from "@kubernetes/client-node";
|
||||
// import createLogger from "utils/logger";
|
||||
import CustomObjectsApi from "@kubernetes/client-node";
|
||||
|
||||
// export async function listIngress(annotationBase,kc) {
|
||||
import { checkCRD,ANNOTATION_BASE } from "utils/config/kubernetes";
|
||||
import createLogger from "utils/logger";
|
||||
|
||||
const logger = createLogger("kubernetes-traefik-list");
|
||||
|
||||
export default async function listTraefikIngress(kubeArguments) {
|
||||
|
||||
// const logger = createLogger("service-helpers");
|
||||
// const traefik = kubeArguments.traefik;
|
||||
// let traefikList = [];
|
||||
const kc = kubeArguments.config;
|
||||
const { traefik } = kubeArguments;
|
||||
const traefikList = [];
|
||||
|
||||
// if (traefik) {
|
||||
// const crd = kc.makeApiClient(CustomObjectsApi);
|
||||
// const traefikContainoExists = await checkCRD("ingressroutes.traefik.containo.us",kc,logger);
|
||||
// const traefikExists = await checkCRD("ingressroutes.traefik.io",kc,logger);
|
||||
if (traefik) {
|
||||
const crd = kc.makeApiClient(CustomObjectsApi);
|
||||
const traefikContainoExists = await checkCRD("ingressroutes.traefik.containo.us",kc,logger);
|
||||
const traefikExists = await checkCRD("ingressroutes.traefik.io",kc,logger);
|
||||
|
||||
// const traefikIngressListContaino = await crd
|
||||
// .listClusterCustomObject("traefik.containo.us", "v1alpha1", "ingressroutes")
|
||||
// .then((response) => response.body)
|
||||
// .catch(async (error) => {
|
||||
// if (traefikContainoExists) {
|
||||
// logger.error(
|
||||
// "Error getting traefik ingresses from traefik.containo.us: %d %s %s",
|
||||
// error.statusCode,
|
||||
// error.body,
|
||||
// error.response,
|
||||
// );
|
||||
// logger.debug(error);
|
||||
// }
|
||||
const traefikIngressListContaino = await crd
|
||||
.listClusterCustomObject("traefik.containo.us", "v1alpha1", "ingressroutes")
|
||||
.then((response) => response.body)
|
||||
.catch(async (error) => {
|
||||
if (traefikContainoExists) {
|
||||
logger.error(
|
||||
"Error getting traefik ingresses from traefik.containo.us: %d %s %s",
|
||||
error.statusCode,
|
||||
error.body,
|
||||
error.response,
|
||||
);
|
||||
logger.debug(error);
|
||||
}
|
||||
|
||||
// return [];
|
||||
// });
|
||||
return [];
|
||||
});
|
||||
|
||||
// const traefikIngressListIo = await crd
|
||||
// .listClusterCustomObject("traefik.io", "v1alpha1", "ingressroutes")
|
||||
// .then((response) => response.body)
|
||||
// .catch(async (error) => {
|
||||
// if (traefikExists) {
|
||||
// logger.error(
|
||||
// "Error getting traefik ingresses from traefik.io: %d %s %s",
|
||||
// error.statusCode,
|
||||
// error.body,
|
||||
// error.response,
|
||||
// );
|
||||
// logger.debug(error);
|
||||
// }
|
||||
const traefikIngressListIo = await crd
|
||||
.listClusterCustomObject("traefik.io", "v1alpha1", "ingressroutes")
|
||||
.then((response) => response.body)
|
||||
.catch(async (error) => {
|
||||
if (traefikExists) {
|
||||
logger.error(
|
||||
"Error getting traefik ingresses from traefik.io: %d %s %s",
|
||||
error.statusCode,
|
||||
error.body,
|
||||
error.response,
|
||||
);
|
||||
logger.debug(error);
|
||||
}
|
||||
|
||||
// return [];
|
||||
// });
|
||||
return [];
|
||||
});
|
||||
|
||||
// const traefikIngressList = [...(traefikIngressListContaino?.items ?? []), ...(traefikIngressListIo?.items ?? [])];
|
||||
const traefikIngressList = [...(traefikIngressListContaino?.items ?? []), ...(traefikIngressListIo?.items ?? [])];
|
||||
|
||||
// if (traefikIngressList.length > 0) {
|
||||
// const traefikServices = traefikIngressList.filter(
|
||||
// (ingress) => ingress.metadata.annotations && ingress.metadata.annotations[`${annotationBase}/href`],
|
||||
// );
|
||||
// traefikList.items.push(...traefikServices);
|
||||
// }
|
||||
// }
|
||||
|
||||
// return traefikList;
|
||||
// }
|
||||
if (traefikIngressList.length > 0) {
|
||||
const traefikServices = traefikIngressList.filter(
|
||||
(ingress) => ingress.metadata.annotations && ingress.metadata.annotations[`${ANNOTATION_BASE}/href`],
|
||||
);
|
||||
traefikList.push(...traefikServices);
|
||||
}
|
||||
}
|
||||
return traefikList;
|
||||
}
|
||||
Reference in New Issue
Block a user