对 K8s 中的 NameSpace的ResourceList进行加减操作

背景

需要将命名空间内新家的STS所使用的配额自动加到NameSpace上, 就需要对NameSpace的ResourceList做加减操作

计算STS配额参考:

https://blog.csdn.net/qq_21047625/article/details/134946922

将STS配额转为NameSpace的配额参考:

https://blog.csdn.net/qq_21047625/article/details/135020443

代码

go 复制代码
import (
	v1 "k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/api/resource"
)

var (
	nsLabelArray []v1.ResourceName = []v1.ResourceName{"requests.cpu", "requests.memory", "requests.storage", "requests.nvidia.com/gpu", "limits.cpu", "limits.memory"}
)

func CalNsResourceList(data1 v1.ResourceList, data2 v1.ResourceList, calFunc func(resource.Quantity, resource.Quantity) resource.Quantity) (res v1.ResourceList) {
	res = v1.ResourceList{}
	for _, labelData := range nsLabelArray {
		req1 := data1[labelData]
		req2 := data2[labelData]
		resQuota := calFunc(req1, req2)

		if resQuota.CmpInt64(0) < 0 {
			resQuota.Set(0)
		}
		res[labelData] = resQuota
	}
	return
}

func AddNsResourceList(data1 v1.ResourceList, data2 v1.ResourceList) v1.ResourceList {
	return CalNsResourceList(data1, data2, func(q1, q2 resource.Quantity) resource.Quantity { q1.Add(q2); return q1 })
}

func SubNsResourceList(data1 v1.ResourceList, data2 v1.ResourceList) v1.ResourceList {
	return CalNsResourceList(data1, data2, func(q1, q2 resource.Quantity) resource.Quantity { q1.Sub(q2); return q1 })
}
相关推荐
阿里云云原生3 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
阿里云云原生3 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生4 天前
当 AI Agent 接管手机:移动端如何进行观测
云原生·agent
阿里云云原生4 天前
AI 原生应用开源开发者沙龙·深圳站精彩回顾 & PPT下载
云原生
阿里云云原生4 天前
灵感启发:日产文章 100 篇,打造“实时热点洞察”引擎
云原生
花酒锄作田4 天前
Gin 框架中的规范响应格式设计与实现
golang·gin
~莫子4 天前
Haproxy七层负载详解+实验详细代码
云原生
阿里云云原生4 天前
OpenTelemetry + 云监控 2.0:打造你的云原生全栈可观测
云原生
阿里云云原生4 天前
Kubernetes 官方再出公告,强调立即迁移 Ingress NGINX
kubernetes