Estoy tratando de conectarme mediante programación a mi clúster de AWS EKS utilizando el cliente de JavaScript k8s oficial. Quería probar y usar loadFromOptions() , en lugar de loadFromDefault() . Entonces, desde el README.md del repositorio de la biblioteca, pude encontrar lo siguiente
const k8s = require('@kubernetes/client-node'); const kc = new k8s.KubeConfig(); const cluster = { name: 'NAME', server: 'SERVER', }; const user = { name: 'NAME', exec: { apiVersion: 'client.authentication.k8s.io/v1alpha1', args: [ '--region', 'us-east-1', 'eks', 'get-token', '--cluster-name', 'NAME', ], command: 'aws', env: [ { name: 'AWS_PROFILE', value: 'NAME' } ] } } const context = { name: 'NAME', user: user.name, cluster: cluster.name, }; kc.loadFromOptions({ clusters: [cluster], users: [user], contexts: [context], currentContext: context.name, }); const k8sApi = kc.makeApiClient(k8s.CoreV1Api); k8sApi.listNamespacedPod('default').then((res) => { console.log(res.body); });Pero desafortunadamente, recibo este error, ¿dónde me equivoco?
El mensaje de error se queja de que no conoce el emisor del certificado del clúster.
Su objeto de cluster necesita una de las siguientes propiedades para especificar la autoridad de certificación:
caFile : nombre de archivo que contiene la autoridad de certificacióncaData : contenido codificado en Base64 del archivo de la autoridad de certificación De acuerdo con la documentación de AWS , debería poder recuperar la autoridad de certificación como "el certificateAuthority.data que se creó para su clúster".