Kubernetes源码-SchemeBuilder
SchemeBuilder
用于存放处理 Scheme 的函数
1 | type SchemeBuilder [] func (*Scheme) error |
NewSchemeBuilder
创建并初始化 SchemeBuilder
1 2 3 4 5 | func NewSchemeBuilder(funcs ... func (*Scheme) error) SchemeBuilder { var sb SchemeBuilder sb.Register(funcs...) return sb } |
Register
向 SchemeBuilder 注册处理 Scheme 的函数
1 2 3 4 5 | func (sb *SchemeBuilder) Register(funcs ... func (*Scheme) error) { for _, f := range funcs { *sb = append(*sb, f) } } |
AddToScheme
将 SchemeBuilder 中的函数作用于 Scheme
1 2 3 4 5 6 7 8 | func (sb *SchemeBuilder) AddToScheme(s *Scheme) error { for _, f := range *sb { if err := f(s); err != nil { return err } } return nil } |
Usage
v1
1 2 3 4 5 6 7 8 9 10 | package SchemeBuilderV1 import "k8s.io/apimachinery/pkg/runtime" var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme ) func addKnownTypes(scheme *runtime.Scheme) error { ... } |
v2
1 2 3 4 5 6 7 8 9 10 11 12 | package SchemeBuilderV2 import "k8s.io/apimachinery/pkg/runtime" var ( SchemeBuilder = runtime.NewSchemeBuilder() AddToScheme = SchemeBuilder.AddToScheme ) func init() { SchemeBuilder.Register(addKnownTypes) } func addKnownTypes(scheme *runtime.Scheme) error { ... } |
AddToScheme
1 2 3 | scheme := runtime.NewScheme() if err := SchemeBuilderV1.AddToScheme(scheme); err != nil { ... } if err := SchemeBuilderV2.AddToScheme(scheme); err != nil { ... } |
分类:
Mesos&Kubernetes
, Kubernetes源码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
2015-04-06 SDUT2165:Crack Mathmen(快速幂)