对 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 })
}
相关推荐
有个傻瓜1 小时前
PHP语言核心技术全景解析
开发语言·kubernetes·php
幻灭行度1 小时前
CKA考试知识点分享(2)---ingress
kubernetes
飞川撸码4 小时前
【LeetCode 热题100】网格路径类 DP 系列题:不同路径 & 最小路径和(力扣62 / 64 )(Go语言版)
算法·leetcode·golang·动态规划
AWS官方合作商5 小时前
在CSDN发布AWS Proton解决方案:实现云原生应用的标准化部署
java·云原生·aws
roman_日积跬步-终至千里11 小时前
【Go语言基础【14】】defer与异常处理(panic、recover)
golang
藥瓿亭12 小时前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
孔令飞12 小时前
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
ai·云原生·容器·golang·kubernetes
洛神灬殇18 小时前
【LLM大模型技术专题】「入门到精通系列教程」基于ai-openai-spring-boot-starter集成开发实战指南
网络·数据库·微服务·云原生·架构
我的golang之路果然有问题18 小时前
云服务器部署Gin+gorm 项目 demo
运维·服务器·后端·学习·golang·gin
上海运维Q先生18 小时前
Cilium动手实验室: 精通之旅---11.Advanced BGP Features - Lab
云原生·k8s·cilium