This commit is contained in:
Morten Olsen
2025-10-23 20:31:15 +02:00
parent b851dc3006
commit 78995406ca
46 changed files with 707 additions and 119 deletions

View File

@@ -1,9 +1,39 @@
import { KubeConfig } from '@kubernetes/client-node';
import { ApiextensionsV1Api, CustomObjectsApi, KubeConfig, KubernetesObjectApi } from '@kubernetes/client-node';
class K8sConfig {
#config: KubeConfig;
#objectsApi?: KubernetesObjectApi;
#customObjectsApi?: CustomObjectsApi;
#extensionsApi?: ApiextensionsV1Api;
class K8sConfig extends KubeConfig {
constructor() {
super();
this.loadFromDefault();
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;
}
}