osd: mount /run/udev in the init container for ceph-volume activate
The /run/udev directory is now mounted in the OSD init container. This change
is necessary because `ceph-volume activate` needs access to /run/udev [1] in order
to properly handle devices. Without this mount, `ceph-volume activate` could
fail to discover devices during OSD initialization.
[1] https://github.com/ceph/ceph/commit/c2e8c295dc46f1bd74861feb163d9d82f8bb5509
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit dbcd0d46dd)
Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
This commit is contained in:
1 parent
f0f7524878
commit
cd5ff1aff8
2 files changed
+6
-3
No files matched your search
@@ -886,10 +886,13 @@ func (c *Cluster) getActivateOSDInitContainer(configDir, namespace, osdID string
|
||||
|
||||
adminKeyringVol, adminKeyringVolMount := cephkey.Volume().Admin(), cephkey.VolumeMount().Admin()
|
||||
volume = append(volume, adminKeyringVol)
|
||||
udevVolume := v1.Volume{Name: "udev", VolumeSource: v1.VolumeSource{HostPath: &v1.HostPathVolumeSource{Path: "/run/udev"}}}
|
||||
volume = append(volume, udevVolume)
|
||||
volMounts := []v1.VolumeMount{
|
||||
{Name: activateOSDVolumeName, MountPath: activateOSDMountPathID},
|
||||
{Name: "devices", MountPath: "/dev"},
|
||||
{Name: k8sutil.ConfigOverrideName, ReadOnly: true, MountPath: tempEtcCephDir},
|
||||
{Name: "udev", MountPath: "/run/udev"},
|
||||
adminKeyringVolMount,
|
||||
}
|
||||
|
||||
|
||||
@@ -143,10 +143,10 @@ func testPodDevices(t *testing.T, dataDir, deviceName string, allDevices bool) {
|
||||
assert.Equal(t, corev1.RestartPolicyAlways, deployment.Spec.Template.Spec.RestartPolicy)
|
||||
assert.Equal(t, "my-priority-class", deployment.Spec.Template.Spec.PriorityClassName)
|
||||
if devMountNeeded && len(dataDir) > 0 {
|
||||
assert.Equal(t, 9, len(deployment.Spec.Template.Spec.Volumes))
|
||||
assert.Equal(t, 10, len(deployment.Spec.Template.Spec.Volumes))
|
||||
}
|
||||
if devMountNeeded && len(dataDir) == 0 {
|
||||
assert.Equal(t, 9, len(deployment.Spec.Template.Spec.Volumes))
|
||||
assert.Equal(t, 10, len(deployment.Spec.Template.Spec.Volumes))
|
||||
}
|
||||
if !devMountNeeded && len(dataDir) > 0 {
|
||||
assert.Equal(t, 1, len(deployment.Spec.Template.Spec.Volumes))
|
||||
@@ -164,7 +164,7 @@ func testPodDevices(t *testing.T, dataDir, deviceName string, allDevices bool) {
|
||||
initCont := deployment.Spec.Template.Spec.InitContainers[0]
|
||||
assert.Equal(t, "quay.io/ceph/ceph:v15", initCont.Image)
|
||||
assert.Equal(t, "activate", initCont.Name)
|
||||
assert.Equal(t, 4, len(initCont.VolumeMounts))
|
||||
assert.Equal(t, 5, len(initCont.VolumeMounts))
|
||||
initCont = deployment.Spec.Template.Spec.InitContainers[1]
|
||||
assert.Equal(t, "quay.io/ceph/ceph:v15", initCont.Image)
|
||||
assert.Equal(t, "expand-bluefs", initCont.Name)
|
||||
|
||||
Reference in new issue
Block a user