K8s 的 ResourceList进行加减操作工具类
2023-12-13 05:52:30
背景
需要计算STS需要的资源并且扩容NameSpace的resourcequotas
方法
在Kubernetes Go客户端中,你可以使用一些基本的算术运算符来对ResourceList进行加减操作。ResourceList中的值是以v1.ResourceList
类型表示的,这个类型实际上是一个map,其中key是v1.ResourceName
,value是resource.Quantity
。你可以通过操作map中的值来进行加减乘除操作。
代码如下:
package k8s
import (
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
)
func CalResourceList(data1 v1.ResourceList, data2 v1.ResourceList, calFunc func(resource.Quantity, resource.Quantity) resource.Quantity) (res v1.ResourceList) {
res = v1.ResourceList{}
res[v1.ResourceCPU] = calFunc(*data1.Cpu(), *data2.Cpu())
res[v1.ResourceMemory] = calFunc(*data1.Memory(), *data2.Memory())
res[v1.ResourceStorage] = calFunc(*data1.Storage(), *data2.Storage())
return
}
func AddResourceList(data1 v1.ResourceList, data2 v1.ResourceList) v1.ResourceList {
return CalResourceList(data1, data2, func(q1, q2 resource.Quantity) resource.Quantity { q1.Add(q2); return q1 })
}
func SubResourceList(data1 v1.ResourceList, data2 v1.ResourceList) v1.ResourceList {
return CalResourceList(data1, data2, func(q1, q2 resource.Quantity) resource.Quantity { q1.Sub(q2); return q1 })
}
文章来源:https://blog.csdn.net/qq_21047625/article/details/134946922
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!