Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
6355186c
Commit
6355186c
authored
Nov 08, 2018
by
Cheng Pan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add In-tree to CSI migration logic for Mount and Unmount
parent
2de487c9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
5 deletions
+38
-5
.import-restrictions
pkg/controller/.import-restrictions
+2
-0
operation_generator.go
pkg/volume/util/operationexecutor/operation_generator.go
+36
-5
No files found.
pkg/controller/.import-restrictions
View file @
6355186c
...
...
@@ -265,6 +265,7 @@
"k8s.io/csi-api/pkg/client/clientset/versioned",
"k8s.io/csi-api/pkg/client/listers/csi/v1alpha1",
"k8s.io/csi-api/pkg/client/informers/externalversions",
"k8s.io/csi-api/pkg/client/informers/externalversions/csi/v1alpha1",
"k8s.io/heapster/metrics/api/v1/types",
"k8s.io/kube-controller-manager/config/v1alpha1",
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta2",
...
...
@@ -291,6 +292,7 @@
"golang.org/x/time/rate",
"golang.org/x/sys/unix",
"golang.org/x/oauth2",
"golang.org/x/net/context",
"google.golang.org/api/compute/v1",
"google.golang.org/api/googleapi",
"google.golang.org/api/compute/v0.alpha",
...
...
pkg/volume/util/operationexecutor/operation_generator.go
View file @
6355186c
...
...
@@ -514,6 +514,17 @@ func (og *operationGenerator) GenerateMountVolumeFunc(
}
mountVolumeFunc
:=
func
()
(
error
,
error
)
{
originalSpec
:=
volumeToMount
.
VolumeSpec
// Get mounter plugin
if
useCSIPlugin
(
og
.
volumePluginMgr
,
volumeToMount
.
VolumeSpec
)
{
csiSpec
,
err
:=
translateSpec
(
volumeToMount
.
VolumeSpec
)
if
err
!=
nil
{
return
volumeToMount
.
GenerateError
(
"MountVolume.TranslateSpec failed"
,
err
)
}
volumeToMount
.
VolumeSpec
=
csiSpec
}
volumePlugin
,
err
:=
og
.
volumePluginMgr
.
FindPluginBySpec
(
volumeToMount
.
VolumeSpec
)
if
err
!=
nil
||
volumePlugin
==
nil
{
return
volumeToMount
.
GenerateError
(
"MountVolume.FindPluginBySpec failed"
,
err
)
}
...
...
@@ -643,7 +654,7 @@ func (og *operationGenerator) GenerateMountVolumeFunc(
nil
,
volumeToMount
.
OuterVolumeSpecName
,
volumeToMount
.
VolumeGidValue
,
volumeToMount
.
Volume
Spec
)
original
Spec
)
if
markVolMountedErr
!=
nil
{
// On failure, return error. Caller will log and retry.
return
volumeToMount
.
GenerateError
(
"MountVolume.MarkVolumeAsMounted failed"
,
markVolMountedErr
)
...
...
@@ -719,13 +730,19 @@ func (og *operationGenerator) GenerateUnmountVolumeFunc(
volumeToUnmount
MountedVolume
,
actualStateOfWorld
ActualStateOfWorldMounterUpdater
,
podsDir
string
)
(
volumetypes
.
GeneratedOperations
,
error
)
{
var
pluginName
string
if
useCSIPlugin
(
og
.
volumePluginMgr
,
volumeToUnmount
.
VolumeSpec
)
{
pluginName
=
csi
.
CSIPluginName
}
else
{
pluginName
=
volumeToUnmount
.
PluginName
}
// Get mountable plugin
volumePlugin
,
err
:=
og
.
volumePluginMgr
.
FindPluginByName
(
volumeToUnmount
.
PluginName
)
volumePlugin
,
err
:=
og
.
volumePluginMgr
.
FindPluginByName
(
pluginName
)
if
err
!=
nil
||
volumePlugin
==
nil
{
return
volumetypes
.
GeneratedOperations
{},
volumeToUnmount
.
GenerateErrorDetailed
(
"UnmountVolume.FindPluginByName failed"
,
err
)
}
volumeUnmounter
,
newUnmounterErr
:=
volumePlugin
.
NewUnmounter
(
volumeToUnmount
.
InnerVolumeSpecName
,
volumeToUnmount
.
PodUID
)
if
newUnmounterErr
!=
nil
{
...
...
@@ -780,12 +797,26 @@ func (og *operationGenerator) GenerateUnmountDeviceFunc(
deviceToDetach
AttachedVolume
,
actualStateOfWorld
ActualStateOfWorldMounterUpdater
,
mounter
mount
.
Interface
)
(
volumetypes
.
GeneratedOperations
,
error
)
{
var
pluginName
string
if
useCSIPlugin
(
og
.
volumePluginMgr
,
deviceToDetach
.
VolumeSpec
)
{
pluginName
=
csi
.
CSIPluginName
csiSpec
,
err
:=
translateSpec
(
deviceToDetach
.
VolumeSpec
)
if
err
!=
nil
{
return
volumetypes
.
GeneratedOperations
{},
deviceToDetach
.
GenerateErrorDetailed
(
"UnmountDevice.TranslateSpec failed"
,
err
)
}
deviceToDetach
.
VolumeSpec
=
csiSpec
}
else
{
pluginName
=
deviceToDetach
.
PluginName
}
// Get DeviceMounter plugin
deviceMountableVolumePlugin
,
err
:=
og
.
volumePluginMgr
.
FindDeviceMountablePluginByName
(
deviceToDetach
.
P
luginName
)
og
.
volumePluginMgr
.
FindDeviceMountablePluginByName
(
p
luginName
)
if
err
!=
nil
||
deviceMountableVolumePlugin
==
nil
{
return
volumetypes
.
GeneratedOperations
{},
deviceToDetach
.
GenerateErrorDetailed
(
"UnmountDevice.FindDeviceMountablePluginByName failed"
,
err
)
}
volumeDeviceUmounter
,
err
:=
deviceMountableVolumePlugin
.
NewDeviceUnmounter
()
if
err
!=
nil
{
return
volumetypes
.
GeneratedOperations
{},
deviceToDetach
.
GenerateErrorDetailed
(
"UnmountDevice.NewDeviceUmounter failed"
,
err
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment