mirror of https://github.com/k3s-io/k3s
Use same fsGroup for both pods until we have a reliable way to detect
volumes are unmounted or notpull/564/head
parent
12647fa068
commit
5c67d55002
|
@ -487,7 +487,7 @@ func TestVolumeClient(client clientset.Interface, config VolumeTestConfig, fsGro
|
||||||
// Insert index.html with given content into given volume. It does so by
|
// Insert index.html with given content into given volume. It does so by
|
||||||
// starting and auxiliary pod which writes the file there.
|
// starting and auxiliary pod which writes the file there.
|
||||||
// The volume must be writable.
|
// The volume must be writable.
|
||||||
func InjectHtml(client clientset.Interface, config VolumeTestConfig, volume v1.VolumeSource, content string) {
|
func InjectHtml(client clientset.Interface, config VolumeTestConfig, fsGroup *int64, volume v1.VolumeSource, content string) {
|
||||||
By(fmt.Sprint("starting ", config.Prefix, " injector"))
|
By(fmt.Sprint("starting ", config.Prefix, " injector"))
|
||||||
podClient := client.CoreV1().Pods(config.Namespace)
|
podClient := client.CoreV1().Pods(config.Namespace)
|
||||||
podName := fmt.Sprintf("%s-injector-%s", config.Prefix, rand.String(4))
|
podName := fmt.Sprintf("%s-injector-%s", config.Prefix, rand.String(4))
|
||||||
|
@ -523,6 +523,9 @@ func InjectHtml(client clientset.Interface, config VolumeTestConfig, volume v1.V
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
SecurityContext: &v1.PodSecurityContext{
|
||||||
|
FSGroup: fsGroup,
|
||||||
|
},
|
||||||
RestartPolicy: v1.RestartPolicyNever,
|
RestartPolicy: v1.RestartPolicyNever,
|
||||||
Volumes: []v1.Volume{
|
Volumes: []v1.Volume{
|
||||||
{
|
{
|
||||||
|
@ -537,8 +540,6 @@ func InjectHtml(client clientset.Interface, config VolumeTestConfig, volume v1.V
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
podClient.Delete(podName, nil)
|
podClient.Delete(podName, nil)
|
||||||
err := waitForPodNotFoundInNamespace(client, podName, injectPod.Namespace, PodDeleteTimeout)
|
|
||||||
ExpectNoError(err)
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
injectPod, err := podClient.Create(injectPod)
|
injectPod, err := podClient.Create(injectPod)
|
||||||
|
|
|
@ -148,12 +148,16 @@ func (t *volumesTestSuite) defineTests(driver TestDriver, pattern testpatterns.T
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
config := convertTestConfig(l.config)
|
config := convertTestConfig(l.config)
|
||||||
framework.InjectHtml(f.ClientSet, config, tests[0].Volume, tests[0].ExpectedContent)
|
|
||||||
var fsGroup *int64
|
var fsGroup *int64
|
||||||
if dInfo.Capabilities[CapFsGroup] {
|
if dInfo.Capabilities[CapFsGroup] {
|
||||||
fsGroupVal := int64(1234)
|
fsGroupVal := int64(1234)
|
||||||
fsGroup = &fsGroupVal
|
fsGroup = &fsGroupVal
|
||||||
}
|
}
|
||||||
|
// We set same fsGroup for both pods, because for same volumes (e.g.
|
||||||
|
// local), plugin skips setting fsGroup if volume is already mounted
|
||||||
|
// and we don't have reliable way to detect volumes are unmounted or
|
||||||
|
// not before starting the second pod.
|
||||||
|
framework.InjectHtml(f.ClientSet, config, fsGroup, tests[0].Volume, tests[0].ExpectedContent)
|
||||||
framework.TestVolumeClient(f.ClientSet, config, fsGroup, pattern.FsType, tests)
|
framework.TestVolumeClient(f.ClientSet, config, fsGroup, pattern.FsType, tests)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue