master
dongming 2 years ago
parent e8ca249b29
commit e39777713d

@ -150,6 +150,7 @@ func New(config *rest.Config, opts Options) (Cache, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
// 设置各种索引便于类型转换
selectorsByGVK, err := convertToSelectorsByGVK(opts.SelectorsByObject, opts.DefaultSelector, opts.Scheme) selectorsByGVK, err := convertToSelectorsByGVK(opts.SelectorsByObject, opts.DefaultSelector, opts.Scheme)
if err != nil { if err != nil {
return nil, err return nil, err

@ -148,10 +148,13 @@ func New(config *rest.Config, opts ...Option) (Cluster, error) {
return nil, errors.New("must specify Config") return nil, errors.New("must specify Config")
} }
// 处理自定义的选项参数
options := Options{} options := Options{}
for _, opt := range opts { for _, opt := range opts {
opt(&options) opt(&options)
} }
// 设定默认的方法
options = setOptionsDefaults(options) options = setOptionsDefaults(options)
// Create the mapper provider // Create the mapper provider

@ -576,16 +576,19 @@ func defaultBaseContext() context.Context {
// setOptionsDefaults set default values for Options fields. // setOptionsDefaults set default values for Options fields.
func setOptionsDefaults(options Options) Options { func setOptionsDefaults(options Options) Options {
// election 相关的方法设定
// Allow newResourceLock to be mocked // Allow newResourceLock to be mocked
if options.newResourceLock == nil { if options.newResourceLock == nil {
options.newResourceLock = leaderelection.NewResourceLock options.newResourceLock = leaderelection.NewResourceLock
} }
// 记录器相关的方法设定
// Allow newRecorderProvider to be mocked // Allow newRecorderProvider to be mocked
if options.newRecorderProvider == nil { if options.newRecorderProvider == nil {
options.newRecorderProvider = intrec.NewProvider options.newRecorderProvider = intrec.NewProvider
} }
// 处理事件广播相关的方法设定
// This is duplicated with pkg/cluster, we need it here // This is duplicated with pkg/cluster, we need it here
// for the leader election and there to provide the user with // for the leader election and there to provide the user with
// an EventBroadcaster // an EventBroadcaster
@ -600,6 +603,7 @@ func setOptionsDefaults(options Options) Options {
} }
} }
// 监控相关的方法设定
if options.newMetricsListener == nil { if options.newMetricsListener == nil {
options.newMetricsListener = metrics.NewListener options.newMetricsListener = metrics.NewListener
} }
@ -628,15 +632,18 @@ func setOptionsDefaults(options Options) Options {
options.newHealthProbeListener = defaultHealthProbeListener options.newHealthProbeListener = defaultHealthProbeListener
} }
// 停止相关的方法设定
if options.GracefulShutdownTimeout == nil { if options.GracefulShutdownTimeout == nil {
gracefulShutdownTimeout := defaultGracefulShutdownPeriod gracefulShutdownTimeout := defaultGracefulShutdownPeriod
options.GracefulShutdownTimeout = &gracefulShutdownTimeout options.GracefulShutdownTimeout = &gracefulShutdownTimeout
} }
// 日志对象的设定
if options.Logger.GetSink() == nil { if options.Logger.GetSink() == nil {
options.Logger = log.Log options.Logger = log.Log
} }
// 基本的上下文相关方法的设定
if options.BaseContext == nil { if options.BaseContext == nil {
options.BaseContext = defaultBaseContext options.BaseContext = defaultBaseContext
} }

@ -34,6 +34,7 @@ type runnables struct {
Others *runnableGroup Others *runnableGroup
} }
// 以字面量的方式创建各个频道,这些频道中是由空间来存储每个可执行(运行)的对象的。
// newRunnables creates a new runnables object. // newRunnables creates a new runnables object.
func newRunnables(baseContext BaseContextFunc, errChan chan error) *runnables { func newRunnables(baseContext BaseContextFunc, errChan chan error) *runnables {
return &runnables{ return &runnables{

Loading…
Cancel
Save