Skip to content

Commit 90733f2

Browse files
committed
feat: redis에 pod 정보 업데이트
1 parent 1098323 commit 90733f2

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

DBManager/src/K8SApi/K8SApi.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { Module } from '@nestjs/common';
22
import { K8SApiService } from './K8SApi.service';
3+
import { RedisModule } from 'src/config/redis/redis.module';
34

45
@Module({
6+
imports: [RedisModule],
57
exports: [K8SApiService],
68
providers: [K8SApiService],
79
})

DBManager/src/K8SApi/K8SApi.service.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { Injectable } from '@nestjs/common';
1+
import { Injectable, OnModuleInit } from '@nestjs/common';
22
import * as k8s from '@kubernetes/client-node';
3+
import { RedisService } from 'src/config/redis/redis.service';
34

45
@Injectable()
56
export 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

DBManager/src/config/redis/redis.service.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ export class RedisService {
4040
await this.podConnection.hset(key, field, value);
4141
}
4242

43+
async delPod(key: string): Promise<void> {
44+
await this.podConnection.del(key);
45+
}
46+
4347
async subscribeActiveUser(
4448
channel: string,
4549
onMessage: (message: string) => void,

0 commit comments

Comments
 (0)