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
d0249aac
Commit
d0249aac
authored
May 27, 2015
by
Tim Hockin
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #8133 from markturansky/iscsi_pv2
added ISCSI volume plugin to PersistentVolumeSource
parents
b76dd0e5
63ddfa53
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
76 additions
and
1 deletion
+76
-1
types.go
pkg/api/types.go
+3
-0
conversion_generated.go
pkg/api/v1/conversion_generated.go
+16
-0
types.go
pkg/api/v1/types.go
+3
-0
types.go
pkg/api/v1beta1/types.go
+3
-0
types.go
pkg/api/v1beta2/types.go
+3
-0
conversion_generated.go
pkg/api/v1beta3/conversion_generated.go
+16
-0
types.go
pkg/api/v1beta3/types.go
+3
-0
validation.go
pkg/api/validation/validation.go
+4
-0
iscsi.go
pkg/volume/iscsi/iscsi.go
+3
-1
iscsi_test.go
pkg/volume/iscsi/iscsi_test.go
+22
-0
No files found.
pkg/api/types.go
View file @
d0249aac
...
...
@@ -228,6 +228,9 @@ type PersistentVolumeSource struct {
NFS
*
NFSVolumeSource
`json:"nfs"`
// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime
RBD
*
RBDVolumeSource
`json:"rbd"`
// ISCSIVolumeSource represents an ISCSI resource that is attached to a
// kubelet's host machine and then exposed to the pod.
ISCSI
*
ISCSIVolumeSource
`json:"iscsi"`
}
type
PersistentVolumeClaimVolumeSource
struct
{
...
...
pkg/api/v1/conversion_generated.go
View file @
d0249aac
...
...
@@ -1311,6 +1311,14 @@ func convert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *api.Per
}
else
{
out
.
RBD
=
nil
}
if
in
.
ISCSI
!=
nil
{
out
.
ISCSI
=
new
(
ISCSIVolumeSource
)
if
err
:=
convert_api_ISCSIVolumeSource_To_v1_ISCSIVolumeSource
(
in
.
ISCSI
,
out
.
ISCSI
,
s
);
err
!=
nil
{
return
err
}
}
else
{
out
.
ISCSI
=
nil
}
return
nil
}
...
...
@@ -3567,6 +3575,14 @@ func convert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource(in *Persist
}
else
{
out
.
RBD
=
nil
}
if
in
.
ISCSI
!=
nil
{
out
.
ISCSI
=
new
(
api
.
ISCSIVolumeSource
)
if
err
:=
convert_v1_ISCSIVolumeSource_To_api_ISCSIVolumeSource
(
in
.
ISCSI
,
out
.
ISCSI
,
s
);
err
!=
nil
{
return
err
}
}
else
{
out
.
ISCSI
=
nil
}
return
nil
}
...
...
pkg/api/v1/types.go
View file @
d0249aac
...
...
@@ -253,6 +253,9 @@ type PersistentVolumeSource struct {
NFS
*
NFSVolumeSource
`json:"nfs,omitempty" description:"NFS volume resource provisioned by an admin"`
// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime
RBD
*
RBDVolumeSource
`json:"rbd" description:"rados block volume that will be mounted on the host machine"`
// ISCSI represents an ISCSI Disk resource that is attached to a
// kubelet's host machine and then exposed to the pod.
ISCSI
*
ISCSIVolumeSource
`json:"iscsi" description:"an iSCSI disk resource provisioned by an admin"`
}
type
PersistentVolume
struct
{
...
...
pkg/api/v1beta1/types.go
View file @
d0249aac
...
...
@@ -156,6 +156,9 @@ type PersistentVolumeSource struct {
NFS
*
NFSVolumeSource
`json:"nfs" description:"NFS volume resource provisioned by an admin"`
// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime
RBD
*
RBDVolumeSource
`json:"rbd" description:"rados block volume that will be mounted on the host machine"`
// ISCSI represents an ISCSI Disk resource that is attached to a
// kubelet's host machine and then exposed to the pod.
ISCSI
*
ISCSIVolumeSource
`json:"iscsi" description:"an iSCSI disk resource provisioned by an admin"`
}
type
PersistentVolumeClaimVolumeSource
struct
{
...
...
pkg/api/v1beta2/types.go
View file @
d0249aac
...
...
@@ -113,6 +113,9 @@ type PersistentVolumeSource struct {
NFS
*
NFSVolumeSource
`json:"nfs" description:"NFS volume resource provisioned by an admin"`
// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime
RBD
*
RBDVolumeSource
`json:"rbd" description:"rados block volume that will be mounted on the host machine"`
// ISCSI represents an ISCSI Disk resource that is attached to a
// kubelet's host machine and then exposed to the pod.
ISCSI
*
ISCSIVolumeSource
`json:"iscsi" description:"an iSCSI disk resource provisioned by an admin"`
}
type
PersistentVolumeClaimVolumeSource
struct
{
...
...
pkg/api/v1beta3/conversion_generated.go
View file @
d0249aac
...
...
@@ -1218,6 +1218,14 @@ func convert_api_PersistentVolumeSource_To_v1beta3_PersistentVolumeSource(in *ap
}
else
{
out
.
RBD
=
nil
}
if
in
.
ISCSI
!=
nil
{
out
.
ISCSI
=
new
(
ISCSIVolumeSource
)
if
err
:=
convert_api_ISCSIVolumeSource_To_v1beta3_ISCSIVolumeSource
(
in
.
ISCSI
,
out
.
ISCSI
,
s
);
err
!=
nil
{
return
err
}
}
else
{
out
.
ISCSI
=
nil
}
return
nil
}
...
...
@@ -3407,6 +3415,14 @@ func convert_v1beta3_PersistentVolumeSource_To_api_PersistentVolumeSource(in *Pe
}
else
{
out
.
RBD
=
nil
}
if
in
.
ISCSI
!=
nil
{
out
.
ISCSI
=
new
(
api
.
ISCSIVolumeSource
)
if
err
:=
convert_v1beta3_ISCSIVolumeSource_To_api_ISCSIVolumeSource
(
in
.
ISCSI
,
out
.
ISCSI
,
s
);
err
!=
nil
{
return
err
}
}
else
{
out
.
ISCSI
=
nil
}
return
nil
}
...
...
pkg/api/v1beta3/types.go
View file @
d0249aac
...
...
@@ -253,6 +253,9 @@ type PersistentVolumeSource struct {
NFS
*
NFSVolumeSource
`json:"nfs,omitempty" description:"NFS volume resource provisioned by an admin"`
// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime
RBD
*
RBDVolumeSource
`json:"rbd" description:"rados block volume that will be mounted on the host machine"`
// ISCSI represents an ISCSI Disk resource that is attached to a
// kubelet's host machine and then exposed to the pod.
ISCSI
*
ISCSIVolumeSource
`json:"iscsi" description:"an iSCSI disk resource provisioned by an admin"`
}
type
PersistentVolume
struct
{
...
...
pkg/api/validation/validation.go
View file @
d0249aac
...
...
@@ -518,6 +518,10 @@ func ValidatePersistentVolume(pv *api.PersistentVolume) errs.ValidationErrorList
numVolumes
++
allErrs
=
append
(
allErrs
,
validateRBD
(
pv
.
Spec
.
RBD
)
.
Prefix
(
"rbd"
)
...
)
}
if
pv
.
Spec
.
ISCSI
!=
nil
{
numVolumes
++
allErrs
=
append
(
allErrs
,
validateISCSIVolumeSource
(
pv
.
Spec
.
ISCSI
)
.
Prefix
(
"iscsi"
)
...
)
}
if
numVolumes
!=
1
{
allErrs
=
append
(
allErrs
,
errs
.
NewFieldInvalid
(
""
,
pv
.
Spec
.
PersistentVolumeSource
,
"exactly 1 volume type is required"
))
}
...
...
pkg/volume/iscsi/iscsi.go
View file @
d0249aac
...
...
@@ -53,9 +53,11 @@ func (plugin *ISCSIPlugin) Name() string {
}
func
(
plugin
*
ISCSIPlugin
)
CanSupport
(
spec
*
volume
.
Spec
)
bool
{
if
spec
.
VolumeSource
.
ISCSI
==
nil
{
if
spec
.
VolumeSource
.
ISCSI
==
nil
&&
spec
.
PersistentVolumeSource
.
ISCSI
==
nil
{
return
false
}
// TODO: turn this into a func so CanSupport can be unit tested without
// having to make system calls
// see if iscsiadm is there
_
,
err
:=
plugin
.
execCommand
(
"iscsiadm"
,
[]
string
{
"-h"
})
if
err
==
nil
{
...
...
pkg/volume/iscsi/iscsi_test.go
View file @
d0249aac
...
...
@@ -39,6 +39,28 @@ func TestCanSupport(t *testing.T) {
}
}
func
TestGetAccessModes
(
t
*
testing
.
T
)
{
plugMgr
:=
volume
.
VolumePluginMgr
{}
plugMgr
.
InitPlugins
(
ProbeVolumePlugins
(),
volume
.
NewFakeVolumeHost
(
"/tmp/fake"
,
nil
,
nil
))
plug
,
err
:=
plugMgr
.
FindPersistentPluginByName
(
"kubernetes.io/iscsi"
)
if
err
!=
nil
{
t
.
Errorf
(
"Can't find the plugin by name"
)
}
if
!
contains
(
plug
.
GetAccessModes
(),
api
.
ReadWriteOnce
)
||
!
contains
(
plug
.
GetAccessModes
(),
api
.
ReadOnlyMany
)
{
t
.
Errorf
(
"Expected two AccessModeTypes: %s and %s"
,
api
.
ReadWriteOnce
,
api
.
ReadOnlyMany
)
}
}
func
contains
(
modes
[]
api
.
PersistentVolumeAccessMode
,
mode
api
.
PersistentVolumeAccessMode
)
bool
{
for
_
,
m
:=
range
modes
{
if
m
==
mode
{
return
true
}
}
return
false
}
type
fakeDiskManager
struct
{
attachCalled
bool
detachCalled
bool
...
...
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