1.0.0 • Published 2 years ago

@journyio/kubernetes-client v1.0.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

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