Estoy trabajando en un proyecto NextJS para crear un trabajo de Kubernetes. Para crear un trabajo en minikube, estoy usando config.yaml que generalmente se genera cada vez que iniciamos minikube. Así que estoy usando el mismo archivo para hacer la conexión con la API de Kubernetes. Ahora, para hacer la conexión con kubernetes (minikube), estoy usando el siguiente código:
import k8s from "@kubernetes/client-node"; let kubeAPI = null; const createKubeAPI = async () => { const kc = new k8s.KubeConfig(); const path = "../config/k8sConfig.yaml"; console.log(path); kc.loadFromFile(path); const k8sApi = kc.makeApiClient(k8s.BatchV1Api); return k8sApi; }; export const get = () => kubeAPI; export const create = async () => { kubeAPI = await createKubeAPI(); };Y en otro archivo .js, usando la función creada en el código anterior creando un nuevo trabajo o mostrando la ejecución de los trabajos.
Pero cuando se ejecuta el código anterior, muestra el error. El error completo se parece a:
event - compiled client and server successfully in 7.4s (224 modules) null error - utils\kube-utils\kubeClient.js (6:17) @ createKubeAPI TypeError: Cannot read properties of undefined (reading 'KubeConfig') 4 | 5 | const createKubeAPI = async () => { > 6 | const kc = new k8s.KubeConfig(); | ^ 7 | // kc.loadFromDefault(); 8 | const path = "../config/k8sConfig.yaml"; 9 | console.log(path);Alguien puede ayudarme o guiarme, ¿qué estoy haciendo mal aquí?
Parece que no hay una exportación predeterminada, por lo que al usar las importaciones de módulos ES6, debe usar importaciones con nombre:
import { KubeConfig, CoreV1Api } from '@kubernetes/client-node';o importar todo:
import * as k8s from '@kubernetes/client-node'; new k8s.KubeConfig();