@journyio/kubernetes-client
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i @journyio/kubernetes-client

Weekly Downloads

0

Version

1.0.0

License

Apache-2.0

Unpacked Size

8.04 MB

Total Files

1235

Last publish

Collaborators

  • hansjourny
  • manujourny