@tuxrampage/k8s-client-node v1.18.0
Javascript Kubernetes Client information
The Javascript clients for Kubernetes is implemented in typescript, but can be called from either Javascript or Typescript.
For now, the client is implemented for server-side use with node
using the request library.
There are future plans to also build a jQuery compatible library but for now, all of the examples and instructions assume the node client.
Installation
npm install @kubernetes/client-nodeExample code
List all pods
const k8s = require('@kubernetes/client-node');
const kc = new k8s.KubeConfig();
kc.loadFromDefault();
const k8sApi = kc.makeApiClient(k8s.CoreV1Api);
k8sApi.listNamespacedPod('default').then((res) => {
console.log(res.body);
});Create a new namespace
const k8s = require('@kubernetes/client-node');
const kc = new k8s.KubeConfig();
kc.loadFromDefault();
const k8sApi = kc.makeApiClient(k8s.CoreV1Api);
var namespace = {
metadata: {
name: 'test',
},
};
k8sApi.createNamespace(namespace).then(
(response) => {
console.log('Created namespace');
console.log(response);
k8sApi.readNamespace(namespace.metadata.name).then((response) => {
console.log(response);
k8sApi.deleteNamespace(namespace.metadata.name, {} /* delete options */);
});
},
(err) => {
console.log('Error!: ' + err);
},
);Create a cluster configuration programatically
const k8s = require('@kubernetes/client-node');
const cluster = {
name: 'my-server',
server: 'http://server.com',
};
const user = {
name: 'my-user',
password: 'some-password',
};
const context = {
name: 'my-context',
user: user.name,
cluster: cluster.name,
};
const kc = new k8s.KubeConfig();
kc.loadFromOptions({
clusters: [cluster],
users: [user],
contexts: [context],
currentContext: context.name,
});
const k8sApi = kc.makeApiClient(k8s.CoreV1Api);
...Additional Examples
There are several more examples in the examples directory.
Development
All dependencies of this project are expressed in its
package.json file. Before you start developing, ensure
that you have NPM installed, then run:
npm install(re) Generating code
npm run generateDocumentation
Documentation is generated via typedoc:
npm run docsTo view the generated documentation, open docs/index.html
Formatting
Run npm run format or install an editor plugin like https://github.com/prettier/prettier-vscode and https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
Linting
Run npm run lint or install an editor plugin like https://github.com/Microsoft/vscode-typescript-tslint-plugin
Testing
Tests are written using the Chai library. See
config_test.ts for an example.
To run tests, execute the following:
npm testContributing
Please see CONTRIBUTING.md for instructions on how to contribute.
5 years ago