Skip to content

Commit c01fdc6

Browse files
authored
Merge pull request #1965 from cjihrig/examples-refactor
refactor example code
2 parents a7564c5 + 03e737d commit c01fdc6

30 files changed

+245
-300
lines changed

examples/cache-example.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();

examples/example.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();
@@ -8,11 +7,9 @@ const k8sApi = kc.makeApiClient(k8s.CoreV1Api);
87

98
const namespace = 'default';
109

11-
k8sApi
12-
.listNamespacedPod({ namespace })
13-
.then((res) => {
14-
console.log(res);
15-
})
16-
.catch((err) => {
17-
console.error(err);
18-
});
10+
try {
11+
const res = await k8sApi.listNamespacedPod({ namespace });
12+
console.log(res);
13+
} catch (err) {
14+
console.error(err);
15+
}

examples/follow-logs.js

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
3-
const stream = require('stream');
1+
import * as k8s from '@kubernetes/client-node';
2+
import stream from 'node:stream';
43

54
const kc = new k8s.KubeConfig();
65
kc.loadFromDefault();
@@ -18,19 +17,19 @@ logStream.on('data', (chunk) => {
1817
process.stdout.write(chunk);
1918
});
2019

21-
log.log(namespace, pod, container, logStream, {
22-
follow: true,
23-
tailLines: 50,
24-
pretty: false,
25-
timestamps: false,
26-
})
27-
.catch((err) => {
28-
console.error(err);
29-
})
30-
.then((req) => {
31-
// disconnects after 5 seconds
32-
setTimeout(function () {
33-
//Note: You might have to install AbortController if you are using node version < 15.0.0
34-
req.abort();
35-
}, 5000);
20+
try {
21+
const req = await log.log(namespace, pod, container, logStream, {
22+
follow: true,
23+
tailLines: 50,
24+
pretty: false,
25+
timestamps: false,
3626
});
27+
28+
// disconnects after 5 seconds
29+
setTimeout(() => {
30+
// Note: You might have to install AbortController if you are using Node version < 15.0.0
31+
req.abort();
32+
}, 5000);
33+
} catch (err) {
34+
console.error(err);
35+
}
Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
1+
import * as k8s from '@kubernetes/client-node';
32

43
const namespace = 'default';
54

@@ -21,19 +20,11 @@ metadata.annotations = {
2120
};
2221
job.metadata = metadata;
2322

24-
batchV1beta1Api
25-
.readNamespacedCronJob({ name: cronJobName, namespace })
26-
.then((cronJobRes) => {
27-
job.spec = cronJobRes?.spec?.jobTemplate.spec;
28-
batchV1Api
29-
.createNamespacedJob({ namespace, body: job })
30-
.then((res) => {
31-
console.log(res);
32-
})
33-
.catch((err) => {
34-
console.log(err);
35-
});
36-
})
37-
.catch((err) => {
38-
console.log(err);
39-
});
23+
try {
24+
const cronJobRes = await batchV1beta1Api.readNamespacedCronJob({ name: cronJobName, namespace });
25+
job.spec = cronJobRes?.spec?.jobTemplate.spec;
26+
const res = await batchV1Api..createNamespacedJob({ namespace, body: job });
27+
console.log(res);
28+
} catch (err) {
29+
console.error(err);
30+
}

examples/in-cluster.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromCluster();
@@ -8,11 +7,10 @@ const k8sApi = kc.makeApiClient(k8s.CoreV1Api);
87

98
const namespace = 'default';
109

11-
k8sApi
12-
.listNamespacedPod({ namespace })
13-
.then((res) => {
14-
console.log(res);
15-
})
16-
.catch((err) => {
17-
console.error(err);
18-
});
10+
try {
11+
const res = await k8sApi.listNamespacedPod({ namespace });
12+
13+
console.log(res);
14+
} catch (err) {
15+
console.error(err);
16+
}

examples/ingress.js

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();
@@ -9,35 +8,38 @@ const k8sApi = kc.makeApiClient(k8s.NetworkingV1Api);
98
const namespace = 'default';
109
const clientIdentifier = 'my-subdomain';
1110

12-
k8sApi
13-
.createNamespacedIngress({
14-
namespace,
15-
body: {
16-
apiVersion: 'networking.k8s.io/v1',
17-
kind: 'Ingress',
18-
metadata: { name: `production-custom-${clientIdentifier}` },
19-
spec: {
20-
rules: [
21-
{
22-
host: `${clientIdentifier}.example.com`,
23-
http: {
24-
paths: [
25-
{
26-
backend: {
27-
service: {
28-
name: 'production-auto-deploy',
29-
port: { number: 5000 },
11+
try {
12+
await k8sApi
13+
.createNamespacedIngress({
14+
namespace,
15+
body: {
16+
apiVersion: 'networking.k8s.io/v1',
17+
kind: 'Ingress',
18+
metadata: { name: `production-custom-${clientIdentifier}` },
19+
spec: {
20+
rules: [
21+
{
22+
host: `${clientIdentifier}.example.com`,
23+
http: {
24+
paths: [
25+
{
26+
backend: {
27+
service: {
28+
name: 'production-auto-deploy',
29+
port: { number: 5000 },
30+
},
3031
},
32+
path: '/',
33+
pathType: 'ImplementationSpecific',
3134
},
32-
path: '/',
33-
pathType: 'ImplementationSpecific',
34-
},
35-
],
35+
],
36+
},
3637
},
37-
},
38-
],
39-
tls: [{ hosts: [`${clientIdentifier}.example.com`] }],
38+
],
39+
tls: [{ hosts: [`${clientIdentifier}.example.com`] }],
40+
},
4041
},
41-
},
42-
})
43-
.catch((e) => console.error(e));
42+
})
43+
} catch (e) {
44+
console.error(e);
45+
}

examples/kubectl/equivalents/apply.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
import * as k8s from '../../../dist/index';
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();
@@ -19,4 +18,4 @@ const deployment = {
1918
}
2019
}
2120

22-
client.patch(deployment)
21+
client.patch(deployment)

examples/kubectl/equivalents/create.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
import * as k8s from '../../../dist/index';
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();
@@ -12,4 +11,4 @@ const namespace = {
1211
}
1312
}
1413

15-
client.create(namespace)
14+
client.create(namespace)

examples/kubectl/equivalents/delete.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
import * as k8s from '../../../dist/index';
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();
@@ -12,4 +11,4 @@ const namespace = {
1211
}
1312
}
1413

15-
client.delete(namespace)
14+
client.delete(namespace)

examples/kubectl/equivalents/get.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
import * as k8s from '../../../dist/index';
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();
@@ -13,4 +12,4 @@ const namespace = {
1312
}
1413

1514
const live_namespace = (await client.read(namespace)).body
16-
console.log(live_namespace)
15+
console.log(live_namespace)

examples/namespace.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();
@@ -12,16 +11,13 @@ var namespace = {
1211
},
1312
};
1413

15-
k8sApi.createNamespace({ body: namespace }).then(
16-
(response) => {
17-
console.log('Created namespace');
18-
console.log(response);
19-
k8sApi.readNamespace({ name: namespace.metadata.name }).then((response) => {
20-
console.log(response);
21-
k8sApi.deleteNamespace({ name: namespace.metadata.name });
22-
});
23-
},
24-
(err) => {
25-
console.log('Error!: ' + err);
26-
},
27-
);
14+
try {
15+
const response = await k8sApi.createNamespace({ body: namespace });
16+
console.log('Created namespace');
17+
console.log(response);
18+
const res = await k8sApi.readNamespace({ name: namespace.metadata.name });
19+
console.log(res);
20+
await k8sApi.deleteNamespace({ name: namespace.metadata.name });
21+
} catch (err) {
22+
console.error('Error!: ' + err);
23+
}

examples/patch-example.js

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
3-
const { createConfiguration, ServerConfiguration } = require('../dist');
4-
const { PromiseMiddlewareWrapper } = require('../dist/gen/middleware');
1+
import * as k8s from '@kubernetes/client-node';
2+
import { PromiseMiddlewareWrapper } from '@kubernetes/client-node/dist/gen/middleware.js';
53

64
const kc = new k8s.KubeConfig();
75
kc.loadFromDefault();
@@ -10,7 +8,8 @@ const k8sApi = kc.makeApiClient(k8s.CoreV1Api);
108

119
const namespace = 'default';
1210

13-
k8sApi.listNamespacedPod({ namespace }).then((res) => {
11+
try {
12+
const res = await k8sApi.listNamespacedPod({ namespace });
1413
const patch = [
1514
{
1615
op: 'replace',
@@ -37,24 +36,22 @@ k8sApi.listNamespacedPod({ namespace }).then((res) => {
3736
throw new Error('Server is undefined');
3837
}
3938

40-
const baseServerConfig = new ServerConfiguration(server, {});
41-
const configuration = createConfiguration({
39+
const baseServerConfig = new k8s.ServerConfiguration(server, {});
40+
const configuration = k8s.createConfiguration({
4241
middleware: [headerPatchMiddleware],
4342
baseServer: baseServerConfig,
4443
authMethods: {
4544
default: kc,
4645
},
4746
});
48-
k8sApi
47+
48+
await k8sApi
4949
.patchNamespacedPod(
5050
{ name: res?.items?.[0].metadata?.name ?? '', namespace, body: patch },
5151
configuration,
5252
)
53-
.then(() => {
54-
console.log('Patched.');
55-
})
56-
.catch((err) => {
57-
console.log('Error: ');
58-
console.log(err);
59-
});
60-
});
53+
console.log('Patched.');
54+
} catch (err) {
55+
console.error('Error: ');
56+
console.error(err);
57+
}

examples/raw-example.js

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
3-
const fetch = require('node-fetch');
4-
const https = require('https');
1+
import * as k8s from '@kubernetes/client-node';
2+
import fetch from 'node-fetch';
3+
import https from 'node:https';
54

65
const kc = new k8s.KubeConfig();
76
kc.loadFromDefault();
@@ -24,14 +23,13 @@ const opts = {
2423
kc.applyToHTTPSOptions(opts);
2524

2625
const url = `${kc?.getCurrentCluster()?.server}/api/v1/namespaces/default/pods`;
27-
fetch(url, opts)
28-
.then((response) => {
29-
console.log(`statusCode: ${response.status}`);
30-
return response.text();
31-
})
32-
.then((body) => {
33-
console.log(`body: ${body}`);
34-
})
35-
.catch((error) => {
36-
console.log(`error: ${error}`);
37-
});
26+
27+
try {
28+
const response = await fetch(url, opts);
29+
const body = await response.text();
30+
31+
console.log(`statusCode: ${response.status}`);
32+
console.log(`body: ${body}`);
33+
} catch (err) {
34+
console.error(`error: ${error}`);
35+
}

examples/scale-deployment.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// in a real program use require('@kubernetes/client-node')
2-
const k8s = require('../dist/index');
1+
import * as k8s from '@kubernetes/client-node';
32

43
const kc = new k8s.KubeConfig();
54
kc.loadFromDefault();

0 commit comments

Comments
 (0)