Skip to content

Commit 173a751

Browse files
guyarbclaude
andauthored
usm: Match volume mounts to the CNM (#2229)
* usm: Match volume mounts to the CNM We didn't mount the correct volumes to the process agent, hence, if CNM wasn't enabled or after runProcessChecksInCoreAgent config turned on by default, the process-agent container didn't have the correct mounts * usm: Fix test expectations for Process Agent volume mounts Update test to expect procdir, cgroups, and debugfs volume mounts in the Process Agent container, matching the changes from commit 7789732. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 997da36 commit 173a751

2 files changed

Lines changed: 29 additions & 21 deletions

File tree

internal/controller/datadogagent/feature/usm/feature.go

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -107,28 +107,24 @@ func (f *usmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi
107107
// security context capabilities
108108
managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommon.SystemProbeContainerName)
109109

110-
// volume mounts
111-
procdirVol, procdirMount := volume.GetVolumes(common.ProcdirVolumeName, common.ProcdirHostPath, common.ProcdirMountPath, true)
112-
managers.VolumeMount().AddVolumeMountToContainer(&procdirMount, apicommon.SystemProbeContainerName)
110+
// procdir volume mount
111+
procdirVol, procdirVolMount := volume.GetVolumes(common.ProcdirVolumeName, common.ProcdirHostPath, common.ProcdirMountPath, true)
113112
managers.Volume().AddVolume(&procdirVol)
113+
managers.VolumeMount().AddVolumeMountToContainers(&procdirVolMount, []apicommon.AgentContainerName{apicommon.ProcessAgentContainerName, apicommon.SystemProbeContainerName})
114114

115-
cgroupsVol, cgroupsMount := volume.GetVolumes(common.CgroupsVolumeName, common.CgroupsHostPath, common.CgroupsMountPath, true)
116-
managers.VolumeMount().AddVolumeMountToContainer(&cgroupsMount, apicommon.SystemProbeContainerName)
115+
// cgroups volume mount
116+
cgroupsVol, cgroupsVolMount := volume.GetVolumes(common.CgroupsVolumeName, common.CgroupsHostPath, common.CgroupsMountPath, true)
117117
managers.Volume().AddVolume(&cgroupsVol)
118+
managers.VolumeMount().AddVolumeMountToContainers(&cgroupsVolMount, []apicommon.AgentContainerName{apicommon.ProcessAgentContainerName, apicommon.SystemProbeContainerName})
118119

119-
debugfsVol, debugfsMount := volume.GetVolumes(common.DebugfsVolumeName, common.DebugfsPath, common.DebugfsPath, false)
120-
managers.VolumeMount().AddVolumeMountToContainer(&debugfsMount, apicommon.SystemProbeContainerName)
120+
debugfsVol, debugfsVolMount := volume.GetVolumes(common.DebugfsVolumeName, common.DebugfsPath, common.DebugfsPath, false)
121121
managers.Volume().AddVolume(&debugfsVol)
122+
managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommon.AgentContainerName{apicommon.ProcessAgentContainerName, apicommon.SystemProbeContainerName})
122123

123124
// socket volume mount (needs write perms for the system probe container but not the others)
124-
socketDirVol, socketDirMount := volume.GetVolumesEmptyDir(common.SystemProbeSocketVolumeName, common.SystemProbeSocketVolumePath, false)
125-
managers.VolumeMount().AddVolumeMountToContainers(
126-
&socketDirMount,
127-
[]apicommon.AgentContainerName{
128-
apicommon.SystemProbeContainerName,
129-
},
130-
)
131-
managers.Volume().AddVolume(&socketDirVol)
125+
socketVol, socketVolMount := volume.GetVolumesEmptyDir(common.SystemProbeSocketVolumeName, common.SystemProbeSocketVolumePath, false)
126+
managers.Volume().AddVolume(&socketVol)
127+
managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommon.SystemProbeContainerName)
132128

133129
_, socketVolMountReadOnly := volume.GetVolumesEmptyDir(common.SystemProbeSocketVolumeName, common.SystemProbeSocketVolumePath, true)
134130
managers.VolumeMount().AddVolumeMountToContainers(
@@ -156,16 +152,13 @@ func (f *usmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi
156152
Name: common.DDSystemProbeEnabled,
157153
Value: "true",
158154
}
159-
managers.EnvVar().AddEnvVarToContainers(
160-
[]apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName},
161-
sysProbeEnableEnvVar,
162-
)
155+
managers.EnvVar().AddEnvVarToContainers(containersForEnvVars, sysProbeEnableEnvVar)
163156

164-
sysProbeSocketEnvVar := &corev1.EnvVar{
157+
socketEnvVar := &corev1.EnvVar{
165158
Name: common.DDSystemProbeSocket,
166159
Value: common.DefaultSystemProbeSocketPath,
167160
}
168-
managers.EnvVar().AddEnvVarToContainers(containersForEnvVars, sysProbeSocketEnvVar)
161+
managers.EnvVar().AddEnvVarToContainers(containersForEnvVars, socketEnvVar)
169162

170163
// env vars for Process Agent only
171164
sysProbeExternalEnvVar := &corev1.EnvVar{

internal/controller/datadogagent/feature/usm/feature_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,21 @@ func Test_usmFeature_Configure(t *testing.T) {
8888
assert.True(t, apiutils.IsEqualStruct(coreAgentMounts, coreWantVolumeMounts), "Core Agent volume mounts \ndiff = %s", cmp.Diff(coreAgentMounts, coreWantVolumeMounts))
8989

9090
processWantVolumeMounts := []corev1.VolumeMount{
91+
{
92+
Name: common.ProcdirVolumeName,
93+
MountPath: common.ProcdirMountPath,
94+
ReadOnly: true,
95+
},
96+
{
97+
Name: common.CgroupsVolumeName,
98+
MountPath: common.CgroupsMountPath,
99+
ReadOnly: true,
100+
},
101+
{
102+
Name: common.DebugfsVolumeName,
103+
MountPath: common.DebugfsPath,
104+
ReadOnly: false,
105+
},
91106
{
92107
Name: common.SystemProbeSocketVolumeName,
93108
MountPath: common.SystemProbeSocketVolumePath,

0 commit comments

Comments
 (0)