34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
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();
|
|
|
|
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);
|