Skip to content

--bug=161152015 【CMDB-v3.14.x】batch_create_kube_pod 接口无法写入 Container requests/limits 资源配额 - #8684

Open
yuyudeqiu wants to merge 4 commits into
TencentBlueKing:v3.14.xfrom
yuyudeqiu:codex/fix-container-resource-quantity
Open

--bug=161152015 【CMDB-v3.14.x】batch_create_kube_pod 接口无法写入 Container requests/limits 资源配额#8684
yuyudeqiu wants to merge 4 commits into
TencentBlueKing:v3.14.xfrom
yuyudeqiu:codex/fix-container-resource-quantity

Conversation

@yuyudeqiu

@yuyudeqiu yuyudeqiu commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

新加的功能:

优化的功能:

修复的问题:

  • 修复 batch_create_kube_pod 接口无法写入 Container requests/limits 字符串资源配额(如 "cpu":"500m")的问题。
  • 根因是本地 Quantity 类型缺少标准 JSON 编解码,现仅将 Container 的 limitsrequests 改为字符串资源映射,保留原有 JSON/BSON tag,不影响其他 Kubernetes 类型使用的 ResourceList

@yuyudeqiu
yuyudeqiu marked this pull request as ready for review July 27, 2026 12:06
Comment thread src/kube/types/pod.go Outdated
@yuyudeqiu

Copy link
Copy Markdown
Contributor Author

补充说明一下当前实现的边界:本次没有完整搬入 Kubernetes resource.Quantity 的解析逻辑。当前 JSON/BSON 反序列化仅将输入字符串保存到缓存字段 s,不会填充数值字段 i/d,也不会校验输入是否符合 Kubernetes Quantity 格式;null 场景直接返回。相关限制已在代码注释中明确。

Kubernetes 的完整实现还涉及字符串拆解、suffix/单位识别、精度与大数处理、溢出和取整,以及 canonicalization。以项目当前使用的 K8s v0.24.2 为参考,相关核心实现分布在 quantity.go、suffix.go、amount.go、math.go 和 scale_int.go,直接完整移植会显著扩大本次修复范围。因此本 PR 先满足 Container requests/limits 字符串资源配额的 JSON/BSON 写入和读取需求;如果后续需要 Quantity 的格式校验、数值计算或规范化输出,再单独评估直接复用 k8s.io/apimachinery/pkg/api/resource.Quantity 或进行完整重构。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants