@journyio/kubernetes-client
v1.0.0
Published
Kubernetes client with less deps
Downloads
2
Readme
JavaScript Kubernetes Client
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.
Installation
npm install @journyio/kubernetes-client
Example code
List all pods
const k8s = require('@journyio/kubernetes-client');
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('@journyio/kubernetes-client');
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('@journyio/kubernetes-client');
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);
...
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 generate
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 test