SchemeBuilder 是关键对象。

type SchemeBuilder []func(*Scheme) error
SchemeBuilder 本质是一个function的slice

SchemeBuilder的使用

*_types.go的init方法里,一般有类似:

SchemeBuilder.Register(&PodPool{}, &PodPoolList{})

这个本质上做的是生成一个function,放到SchemeBuilder中

SchemeBuilder的AddToScheme

调用SchemeBuilder中的所有function,加入到Scheme中

apis.go

定义了全局的AddToSchemes ,这个slice
**
在main.go中会调用apis.AddToScheme,是用全局的AddToSchemes这个slice的内容,生成operator manager中scheme

addtoscheme_**_v1.go

将SchemeBuilder的AddToScheme 将入到全局的 AddToSchemes这个slice中