Skip to content

Commit

Permalink
Share the system-probe socket when oom_kill or tcp_queue_length c…
Browse files Browse the repository at this point in the history
…hecks are enabled
  • Loading branch information
L3n41c committed Nov 18, 2022
1 parent 789f5b8 commit 323bac1
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
21 changes: 21 additions & 0 deletions controllers/datadogagent/feature/oomkill/feature.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ func (f *oomKillFeature) ManageNodeAgent(managers feature.PodTemplateManagers) e
// security context capabilities
managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommonv1.SystemProbeContainerName)

// socket volume mount
sysprobeSocketVol, sysprobeSocketVolMount := volume.GetVolumes(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, apicommon.SystemProbeSocketVolumePath, false)
managers.Volume().AddVolume(&sysprobeSocketVol)
managers.VolumeMount().AddVolumeMountToContainers(&sysprobeSocketVolMount, []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName})

// modules volume mount
modulesVol, modulesVolMount := volume.GetVolumes(apicommon.ModulesVolumeName, apicommon.ModulesVolumePath, apicommon.ModulesVolumePath, true)
managers.VolumeMount().AddVolumeMountToContainer(&modulesVolMount, apicommonv1.SystemProbeContainerName)
Expand All @@ -96,6 +101,14 @@ func (f *oomKillFeature) ManageNodeAgent(managers feature.PodTemplateManagers) e
managers.Volume().AddVolume(&debugfsVol)
managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommonv1.AgentContainerName{apicommonv1.ProcessAgentContainerName, apicommonv1.SystemProbeContainerName})

// socket volume mount (needs write perms for the system probe container but not the others)
socketVol, socketVolMount := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, false)
managers.Volume().AddVolume(&socketVol)
managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommonv1.SystemProbeContainerName)

_, socketVolMountReadOnly := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, true)
managers.VolumeMount().AddVolumeMountToContainer(&socketVolMountReadOnly, apicommonv1.CoreAgentContainerName)

enableEnvVar := &corev1.EnvVar{
Name: apicommon.DDEnableOOMKillEnvVar,
Value: "true",
Expand All @@ -105,6 +118,14 @@ func (f *oomKillFeature) ManageNodeAgent(managers feature.PodTemplateManagers) e
managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, enableEnvVar)
managers.EnvVar().AddEnvVarToInitContainer(apicommonv1.InitConfigContainerName, enableEnvVar)

socketEnvVar := &corev1.EnvVar{
Name: apicommon.DDSystemProbeSocket,
Value: apicommon.DefaultSystemProbeSocketPath,
}

managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, socketEnvVar)
managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, socketEnvVar)

return nil
}

Expand Down
16 changes: 16 additions & 0 deletions controllers/datadogagent/feature/tcpqueuelength/feature.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,14 @@ func (f *tcpQueueLengthFeature) ManageNodeAgent(managers feature.PodTemplateMana
managers.Volume().AddVolume(&debugfsVol)
managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommonv1.AgentContainerName{apicommonv1.ProcessAgentContainerName, apicommonv1.SystemProbeContainerName})

// socket volume mount (needs write perms for the system probe container but not the others)
socketVol, socketVolMount := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, false)
managers.Volume().AddVolume(&socketVol)
managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommonv1.SystemProbeContainerName)

_, socketVolMountReadOnly := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, true)
managers.VolumeMount().AddVolumeMountToContainer(&socketVolMountReadOnly, apicommonv1.CoreAgentContainerName)

enableEnvVar := &corev1.EnvVar{
Name: apicommon.DDEnableTCPQueueLengthEnvVar,
Value: "true",
Expand All @@ -108,6 +116,14 @@ func (f *tcpQueueLengthFeature) ManageNodeAgent(managers feature.PodTemplateMana
managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, enableEnvVar)
managers.EnvVar().AddEnvVarToInitContainer(apicommonv1.InitConfigContainerName, enableEnvVar)

socketEnvVar := &corev1.EnvVar{
Name: apicommon.DDSystemProbeSocket,
Value: apicommon.DefaultSystemProbeSocketPath,
}

managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, socketEnvVar)
managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, socketEnvVar)

return nil
}

Expand Down

0 comments on commit 323bac1

Please sign in to comment.