I am trying to programmatically connect to my AWS EKS cluster using the official k8s JavaScript Client. I wanted to try and use loadFromOptions()
, instead of loadFromDefault()
. So, from the README.md
of the library repo, I was able to come up with the following
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);
});
But unfortunately, I am hit with this error, where am I going wrong?