ShimManager manages currently running shim processes. It is mainly responsible for launching new shims and for proper shutdown and cleanup of existing instances. The manager is unaware of the underlying services shim provides and lets higher level services consume them, but don't care about lifecycl
| 175 | // The manager is unaware of the underlying services shim provides and lets higher level services consume them, |
| 176 | // but don't care about lifecycle management. |
| 177 | type ShimManager struct { |
| 178 | containerdAddress string |
| 179 | containerdTTRPCAddress string |
| 180 | env []string |
| 181 | shims *runtime.NSMap[ShimInstance] |
| 182 | events *exchange.Exchange |
| 183 | containers containers.Store |
| 184 | socketDir string |
| 185 | // runtimePaths is a cache of `runtime names` -> `resolved fs path` |
| 186 | runtimePaths sync.Map |
| 187 | sandboxStore sandbox.Store |
| 188 | // shimInfos is a cache of the shim info |
| 189 | shimInfos sync.Map |
| 190 | } |
| 191 | |
| 192 | // ID of the shim manager |
| 193 | func (m *ShimManager) ID() string { |
nothing calls this directly
no outgoing calls
no test coverage detected