Merge pull request #7988 from Lyndon-Li/data-mover-ms-new-exposer

New exposer for data mover ms
This commit is contained in:
lyndon-li
2024-07-24 10:11:54 +08:00
committed by GitHub
18 changed files with 905 additions and 46 deletions
+5 -4
View File
@@ -346,23 +346,24 @@ func IsPVCBound(pvc *corev1api.PersistentVolumeClaim) bool {
}
// MakePodPVCAttachment returns the volume mounts and devices for a pod needed to attach a PVC
func MakePodPVCAttachment(volumeName string, volumeMode *corev1api.PersistentVolumeMode) ([]corev1api.VolumeMount, []corev1api.VolumeDevice) {
func MakePodPVCAttachment(volumeName string, volumeMode *corev1api.PersistentVolumeMode) ([]corev1api.VolumeMount, []corev1api.VolumeDevice, string) {
var volumeMounts []corev1api.VolumeMount = nil
var volumeDevices []corev1api.VolumeDevice = nil
volumePath := "/" + volumeName
if volumeMode != nil && *volumeMode == corev1api.PersistentVolumeBlock {
volumeDevices = []corev1api.VolumeDevice{{
Name: volumeName,
DevicePath: "/" + volumeName,
DevicePath: volumePath,
}}
} else {
volumeMounts = []corev1api.VolumeMount{{
Name: volumeName,
MountPath: "/" + volumeName,
MountPath: volumePath,
}}
}
return volumeMounts, volumeDevices
return volumeMounts, volumeDevices, volumePath
}
func GetPVForPVC(
+62
View File
@@ -1380,3 +1380,65 @@ func TestGetPVCForPodVolume(t *testing.T) {
})
}
}
func TestMakePodPVCAttachment(t *testing.T) {
testCases := []struct {
name string
volumeName string
volumeMode corev1api.PersistentVolumeMode
expectedVolumeMount []corev1api.VolumeMount
expectedVolumeDevice []corev1api.VolumeDevice
expectedVolumePath string
}{
{
name: "no volume mode specified",
volumeName: "volume-1",
expectedVolumeMount: []corev1api.VolumeMount{
{
Name: "volume-1",
MountPath: "/volume-1",
},
},
expectedVolumePath: "/volume-1",
},
{
name: "fs mode specified",
volumeName: "volume-2",
volumeMode: corev1api.PersistentVolumeFilesystem,
expectedVolumeMount: []corev1api.VolumeMount{
{
Name: "volume-2",
MountPath: "/volume-2",
},
},
expectedVolumePath: "/volume-2",
},
{
name: "block volume mode specified",
volumeName: "volume-3",
volumeMode: corev1api.PersistentVolumeBlock,
expectedVolumeDevice: []corev1api.VolumeDevice{
{
Name: "volume-3",
DevicePath: "/volume-3",
},
},
expectedVolumePath: "/volume-3",
},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
var volMode *v1.PersistentVolumeMode
if tc.volumeMode != "" {
volMode = &tc.volumeMode
}
mount, device, path := MakePodPVCAttachment(tc.volumeName, volMode)
assert.Equal(t, tc.expectedVolumeMount, mount)
assert.Equal(t, tc.expectedVolumeDevice, device)
assert.Equal(t, tc.expectedVolumePath, path)
})
}
}