import { ApiextensionsV1Api, CustomObjectsApi, KubeConfig, KubernetesObjectApi } from '@kubernetes/client-node'; class K8sConfig { #config: KubeConfig; #objectsApi?: KubernetesObjectApi; #customObjectsApi?: CustomObjectsApi; #extensionsApi?: ApiextensionsV1Api; constructor() { this.#config = new KubeConfig(); this.#config.loadFromDefault(); } public get kubeConfig() { return this.#config; } public get objectsApi() { if (!this.#objectsApi) { this.#objectsApi = this.#config.makeApiClient(KubernetesObjectApi) } return this.#objectsApi; } public get customObjectsApi() { if (!this.#customObjectsApi) { this.#customObjectsApi = this.#config.makeApiClient(CustomObjectsApi); } return this.#customObjectsApi; } public get extensionsApi() { if (!this.#extensionsApi) { this.#extensionsApi = this.#config.makeApiClient(ApiextensionsV1Api) } return this.#extensionsApi; } } export { K8sConfig };