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