fengling-console/Directory.Packages.props
movingsam 3ec055b871
All checks were successful
Build and Push Docker / build (push) Successful in 4m28s
feat(gateway-config): 实现 K8s 服务监听和待确认配置管理基础结构
本次提交包含网关配置重构的第一阶段实现(IMPL-1, IMPL-4):

## 新增功能

### 1. K8s 服务监听服务 (IMPL-1)
- 新增 K8sServiceWatchService - 后台服务监听 Kubernetes Service 变化
- 支持 Watch API 和自动重连机制(指数退避策略)
- 使用 Channel 处理事件,防止内存无限增长
- 支持集群内配置和本地 kubeconfig 两种模式

### 2. 待确认配置管理 (IMPL-4)
- 新增 PendingConfig 实体,用于存储待用户确认的配置变更
- 新增 PendingConfigType 枚举(Route, Cluster, Destination)
- 新增 PendingConfigSource 枚举(K8sDiscovery, Manual)
- 新增 PendingConfigStatus 枚举(Pending, Confirmed, Rejected, Modified)
- 生成 EF Core 迁移 AddPendingConfig,创建 gw_pending_configs 表

## 技术变更

### NuGet 包
- 添加 KubernetesClient 16.0.2 包引用

### 数据库
- 更新 ConsoleDbContext,添加 PendingConfigs DbSet
- 配置 PendingConfig 表索引(Status, ServiceName, CreatedAt)

### EF Core 兼容性修复
- 修复 EF Core 10 中 JSON 值对象的映射问题
- 使用值转换器替代 OwnsOne().ToJson() 配置

## 文件变更
- 新增: src/Services/K8sServiceWatchService.cs
- 新增: src/Models/Entities/PendingConfig.cs
- 新增: src/Models/Entities/PendingConfigEnums.cs
- 新增: src/Migrations/20260307161935_AddPendingConfig.cs
- 修改: src/Program.cs (注册 K8sServiceWatch)
- 修改: src/Data/ConsoleDbContext.cs (添加实体配置)
- 修改: Directory.Packages.props (添加 KubernetesClient)

关联任务: IMPL-1, IMPL-4
关联重构计划: WFS-gateway-refactor
2026-03-08 00:32:30 +08:00

33 lines
1.8 KiB
XML

<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<!-- Microsoft Packages -->
<PackageVersion Include="Fengling.Platform.Infrastructure" Version="1.0.12" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.3" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.3" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.2" />
<!-- NetCorePal Packages (from Gitea) -->
<PackageVersion Include="Microsoft.OpenApi" Version="3.3.1" />
<PackageVersion Include="NetCorePal.Extensions.AspNetCore" Version="3.2.1" />
<PackageVersion Include="NetCorePal.Extensions.DistributedLocks.Redis" Version="3.2.1" />
<!-- Database -->
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.0" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" />
<!-- OpenIddict (version must match Fengling.Platform) -->
<PackageVersion Include="OpenIddict.Abstractions" Version="7.2.0" />
<PackageVersion Include="OpenIddict.AspNetCore" Version="7.2.0" />
<PackageVersion Include="OpenIddict.EntityFrameworkCore" Version="7.2.0" />
<PackageVersion Include="OpenIddict.Server" Version="7.2.0" />
<PackageVersion Include="OpenIddict.Server.AspNetCore" Version="7.2.0" />
<!-- Swashbuckle -->
<PackageVersion Include="Swashbuckle.AspNetCore" Version="10.1.4" />
<!-- Kubernetes -->
<PackageVersion Include="KubernetesClient" Version="16.0.2" />
<!-- Graphics -->
<PackageVersion Include="SkiaSharp" Version="3.119.2" />
<PackageVersion Include="QRCoder" Version="1.7.0" />
</ItemGroup>
</Project>