-
Notifications
You must be signed in to change notification settings - Fork 192
/
iam-auth.js
51 lines (47 loc) · 1.3 KB
/
iam-auth.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* eslint no-console:0 */
//
// Create an API client for an AWS EKS cluster using IAM authentication
// Note: In order for this to work, you must set the environment
// variable AWS_PROFILE
//
const Client = require('kubernetes-client').Client
async function main () {
try {
const client = new Client({
config: {
url: process.env.K8S_CLUSTER_HOST,
auth: {
provider: {
type: 'cmd',
config: {
'cmd-path': 'aws-iam-authenticator',
'cmd-args': 'token -i ' + process.env.K8S_AUTH_TOKEN,
'cmd-env': {
AWS_PROFILE: process.env.AWS_PROFILE
},
'token-key': 'status.token'
}
}
},
insecureSkipTlsVerify: true
},
version: process.env.K8S_CLUSTER_VERSION
})
//
// Fetch all the pods
const pods = await client.api.v1.pods.get()
pods.body.items.forEach((item) => {
console.log(item.metadata)
})
//
// Fetch the Deployment from the kube-system namespace.
//
const deployment = await client.apis.apps.v1.namespaces('kube-system').deployments().get()
deployment.body.items.forEach((item) => {
console.log(item.metadata)
})
} catch (err) {
console.error('Error: ', err)
}
}
main()