Skip to content

Commit 9bc8056

Browse files
dd-octo-sts[bot]guyarbclaude
authored
usm: Match volume mounts to the CNM (#2229) (#2232)
* 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) --------- (cherry picked from commit 173a751) Co-authored-by: Guy Arbitman <[email protected]> Co-authored-by: Claude <[email protected]>
1 parent 7169ca0 commit 9bc8056

File tree

2 files changed

+29
-21
lines changed

2 files changed

+29
-21
lines changed

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)