github.com/aporeto-inc/trireme-lib@v10.358.0+incompatible/monitor/internal/docker/config.go (about) 1 package dockermonitor 2 3 import ( 4 "go.aporeto.io/enforcerd/trireme-lib/monitor/constants" 5 "go.aporeto.io/enforcerd/trireme-lib/monitor/extractors" 6 ) 7 8 // Config is the configuration options to start a CNI monitor 9 type Config struct { 10 EventMetadataExtractor extractors.DockerMetadataExtractor 11 SocketType string 12 SocketAddress string 13 SyncAtStart bool 14 DestroyStoppedContainers bool 15 ignoreHostModeContainers bool 16 } 17 18 // DefaultConfig provides a default configuration 19 func DefaultConfig() *Config { 20 return &Config{ 21 EventMetadataExtractor: extractors.DefaultMetadataExtractor, 22 SocketType: string(constants.DefaultDockerSocketType), 23 SocketAddress: constants.DefaultDockerSocket, 24 SyncAtStart: true, 25 ignoreHostModeContainers: true, 26 } 27 } 28 29 // SetupDefaultConfig adds defaults to a partial configuration 30 func SetupDefaultConfig(dockerConfig *Config) *Config { 31 32 defaultConfig := DefaultConfig() 33 34 if dockerConfig.EventMetadataExtractor == nil { 35 dockerConfig.EventMetadataExtractor = defaultConfig.EventMetadataExtractor 36 } 37 if dockerConfig.SocketType == "" { 38 dockerConfig.SocketType = defaultConfig.SocketType 39 } 40 if dockerConfig.SocketAddress == "" { 41 dockerConfig.SocketAddress = defaultConfig.SocketAddress 42 } 43 return dockerConfig 44 }