Kubernetes client Latest
Javascript Kubernetes Client information
The Javascript clients for Kubernetes is implemented inÂtypescript, but can be called from eitherÂJavascript or Typescript. The client is implemented for server-side use with Node.
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({ namespace: 'default' }).then((res) => { console.log(res);});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({ body: 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 programmatically
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 and Documentation
There are several more JS and TS examples in the examples directory.
Documentation for the library is split into two resources:
- The Kubernetes API Reference is the source-of-truth for all Kubernetes client libraries, including this one. We suggest starting here!
- The Typedoc autogenerated docs can be viewed online and can also be built locally (see below)
Compatibility
Prior to the 0.13.0 release, release versions did not track Kubernetes versions. Starting with the 0.13.0Ârelease, we will increment the minor version whenever we update the minor Kubernetes API versionÂ(e.g. 1.19.x) that this library is generated from.
We switched from request to fetch as the HTTP(S) backend for the 1.0.0 release.
Generally speaking newer clients will work with older Kubernetes, but compatibility isn't 100% guaranteed.