kubernetes controller-runtime 缓存数据结构图
备忘
flowchart TB
subgraph iC["Cache (informerCache)"]
end
iC --> IM
subgraph IM["InformersMap"]
IM_S["StructuredInformersMap"]
IM_U["UnstructuredInformersMap"]
IM_M["MetadataInformersMap"]
end
IM_S-->sIM
IM_U-->sIM
IM_M-->sIM
subgraph sIM["specificInformersMap"]
sIM_m["map[schema.GroupVersionKind]*MapEntry"]
end
sIM_m-->ME
sIM--"provide"-->SII_LW
sIM--"provide indeces for"-->SII_I
subgraph ME["MapEntry"]
ME_SII["SharedIndexInformer"]
ME_CR["CacheReader"]
end
ME_SII-->SII
ME_CR--"reference"-->SII_I
subgraph R["Refactor"]
R_["self"]
R_LW["ListerWatcher (interface)"]
R_S["Store (interface)"]
end
R_--"list & watch resources by"-->R_LW
R_--"save resources to"-->R_S
subgraph CC["cache.Controller"]
CC_LW["ListerWatcher (interface)"]
CC_Q["Queue (interface)"]
end
subgraph SII["SharedIndexInformer"]
SII_["self"]
SII_LW["ListerWatcher (interface)"]
SII_DF["DeltaFIFO"]
SII_I["Indexer"]
end
SII_--"receive deltas from"-->SII_DF
SII_--"sync deltas to"-->SII_I
CC_LW--"provide"-->R_LW
CC_Q--"provide & contain"-->R_S
SII_LW--"provide"-->CC_LW
SII_DF--"provide & implement"-->CC_Q
SII--"use"-->CC
CC--"use"-->R