@@ -44,24 +44,20 @@ const (
4444 MongodbRepoUrl = "MONGODB_REPO_URL"
4545 OfficialMongodbEnterpriseServerImageName = "mongodb-enterprise-server"
4646
47- headlessAgentEnv = "HEADLESS_AGENT"
48- podNamespaceEnv = "POD_NAMESPACE"
49- automationConfigEnv = "AUTOMATION_CONFIG_MAP"
50- AgentImageEnv = "AGENT_IMAGE"
51- MongodbImageEnv = "MONGODB_IMAGE"
52- MongoDBImageType = "MDB_IMAGE_TYPE"
53- MongoDBAssumeEnterpriseEnv = "MDB_ASSUME_ENTERPRISE"
54- VersionUpgradeHookImageEnv = "VERSION_UPGRADE_HOOK_IMAGE"
55- ReadinessProbeImageEnv = "READINESS_PROBE_IMAGE"
56- agentLogLevelEnv = "AGENT_LOG_LEVEL"
57- agentLogFileEnv = "AGENT_LOG_FILE"
58- agentMaxLogFileDurationHoursEnv = "AGENT_MAX_LOG_FILE_DURATION_HOURS"
47+ headlessAgentEnv = "HEADLESS_AGENT"
48+ podNamespaceEnv = "POD_NAMESPACE"
49+ automationConfigEnv = "AUTOMATION_CONFIG_MAP"
50+ AgentImageEnv = "AGENT_IMAGE"
51+ MongodbImageEnv = "MONGODB_IMAGE"
52+ MongoDBImageType = "MDB_IMAGE_TYPE"
53+ MongoDBAssumeEnterpriseEnv = "MDB_ASSUME_ENTERPRISE"
54+ VersionUpgradeHookImageEnv = "VERSION_UPGRADE_HOOK_IMAGE"
55+ ReadinessProbeImageEnv = "READINESS_PROBE_IMAGE"
5956
6057 automationMongodConfFileName = "automation-mongod.conf"
6158 keyfileFilePath = "/var/lib/mongodb-mms-automation/authentication/keyfile"
6259
63- automationAgentOptions = " -skipMongoStart -noDaemonize -useLocalMongoDbTools"
64- automationAgentLogOptions = " -logFile ${AGENT_LOG_FILE} -maxLogFileDurationHrs ${AGENT_MAX_LOG_FILE_DURATION_HOURS} -logLevel ${AGENT_LOG_LEVEL}"
60+ automationAgentOptions = " -skipMongoStart -noDaemonize -useLocalMongoDbTools"
6561
6662 MongodbUserCommand = `current_uid=$(id -u)
6763declare -r current_uid
@@ -259,11 +255,23 @@ func BaseAgentCommand() string {
259255
260256// AutomationAgentCommand withAgentAPIKeyExport detects whether we want to deploy this agent with the agent api key exported
261257// it can be used to register the agent with OM.
262- func AutomationAgentCommand (withAgentAPIKeyExport bool ) []string {
258+ func AutomationAgentCommand (withAgentAPIKeyExport bool , logLevel string , logFile string , maxLogFileDurationHours int ) []string {
259+ // This is somewhat undocumented at https://www.mongodb.com/docs/ops-manager/current/reference/mongodb-agent-settings/
260+ // Not setting the -logFile option make the mongodb-agent log to stdout. Setting -logFile /dev/stdout will result in
261+ // an error by the agent trying to open /dev/stdout-verbose and still trying to do log rotation.
262+ // To keep consistent with old behavior not setting the logFile in the config does not log to stdout but keeps
263+ // the default logFile as defined by DefaultAgentLogFile. Setting the logFile explictly to "/dev/stdout" will log to stdout.
264+ agentLogOptions := ""
265+ if logFile != "/dev/stdout" {
266+ agentLogOptions += " -logFile " + logFile + " -logLevel " + logLevel + " -maxLogFileDurationHrs " + strconv .Itoa (maxLogFileDurationHours )
267+ } else {
268+ agentLogOptions += " -logLevel " + logLevel
269+ }
270+
263271 if withAgentAPIKeyExport {
264- return []string {"/bin/bash" , "-c" , MongodbUserCommandWithAPIKeyExport + BaseAgentCommand () + " -cluster=" + clusterFilePath + automationAgentOptions + automationAgentLogOptions }
272+ return []string {"/bin/bash" , "-c" , MongodbUserCommandWithAPIKeyExport + BaseAgentCommand () + " -cluster=" + clusterFilePath + automationAgentOptions + agentLogOptions }
265273 }
266- return []string {"/bin/bash" , "-c" , MongodbUserCommand + BaseAgentCommand () + " -cluster=" + clusterFilePath + automationAgentOptions + automationAgentLogOptions }
274+ return []string {"/bin/bash" , "-c" , MongodbUserCommand + BaseAgentCommand () + " -cluster=" + clusterFilePath + automationAgentOptions + agentLogOptions }
267275}
268276
269277func mongodbAgentContainer (automationConfigSecretName string , volumeMounts []corev1.VolumeMount , logLevel string , logFile string , maxLogFileDurationHours int , agentImage string ) container.Modification {
@@ -275,7 +283,7 @@ func mongodbAgentContainer(automationConfigSecretName string, volumeMounts []cor
275283 container .WithReadinessProbe (DefaultReadiness ()),
276284 container .WithResourceRequirements (resourcerequirements .Defaults ()),
277285 container .WithVolumeMounts (volumeMounts ),
278- container .WithCommand (AutomationAgentCommand (false )),
286+ container .WithCommand (AutomationAgentCommand (false , logFile , logLevel , maxLogFileDurationHours )),
279287 containerSecurityContext ,
280288 container .WithEnvs (
281289 corev1.EnvVar {
@@ -299,18 +307,6 @@ func mongodbAgentContainer(automationConfigSecretName string, volumeMounts []cor
299307 Name : agentHealthStatusFilePathEnv ,
300308 Value : agentHealthStatusFilePathValue ,
301309 },
302- corev1.EnvVar {
303- Name : agentLogLevelEnv ,
304- Value : logLevel ,
305- },
306- corev1.EnvVar {
307- Name : agentLogFileEnv ,
308- Value : logFile ,
309- },
310- corev1.EnvVar {
311- Name : agentMaxLogFileDurationHoursEnv ,
312- Value : strconv .Itoa (maxLogFileDurationHours ),
313- },
314310 ),
315311 )
316312}
0 commit comments