https://github.com/hyperweb-io/kubernetesjs
TypeScript Client for Kubernetes
https://github.com/hyperweb-io/kubernetesjs
Last synced: 12 months ago
JSON representation
TypeScript Client for Kubernetes
- Host: GitHub
- URL: https://github.com/hyperweb-io/kubernetesjs
- Owner: hyperweb-io
- License: mit
- Created: 2024-05-04T12:53:54.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-10T04:33:53.000Z (about 1 year ago)
- Last Synced: 2025-06-10T04:40:23.018Z (about 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 2.05 MB
- Stars: 0
- Watchers: 6
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# KubernetesJS
TypeScript Client for Kubernetes
KubernetesJS is a **fully-typed**, zero-dependency TypeScript library designed to simplify interactions with Kubernetes APIs. With comprehensive TypeScript support, it provides a strongly-typed interface that makes managing Kubernetes resources clear and predictable, ideal for TypeScript developers looking to integrate Kubernetes management into their applications.
## Features
- **π Fully Typed**: Complete TypeScript definitions for all functions and models for an enhanced development experience.
- **π Zero Dependencies**: Works out of the box without the need for additional installations.
- **π‘ Full Kubernetes API Coverage**: Supports all Kubernetes API endpoints with detailed TypeScript types.
- **π Cross-Platform**: Works with both Node.js and browser environments.
## Installation
To install KubernetesJS, you can use npm or yarn:
```bash
npm install kubernetesjs
# or
yarn add kubernetesjs
```
## Example
```js
import { KubernetesClient } from "kubernetesjs";
const client = new KubernetesClient({
restEndpoint: 'http://127.0.0.1:8001'
});
const result = await client.listCoreV1NamespacedPod({
path: { namespace: 'default' }
});
if (result.items && result.items.length) {
result.items.forEach(item => {
console.log('NODE:', item.spec.nodeName);
const initContainers = item.status.initContainerStatuses?.map(ic => ({
image: ic.image,
name: ic.name,
ready: ic.ready,
state: ic.state
}));
const containers = item.status.containerStatuses?.map(c => ({
image: c.image,
name: c.name,
ready: c.ready,
state: c.state
}));
console.log({ containers });
console.log({ initContainers });
});
}
```
## Related
Checkout these related projects:
* [`schema-typescript`](https://github.com/hyperweb-io/schema-typescript/tree/main/packages/schema-typescript)
Provides robust tools for handling JSON schemas and converting them to TypeScript interfaces with ease and efficiency.
* [`@schema-typescript/cli`](https://github.com/hyperweb-io/schema-typescript/tree/main/packages/cli)
CLI is the command line utility for `schema-typescript`.
* [`schema-sdk`](https://github.com/hyperweb-io/schema-typescript/tree/main/packages/schema-sdk)
Provides robust tools for handling OpenAPI schemas and converting them to TypeScript clients with ease and efficiency.
* [`starship`](https://github.com/hyperweb-io/starship) Unified Testing and Development for the Interchain.
## Credits
π Built by Hyperweb β if you like our tools, please checkout and contribute to [our github βοΈ](https://github.com/hyperweb-io)
## Disclaimer
AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED βAS ISβ, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.
No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.