import { AppsV1Api, CoreV1Api, Exec, KubeConfig, KubernetesObjectApi, Log, } from "@kubernetes/client-node"; import { createKubernetesHttpLibrary } from "./k8s-http"; const kc = new KubeConfig(); kc.loadFromDefault(); const bunHttpLibrary = createKubernetesHttpLibrary({ maxConcurrent: 4, minIntervalMs: 0, }); const makeApiClient = kc.makeApiClient.bind(kc); kc.makeApiClient = ((apiClientType) => { const client = makeApiClient(apiClientType) as unknown as { api?: { configuration?: { httpApi?: typeof bunHttpLibrary } }; configuration?: { httpApi?: typeof bunHttpLibrary }; }; if (client.api?.configuration) client.api.configuration.httpApi = bunHttpLibrary; if (client.configuration) client.configuration.httpApi = bunHttpLibrary; return client; }) as typeof kc.makeApiClient; export { kc }; export const core = kc.makeApiClient(CoreV1Api); export const apps = kc.makeApiClient(AppsV1Api); export const objectApi = KubernetesObjectApi.makeApiClient(kc); export const logClient = new Log(kc); export const execClient = new Exec(kc);