@mittwald/kubernetes
Kubernetes client library
Last updated 3 months ago by mhelmich-mittwald .
MIT · Original npm · Tarball · package.json
$ cnpm install @mittwald/kubernetes 
SYNC missed versions from official npm registry.

Kubernetes client for Node.JS

npm version Build Status

Contents

Installation

You can install this package via NPM:

$ npm install @mittwald/kubernetes

Usage

Setup

External configuration using a kubeconfig file:

import {FileBasedConfig, KubernetesRESTClient, KubernetesAPI} from "@mittwald/kubernetes";

const config = new FileBasedConfig("/home/mhelmich/.kube/config");
const client = new KubernetesRESTClient(config);
const api = new KubernetesAPI(client);

Internal configuration (when the client is running within a Kubernetes cluster):

import {InClusterConfig, KubernetesRESTClient, KubernetesAPI} from "@mittwald/kubernetes";

const config = new InClusterConfig();
const client = new KubernetesRESTClient(config);
const api = new KubernetesAPI(client);

General usage

api.core().v1().pods.namespace("default").list().then(pods => {
    console.log("Found " + pods.length + " Pods:");

    pods.forEach(pod => {
        console.log(pod.metadata.name);
    });
});

Rate-limiting API access

import {
    InClusterConfig, 
    KubernetesRESTClient, 
    RatelimitingKubernetesRESTClient, 
    KubernetesAPI,
} from "@mittwald/kubernetes";

const config = new InClusterConfig();
const client = new KubernetesRESTClient(config);
const limitedClient = new RatelimitingKubernetesRESTClient(client);
const api = new KubernetesAPI(limitedClient);

Watching resources

api.core().v1().pods.namespace("default").watch({"some-label": "foo"}, ev => {
    console.log(`Pod: ${ev.type}: ${ev.object}`);    
});

Accessing CRDs

If you have a package that offers a client for Custom Resource Definitions (take a look at the @mittwald/kubernetes-rook package as an example), you can use the extend method to add the respective API client:

import {RookCustomResourceAPI} from "@mittwald/kubernetes-rook";

// ...
let extendedAPI = api.extend("rook", new RookCustomResourceAPI(client));

Supported resources

This library supports a reasonable subset of Kubernetes resources (these were implemented on an as-needed basis). Feel free to open a new issue or pull request to add support for additional API objects.

  • core/v1
    • [x] pods
    • [x] configMaps
    • [x] endpoints
    • [x] namespaces
    • [x] nodes
    • [x] persistentVolumes
    • [x] persistentVolumeClaims
    • [x] services
    • [x] secrets
    • [x] serviceAccounts
  • apps/v1
    • [x] daemonSets
    • [x] deployments
    • [x] replicaSets
    • [x] statefulSets
  • apps/v1beta1
    • [x] deployments
    • [x] statefulSets
  • batch/v1
    • [x] jobs
  • batch/v1beta1
    • [x] cronJobs
  • extensions/v1beta1
    • [x] daemonSets
    • [x] ingresses
    • [x] networkPolicies
    • [x] replicaSets
  • rbac/v1
    • [x] clusterRoles
    • [x] clusterRoleBindings
    • [x] roles
    • [x] roleBindings
  • autoscaling/v1
    • [x] horizontalPodAutoscalers
  • apiextensions.k8s.io/v1beta1
    • [x] customResourceDefinitions
  • admissionRegistration.k8s.io/v1
    • [x] validatingWebhookConfigurations
    • [ ] mutatingWebhookConfigurations

References

Current Tags

  • 3.2.1                                ...           latest (3 months ago)

40 Versions

  • 3.2.1                                ...           3 months ago
  • 3.2.0                                ...           3 months ago
  • 3.1.0                                ...           3 months ago
  • 3.0.2                                ...           8 months ago
  • 3.0.1                                ...           9 months ago
  • 3.0.0                                ...           10 months ago
  • 2.6.1                                ...           10 months ago
  • 2.6.0                                ...           10 months ago
  • 2.5.2                                ...           10 months ago
  • 2.5.1                                ...           a year ago
  • 2.5.0                                ...           a year ago
  • 2.3.4                                ...           a year ago
  • 2.3.3                                ...           a year ago
  • 2.3.2                                ...           a year ago
  • 2.3.1                                ...           2 years ago
  • 2.3.0                                ...           2 years ago
  • 2.2.0                                ...           2 years ago
  • 2.1.2                                ...           2 years ago
  • 2.1.1                                ...           2 years ago
  • 2.1.0                                ...           2 years ago
  • 2.0.0                                ...           2 years ago
  • 2.0.0-beta.22                                ...           2 years ago
  • 2.0.0-beta.21                                ...           2 years ago
  • 2.0.0-beta.20                                ...           2 years ago
  • 2.0.0-beta.19                                ...           2 years ago
  • 2.0.0-beta.18                                ...           2 years ago
  • 2.0.0-beta.17                                ...           2 years ago
  • 2.0.0-beta.16                                ...           2 years ago
  • 2.0.0-beta.12                                ...           2 years ago
  • 2.0.0-beta.11                                ...           2 years ago
  • 2.0.0-beta.10                                ...           2 years ago
  • 2.0.0-beta.9                                ...           2 years ago
  • 2.0.0-beta.8                                ...           2 years ago
  • 2.0.0-beta.7                                ...           2 years ago
  • 2.0.0-beta.6                                ...           2 years ago
  • 2.0.0-beta.5                                ...           2 years ago
  • 2.0.0-beta.4                                ...           2 years ago
  • 2.0.0-beta.3                                ...           2 years ago
  • 2.0.0-beta.2                                ...           2 years ago
  • 2.0.0-beta.1                                ...           2 years ago
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 1
Dependencies (10)
Dev Dependencies (7)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |