Node.js client library for Google's Kubernetes API (https://github.com/GoogleCloudPlatform/kubernetes) You can use this library to call a Kubernetes API hosted in a Kubernetes master node using Node.js.
Install:
npm install node-kubernetes-client
Current endpoint support includes:
- events
- endpoints
- namespaces
- pods
- minions
- services
- replicationControllers
- nodes
- proxyMinions
- proxyNodes
- proxyPods
- proxyServices
- watchPods
Interaction is accomplished via client.<endpoint>.<method>
. (see examples below)
Authentication can be done via either token or login. If, however, the token expires, the login info will be used to acquire a new token.
var Client = require('node-kubernetes-client');
var client = new Client({
host: 'xx.xx.xx.xx',
protocol: 'https:',
version: 'v1beta2',
token: 'XYZ'
});
Some optional params also exist on initialising the client.
{
namespace: 'someNamespace', // filter all client requests by a namespace - default is no namespace
timeout: 20000 // A timeout (in ms) for requests to k8 apis
}
Paging is accomplished automatically. For example, a request for pods
will
return all pods, not just those returned on the first page.
For example, to get all pods:
client.pods.get(function (err, pods) {
console.log('pods:', pods);
});
Retrieving from custom k8 collections is enabled by using the createCollection
functionality.
For example, to create a custom collection called "routes":
var schema = null, //optional param
innerCollections = null, // optional param
options = { apiPrefix : 'api2' }; // optionally set a per-collection api prefix
client.routes = client.createCollection('routes', schema, innerCollections, options);
// then use the routes collection like any other
npm install mocha
mocha test-pods.js
The results will be output to test/results/ directory with formatted JSON.
See issues.
You may interested in kubernetes client library using other programming languanges, please check the below link (https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/client-libraries.md)