# @kubernetes/client-node

> NodeJS client for kubernetes

Latest version **2.0.0** (published 2026-08-12) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @kubernetes/client-node
pnpm add @kubernetes/client-node
yarn add @kubernetes/client-node
bun add @kubernetes/client-node
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads; large bundle.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2026-08-12 |
| First published | 2017-12-16 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 16 |
| Unpacked size | 53 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 2266 |
| Author | Kubernetes Authors |
| Maintainers | brendandburns, mbohlool |
| Keywords | kubernetes, client |

## Links

- npm: https://www.npmjs.com/package/@kubernetes/client-node
- Repository: https://github.com/kubernetes-client/javascript
- Homepage: https://github.com/kubernetes-client/javascript#readme
- Issues: https://github.com/kubernetes-client/javascript/issues
- npm.io page: https://npm.io/package/@kubernetes/client-node

## Dependencies (16)

- [ws](https://npm.io/package/ws.md) ^8.18.2
- [socks](https://npm.io/package/socks.md) ^2.8.4
- [tar-fs](https://npm.io/package/tar-fs.md) ^3.0.9
- [undici](https://npm.io/package/undici.md) ^8.7.0
- [hpagent](https://npm.io/package/hpagent.md) ^1.2.0
- [js-yaml](https://npm.io/package/js-yaml.md) ^5.1.0
- [rfc4648](https://npm.io/package/rfc4648.md) ^1.3.0
- [form-data](https://npm.io/package/form-data.md) ^4.0.0
- [@types/node](https://npm.io/package/@types/node.md) ^26.0.0
- [isomorphic-ws](https://npm.io/package/isomorphic-ws.md) ^5.0.0
- [jsonpath-plus](https://npm.io/package/jsonpath-plus.md) ^10.3.0
- [openid-client](https://npm.io/package/openid-client.md) ^6.1.3
- [@types/js-yaml](https://npm.io/package/@types/js-yaml.md) ^4.0.1
- [stream-buffers](https://npm.io/package/stream-buffers.md) ^3.0.2
- [socks-proxy-agent](https://npm.io/package/socks-proxy-agent.md) ^10.0.0
- [@types/stream-buffers](https://npm.io/package/@types/stream-buffers.md) ^3.0.3

## Alternatives

- [launchdarkly-js-client-sdk](https://npm.io/package/launchdarkly-js-client-sdk.md) — 2.5M weekly downloads
- [@elastic/elasticsearch](https://npm.io/package/@elastic/elasticsearch.md) — 2.1M weekly downloads
- [@c8y/client](https://npm.io/package/@c8y/client.md) — 15.3K weekly downloads
- [@signaldb/maverickjs](https://npm.io/package/@signaldb/maverickjs.md) — 1.7K weekly downloads
- [@bbc/http-transport-cache](https://npm.io/package/@bbc/http-transport-cache.md) — 1.2K weekly downloads

## Recent versions

- 2.0.0 (latest) — 2026-08-12
- 2.0.0-rc.1 (next) — 2026-06-24
- 1.1.3 (patch-1.1.3) — 2025-12-14
- 1.4.0 — 2025-10-03
- 1.3.0 — 2025-05-28
- 1.2.0 — 2025-05-06
- 1.1.2 — 2025-04-08
- 1.1.1 — 2025-04-03
- 1.1.0 — 2025-03-13
- 1.0.0 — 2024-12-18
- 0.22.3 — 2024-11-24
- 0.22.2 — 2024-10-31
- 1.0.0-rc7 — 2024-10-15
- 0.22.1 — 2024-10-15
- 0.22.0 — 2024-09-13
- … 58 more at https://npm.io/package/@kubernetes/client-node/versions

## README

# Javascript Kubernetes Client information

[![Build Status](https://github.com/kubernetes-client/javascript/workflows/Kubernetes%20Javascript%20Client%20-%20Validation/badge.svg)](https://github.com/kubernetes-client/javascript/actions)
[![Client Capabilities](https://img.shields.io/badge/Kubernetes%20client-Gold-blue.svg?style=flat&colorB=FFD700&colorA=306CE8)](http://bit.ly/kubernetes-client-capabilities-badge)
[![Client Support Level](https://img.shields.io/badge/kubernetes%20client-beta-green.svg?style=flat&colorA=306CE8)](http://bit.ly/kubernetes-client-support-badge)
[![Build and Deploy Docs](https://github.com/kubernetes-client/javascript/actions/workflows/deploy-docs.yml/badge.svg)](https://github.com/kubernetes-client/javascript/actions/workflows/deploy-docs.yml)

The Javascript clients for Kubernetes is implemented in
[typescript](https://typescriptlang.org), but can be called from either
Javascript or Typescript. The client is implemented for server-side use with Node.

# Installation

```console
npm install @kubernetes/client-node
```

# Example code

## List all pods

```javascript
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

```javascript
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({ name: namespace.metadata.name }).then((response) => {
            console.log(response);
            k8sApi.deleteNamespace({ name: namespace.metadata.name });
        });
    },
    (err) => {
        console.log('Error!: ' + err);
    },
);
```

## Create a cluster configuration programmatically

```javascript
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);
...
```

# Documentation

📖 **[View Documentation](https://kubernetes-client.github.io/javascript/)**

Documentation is built with [Docusaurus](https://docusaurus.io/) and includes:

- SDK Reference (KubeConfig, Watch, Informer, Exec, etc.)
- Kubernetes API Reference (all API groups)
- Version selector for historical releases
- [Kubernetes API Reference](https://kubernetes.io/docs/reference/) — source-of-truth for all Kubernetes client libraries

## Preview docs locally

```bash
# From the repo root — install the client library (needed by typedoc)
npm install

# Install docs dependencies and start the dev server
cd docs
npm install
npm start          # opens http://localhost:3000 with hot-reload
```

`npm start` automatically runs the `prestart` hook which generates the API
reference, SDK docs, and model pages from source before launching the dev
server.  Changes to hand-written docs (e.g. `docs/docs/examples/`) are
reflected instantly; changes to the generated sources require restarting the
server.

To do a full production build (which also validates all links):

```bash
cd docs
npm run build      # generates + builds static site into docs/build/
npm run serve      # preview the production build at http://localhost:3000
```

There are several more JS and TS examples in the [examples](https://github.com/kubernetes-client/javascript/tree/main/examples) directory.

# 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.

`request` was migrated to `node-fetch` as the HTTP(S) backend for release `1.0.0` tracked in #754

`node-fetch` was migrated to `undici` which is the native node.js fetch package for release `2.0.0` tracked in #2306

Generally speaking newer clients will work with older Kubernetes, but compatibility isn't 100% guaranteed.

| client version | older versions | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 |
| -------------- | -------------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| 0.19.x         | -              | ✓    | x    | x    | x    | x    | x    | x    |
| 0.20.x         | -              | +    | ✓    | x    | x    | x    | x    | x    |
| 0.21.x         | -              | +    | +    | ✓    | x    | x    | x    | x    |
| 0.22.x         | -              | +    | +    | +    | ✓    | x    | x    | x    |
| 1.0.x          | -              | +    | +    | +    | +    | ✓    | x    | x    |
| 1.1.x          | -              | +    | +    | +    | +    | ✓    | x    | x    |
| 1.2.x          | -              | +    | +    | +    | +    | +    | ✓    | x    |
| 1.3.x          | -              | +    | +    | +    | +    | +    | ✓    | x    |
| 1.4.x          | -              | +    | +    | +    | +    | +    | +    | ✓    |

Key:

- `✓` Exactly the same features / API objects in both javascript-client and the Kubernetes
  version.
- `+` javascript-client has features or api objects that may not be present in the
  Kubernetes cluster, but everything they have in common will work.
- `-` The Kubernetes cluster has features the javascript-client library can't use
  (additional API objects, etc).
- `x` The Kubernetes cluster has no guarantees to support the API client of
  this version, as it only promises _n_-2 version support. It is not tested,
  and operations using API versions that have been deprecated and removed in
  later server versions won't function correctly.

# Known Issues

- Multiple kubeconfigs are not completely supported.
  Credentials are cached based on the kubeconfig username and these can collide across configs.
  Here is the related [issue](https://github.com/kubernetes-client/javascript/issues/592).

- In scenarios where multiple headers with the same key are required in a request, such as `Impersonate-Group`, avoid using `fetch`. Fetch will merge the values into a single header key, with the values as a single string vs a list of strings, `Impersonate-Group: "group1,group2"`. The workaround is to use a low-level library such as `https` to make the request. Refer to issue [#2474](https://github.com/kubernetes-client/javascript/issues/2474) for more details.

# Contributing

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing, and contribution guidelines.

---
_Source: https://npm.io/package/@kubernetes/client-node · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
