Skip to content
Javascript client
TypeScript Other
Branch: master
Clone or download
k8s-ci-robot Merge pull request #357 from jnummelin/fix/refresh-token-storing
Fix OIDC refresh token storage with user auth config
Latest commit 9d5757e Oct 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Fix things, add more tests. Jun 19, 2019
src fix OIDC refresh token storage with user auth config Oct 16, 2019
test use test script with spaces in the name for echoing the token json Oct 11, 2019
testdata Improve test coverage somewhat. Jul 19, 2019
.editorconfig Add editor config Jun 9, 2019
.gitignore add typedoc generation for corev1Api Aug 22, 2019
.prettierignore Linter, prettier, coverage, and gen settings for openapi-generator Jul 22, 2019
.travis.yml Add pre-push check for tests and linter May 31, 2019
CHANGELOG.md Update to version 0.10.0 Jun 8, 2019
CONTRIBUTING.md Add CONTRIBUTING.md Aug 13, 2018
LICENSE Initial commit Apr 28, 2017
OWNERS Add drubin and itowlson as a reviewers Jan 16, 2019
README.md add typedoc generation for corev1Api Aug 22, 2019
SECURITY_CONTACTS Update Embargo Policy URL Jul 30, 2019
build-package.sh Update the package build script. Jun 3, 2019
code-of-conduct.md Add code-of-conduct.md Dec 20, 2017
generate-client.sh Force GEN_COMMIT Aug 19, 2019
package-lock.json Update to version 0.11.0 Oct 14, 2019
package.json Update to version 0.11.0 Oct 14, 2019
pre-check.sh Improve the build and push scripts. Feb 8, 2019
push-package.sh Fix script. Mar 15, 2019
settings Update to 1.15 API. Sep 25, 2019
tsconfig.json Disable `allowSyntheticDefaultImports` and `esModuleInterop` Jun 15, 2019
tslint.json Linter, prettier, coverage, and gen settings for openapi-generator Jul 22, 2019
typedoc.json Document all of the api, instead of just corev1Api Aug 23, 2019
version-check.js add version check to ci Mar 8, 2019

README.md

Javascript Kubernetes Client information

Build Status Client Capabilities Client Support Level

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-node

Example 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 generate

Documentation

Documentation is generated via typedoc:

npm run docs

To 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 test

Contributing

Please see CONTRIBUTING.md for instructions on how to contribute.

You can’t perform that action at this time.