@otwld/nestjs-kubernetes
v2.0.0
Published

Readme
NestJS Kubernetes

Installation
yarn add @otwld/nestjs-kubernetes @kubernetes/client-nodenpm install @otwld/nestjs-kubernetes @kubernetes/client-nodeUsage
Register from KubeConfig file
import { Module } from '@nestjs/common';
import { KubernetesModule, LoadFrom } from '@otwld/nestjs-kubernetes';
@Module({
imports: [KubernetesModule.register({
servers: [
{
name: 'KUBE_CLUSTER',
loadFrom: LoadFrom.FILE,
opts: {
file: '/path/to/kubeconfig',
context: 'cluster-1'
}
}
],
isGlobal: true
})]
})
export class AppModule {
}Register in cluster
import { Module } from '@nestjs/common';
import { KubernetesModule, LoadFrom } from '@otwld/nestjs-kubernetes';
@Module({
imports: [KubernetesModule.register({
servers: [
{
name: 'KUBE_CLUSTER',
loadFrom: LoadFrom.CLUSTER
}
],
isGlobal: true
})]
})
export class AppModule {
}Register multi cluster
import { Module } from '@nestjs/common';
import { KubernetesModule, LoadFrom } from '@otwld/nestjs-kubernetes';
@Module({
imports: [KubernetesModule.register({
servers: [
{
name: 'KUBE_CLUSTER_1',
loadFrom: LoadFrom.FILE,
opts: {
file: '/path/to/kubeconfig',
context: 'cluster-1'
}
},
{
name: 'KUBE_CLUSTER_2',
loadFrom: LoadFrom.FILE,
opts: {
file: '/path/to/kubeconfig',
context: 'cluster-2'
}
}
],
isGlobal: true
})]
})
export class AppModule {
}Injecting KubeConfig in scoped providers
// module.ts
import { Module } from "@nestjs/common";
import { KubernetesModule, LoadFrom } from '@otwld/nestjs-kubernetes';
import { Service } from "./service";
@Module({
imports: [KubernetesModule.register([
{
name: 'KUBE_CLUSTER',
loadFrom: LoadFrom.CLUSTER,
}
])],
providers: [
Service,
],
})
export class AppModule {}// service.ts
import { Inject, Injectable } from "@nestjs/common";
import { KubeConfig, CoreV1Api } from "@kubernetes/client-node";
@Injectable()
export class Service {
private coreV1Api: CoreV1Api;
constructor(@Inject("KUBE_CLUSTER") public kubeConfig: KubeConfig) {
this.coreV1Api = this.kubeConfig.makeApiClient(CoreV1Api);
}
}Support
- For questions, suggestions, and discussion about NestJS please refer to the NestJS issue page
- For questions, suggestions, and discussion about NestJS Kubernetes please visit NestJS Kubernetes issue page or join our OTWLD Discord
