Moved crd checker to kubernetes-routes

This commit is contained in:
djeinstine 2024-11-08 15:08:01 +00:00
parent 9367fd761b
commit d65cb638be
2 changed files with 28 additions and 25 deletions

View File

@ -151,26 +151,6 @@ export async function servicesFromDocker() {
return mappedServiceGroups; return mappedServiceGroups;
} }
export async function checkCRD(kc, name) {
const apiExtensions = kc.makeApiClient(ApiextensionsV1Api);
const exist = await apiExtensions
.readCustomResourceDefinitionStatus(name)
.then(() => true)
.catch(async (error) => {
if (error.statusCode === 403) {
logger.error(
"Error checking if CRD %s exists. Make sure to add the following permission to your RBAC: %d %s %s",
name,
error.statusCode,
error.body.message,
);
}
return false;
});
return exist;
}
export async function servicesFromKubernetes() { export async function servicesFromKubernetes() {
const ANNOTATION_BASE = "gethomepage.dev"; const ANNOTATION_BASE = "gethomepage.dev";
const ANNOTATION_WIDGET_BASE = `${ANNOTATION_BASE}/widget.`; const ANNOTATION_WIDGET_BASE = `${ANNOTATION_BASE}/widget.`;

View File

@ -1,7 +1,10 @@
import { CustomObjectsApi, NetworkingV1Api, CoreV1Api } from "@kubernetes/client-node"; import { CustomObjectsApi, NetworkingV1Api, CoreV1Api, ApiextensionsV1Api } from "@kubernetes/client-node";
import getKubeArguments from "utils/config/kubernetes"; import getKubeArguments from "utils/config/kubernetes";
import createLogger from "utils/logger";
const logger = createLogger("service-helpers");
const kubeArguments = getKubeArguments(); const kubeArguments = getKubeArguments();
const kc = kubeArguments.config; const kc = kubeArguments.config;
@ -15,6 +18,27 @@ let networking;
let routingType; let routingType;
let traefik; let traefik;
export async function checkCRD(kc, name) {
const apiExtensions = kc.makeApiClient(ApiextensionsV1Api);
const exist = await apiExtensions
.readCustomResourceDefinitionStatus(name)
.then(() => true)
.catch(async (error) => {
if (error.statusCode === 403) {
logger.error(
"Error checking if CRD %s exists. Make sure to add the following permission to your RBAC: %d %s %s",
name,
error.statusCode,
error.body.message,
);
}
return false;
});
return exist;
}
const getSchemaFromGateway = async (gatewayRef) => { const getSchemaFromGateway = async (gatewayRef) => {
try { try {
const gateway = await crd.getNamespacedCustomObject(apiGroup, version, gatewayRef.namespace,"gateways",gatewayRef.name); const gateway = await crd.getNamespacedCustomObject(apiGroup, version, gatewayRef.namespace,"gateways",gatewayRef.name);
@ -57,9 +81,9 @@ async function getHttpRouteList(){
for (const namespace of namespaces) { for (const namespace of namespaces) {
try { try {
// Fetch the httproute from one namespaces // Fetch the httproute from one namespaces
const customObject = await crd.listNamespacedCustomObject(apiGroup,version,namespace,'httproutes'); const httpRoute = await crd.listNamespacedCustomObject(apiGroup,version,namespace,'httproutes');
if (customObject.body.items.length !== 0){ if (httpRoute.body.items.length !== 0){
httpRouteList.push(customObject.body.items[0]); httpRouteList.push(httpRoute.body.items[0]);
} }
} catch (err) { } catch (err) {
@ -175,6 +199,5 @@ export async function getUrlSchema(route) {
default: default:
urlSchema = getUrlFromIngress(route); urlSchema = getUrlFromIngress(route);
} }
return urlSchema; return urlSchema;
} }