k8s-objectmatcher:Kubernetes对象匹配器库,以避免不必要的K8s对象更新

时间:2024-06-17 05:37:48
【文件属性】:

文件名称:k8s-objectmatcher:Kubernetes对象匹配器库,以避免不必要的K8s对象更新

文件大小:103KB

文件格式:ZIP

更新时间:2024-06-17 05:37:48

kubernetes k8s operators Go

Kubernetes对象匹配器 K8S-ObjectMatcher是一个Golang库,可帮助匹配Kubernetes对象。 动机 在Banzai Cloud,我们喜欢并写很多Kubernetes。 在编写一些复杂的运算符(如 , 或运算符)时,我们遇到了大量不必要的Kubernetes对象更新。 那里的大多数运算符都在使用reflect.DeepEquals来匹配给定对象的Spec 。 不幸的是,该解决方案并不完美,因为在提交时,每个Kubernetes对象都使用不同的默认值进行了修改。 该库旨在提供更好的对象匹配功能,以避免不必要的更新和客户端上的更多可观察性。 旧版本弃用通知 有一个旧版本的lib,现在已弃用并在此处记录: 它是如何工作的? 该库使用kubectl apply在kubectl apply使用的相同方法,通过方法来计算补丁。 但是,要使其正常工作,我们需要跟踪对象的


【文件预览】:
k8s-objectmatcher-master
----.golangci.yml(478B)
----go.mod(184B)
----.github()
--------support_issue.png(40KB)
--------SUPPORT.md(404B)
--------PULL_REQUEST_TEMPLATE.md(1KB)
--------ISSUE_TEMPLATE()
----go.sum(18KB)
----patch()
--------deletenull.go(7KB)
--------annotation_test.go(1KB)
--------patch.go(4KB)
--------annotation.go(6KB)
----.circleci()
--------config.yml(6KB)
----.idea()
--------k8s-objectmatcher.iml(281B)
--------modules.xml(286B)
----CONTRIBUTING.md(667B)
----.licensei.toml(1KB)
----LICENSE(11KB)
----README.md(4KB)
----Makefile(1KB)
----NOTICE(498B)
----docs()
--------legacy.md(3KB)
----.editorconfig(246B)
----tests()
--------go.mod(348B)
--------go.sum(56KB)
--------main_test.go(17KB)
--------integration_test.go(19KB)
----CODE_OF_CONDUCT.md(3KB)
----.gitignore(211B)

网友评论