flexvol: remove a mount directory in a error case

flexVolumeMounter.SetUpAt creates a directory, where a volume has to be
mounted, and we have to remove this directory in error cases. Otherwise
we will see errors like this:

Orphaned pod 673b66d9-70f7-11e7-a5fa-525400307392 found, but volume paths are still present on disk

https://github.com/kubernetes/kubernetes/issues/49383
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
pull/6/head
Andrei Vagin 2017-07-25 08:15:55 +03:00 committed by Andrei Vagin
parent 12cc64252d
commit ad0ec2388f
1 changed files with 3 additions and 0 deletions

View File

@ -17,6 +17,7 @@ limitations under the License.
package flexvolume
import (
"os"
"strconv"
"k8s.io/kubernetes/pkg/util/mount"
@ -74,6 +75,7 @@ func (f *flexVolumeMounter) SetUpAt(dir string, fsGroup *int64) error {
// Extract secret and pass it as options.
if err := addSecretsToOptions(extraOptions, f.spec, f.podNamespace, f.driverName, f.plugin.host); err != nil {
os.Remove(dir)
return err
}
@ -90,6 +92,7 @@ func (f *flexVolumeMounter) SetUpAt(dir string, fsGroup *int64) error {
}
if err != nil {
os.Remove(dir)
return err
}