1- import { Injectable } from '@nestjs/common' ;
1+ import { Injectable , OnModuleInit } from '@nestjs/common' ;
22import * as k8s from '@kubernetes/client-node' ;
3+ import { RedisService } from 'src/config/redis/redis.service' ;
34
45@Injectable ( )
56export class K8SApiService {
@@ -8,6 +9,8 @@ export class K8SApiService {
89 private k8sWatch : k8s . Watch ;
910 private namespace = 'default' ;
1011
12+ constructor ( private readonly redisService : RedisService ) { }
13+
1114 async onModuleInit ( ) {
1215 const kc = new k8s . KubeConfig ( ) ;
1316 kc . loadFromDefault ( ) ;
@@ -21,18 +24,15 @@ export class K8SApiService {
2124 const queryParams = { allowWatchBookmarks : true } ;
2225 const handlePodEvent = ( type : String , apiObj : any , watchObj : any ) => {
2326 if ( type === 'ADDED' ) {
24- console . log ( 'Watch Created Pod' ) ;
25- console . log ( watchObj . object . metadata . name ) ;
27+ const createdPod = watchObj . object . metadata . name ;
28+ this . redisService . hsetPod ( createdPod , 'activeUser' , 0 ) ;
2629 } else if ( type === 'DELETED' ) {
27- console . log ( 'Watch Deleted Pod' ) ;
28- console . log ( watchObj . object . metadata . name ) ;
30+ const deletedPod = watchObj . object . metadata . name ;
31+ this . redisService . delPod ( deletedPod ) ;
2932 }
3033 } ;
31- const handleError = ( err : any ) => {
32- console . log ( err ) ;
33- } ;
3434
35- const req = this . k8sWatch . watch ( path , queryParams , handlePodEvent , handleError ) ;
35+ this . k8sWatch . watch ( path , queryParams , handlePodEvent , err => { } ) ;
3636 }
3737
3838 async createPod ( ) {
@@ -51,13 +51,11 @@ export class K8SApiService {
5151 } ;
5252
5353 const createdPod = await this . k8sApi . createNamespacedPod ( this . namespace , mysqlPod ) ;
54- // console.log('Created pod:', createdPod.body.metadata.name);
5554 return createdPod ;
5655 }
5756
5857 async deletePod ( podName : string ) {
5958 const deletePod = await this . k8sApi . deleteNamespacedPod ( podName , this . namespace ) ;
60- // console.log('Deleted pod:', deletePod.body.metadata.name);
6159 return deletePod ;
6260 }
6361
0 commit comments