Skip to content

Commit 59701e6

Browse files
authored
Merge pull request #1235 from jimmyseto/add_iscsi_initiator_name_and_portals_to_pv
add iscsi initiator name to persistentvolume_info
2 parents 3faa773 + 2c8fe6e commit 59701e6

3 files changed

Lines changed: 42 additions & 10 deletions

File tree

docs/persistentvolume-metrics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
| kube_persistentvolume_capacity_bytes | Gauge | `persistentvolume`=<pv-name> | STABLE |
66
| kube_persistentvolume_status_phase | Gauge | `persistentvolume`=&lt;pv-name&gt; <br>`phase`=&lt;Bound\|Failed\|Pending\|Available\|Released&gt;| STABLE |
77
| kube_persistentvolume_labels | Gauge | `persistentvolume`=&lt;persistentvolume-name&gt; <br> `label_PERSISTENTVOLUME_LABEL`=&lt;PERSISTENTVOLUME_LABEL&gt; | STABLE |
8-
| kube_persistentvolume_info | Gauge | `persistentvolume`=&lt;pv-name&gt; <br> `storageclass`=&lt;storageclass-name&gt; <br> `gce_persistent_disk_name`=&lt;pd-name&gt; <br> `ebs_volume_id`=&lt;ebs-volume-id&gt; `fc_wwids`=&lt;fc-wwids-comma-separated&gt; <br> `fc_lun`=&lt;fc-lun&gt; <br> `fc_target_wwns`=&lt;fc-target-wwns-comma-separated&gt; <br> `iscsi_target_portal`=&lt;iscsi-target-portal&gt; <br> `iscsi_iqn`=&lt;iscsi-iqn&gt; <br> `iscsi_lun`=&lt;iscsi-lun&gt; <br> `nfs_server`=&lt;nfs-server&gt; <br> `nfs_path`=&lt;nfs-path&gt; | STABLE |
8+
| kube_persistentvolume_info | Gauge | `persistentvolume`=&lt;pv-name&gt; <br> `storageclass`=&lt;storageclass-name&gt; <br> `gce_persistent_disk_name`=&lt;pd-name&gt; <br> `ebs_volume_id`=&lt;ebs-volume-id&gt; <br> `fc_wwids`=&lt;fc-wwids-comma-separated&gt; <br> `fc_lun`=&lt;fc-lun&gt; <br> `fc_target_wwns`=&lt;fc-target-wwns-comma-separated&gt; <br> `iscsi_target_portal`=&lt;iscsi-target-portal&gt; <br> `iscsi_iqn`=&lt;iscsi-iqn&gt; <br> `iscsi_lun`=&lt;iscsi-lun&gt; <br> `iscsi_initiator_name`=&lt;iscsi-initiator-name&gt; <br> `nfs_server`=&lt;nfs-server&gt; <br> `nfs_path`=&lt;nfs-path&gt; | STABLE |
99

internal/store/persistentvolume.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ var (
108108
metric.Gauge,
109109
"",
110110
wrapPersistentVolumeFunc(func(p *v1.PersistentVolume) *metric.Family {
111-
var gcePDDiskName, ebsVolumeID, fcWWIDs, fcLun, fcTargetWWNs, iscsiTargetPortal, iscsiIQN, iscsiLun, nfsServer, nfsPath string
111+
var gcePDDiskName, ebsVolumeID, fcWWIDs, fcLun, fcTargetWWNs, iscsiTargetPortal, iscsiIQN, iscsiLun, iscsiInitiatorName, nfsServer, nfsPath string
112112

113113
switch {
114114
case p.Spec.PersistentVolumeSource.GCEPersistentDisk != nil:
@@ -135,6 +135,9 @@ var (
135135
iscsiTargetPortal = p.Spec.PersistentVolumeSource.ISCSI.TargetPortal
136136
iscsiIQN = p.Spec.PersistentVolumeSource.ISCSI.IQN
137137
iscsiLun = strconv.FormatInt(int64(p.Spec.PersistentVolumeSource.ISCSI.Lun), 10)
138+
if p.Spec.PersistentVolumeSource.ISCSI.InitiatorName != nil {
139+
iscsiInitiatorName = *p.Spec.PersistentVolumeSource.ISCSI.InitiatorName
140+
}
138141
case p.Spec.PersistentVolumeSource.NFS != nil:
139142
nfsServer = p.Spec.PersistentVolumeSource.NFS.Server
140143
nfsPath = p.Spec.PersistentVolumeSource.NFS.Path
@@ -153,6 +156,7 @@ var (
153156
"iscsi_target_portal",
154157
"iscsi_iqn",
155158
"iscsi_lun",
159+
"iscsi_initiator_name",
156160
"nfs_server",
157161
"nfs_path",
158162
},
@@ -166,6 +170,7 @@ var (
166170
iscsiTargetPortal,
167171
iscsiIQN,
168172
iscsiLun,
173+
iscsiInitiatorName,
169174
nfsServer,
170175
nfsPath,
171176
},

internal/store/persistentvolume_test.go

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
)
2828

2929
func TestPersistentVolumeStore(t *testing.T) {
30+
iscsiInitiatorName := "iqn.my.test.initiator:112233"
3031
cases := []generateMetricsTestCase{
3132
// Verify phase enumerations.
3233
{
@@ -169,7 +170,7 @@ func TestPersistentVolumeStore(t *testing.T) {
169170
Want: `
170171
# HELP kube_persistentvolume_info Information about persistentvolume.
171172
# TYPE kube_persistentvolume_info gauge
172-
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
173+
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_initiator_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
173174
`,
174175
MetricNames: []string{"kube_persistentvolume_info"},
175176
},
@@ -188,7 +189,7 @@ func TestPersistentVolumeStore(t *testing.T) {
188189
Want: `
189190
# HELP kube_persistentvolume_info Information about persistentvolume.
190191
# TYPE kube_persistentvolume_info gauge
191-
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
192+
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_initiator_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
192193
`,
193194
MetricNames: []string{"kube_persistentvolume_info"},
194195
},
@@ -211,7 +212,7 @@ func TestPersistentVolumeStore(t *testing.T) {
211212
Want: `
212213
# HELP kube_persistentvolume_info Information about persistentvolume.
213214
# TYPE kube_persistentvolume_info gauge
214-
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="name",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
215+
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="name",iscsi_initiator_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
215216
`,
216217
MetricNames: []string{"kube_persistentvolume_info"},
217218
},
@@ -234,7 +235,7 @@ func TestPersistentVolumeStore(t *testing.T) {
234235
Want: `
235236
# HELP kube_persistentvolume_info Information about persistentvolume.
236237
# TYPE kube_persistentvolume_info gauge
237-
kube_persistentvolume_info{ebs_volume_id="aws://eu-west-1c/vol-012d34d567890123b",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
238+
kube_persistentvolume_info{ebs_volume_id="aws://eu-west-1c/vol-012d34d567890123b",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_initiator_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
238239
`,
239240
MetricNames: []string{"kube_persistentvolume_info"},
240241
},
@@ -258,7 +259,7 @@ func TestPersistentVolumeStore(t *testing.T) {
258259
Want: `
259260
# HELP kube_persistentvolume_info Information about persistentvolume.
260261
# TYPE kube_persistentvolume_info gauge
261-
kube_persistentvolume_info{ebs_volume_id="",fc_lun="123",fc_target_wwns="0123456789abcdef,abcdef0123456789",fc_wwids="",gce_persistent_disk_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
262+
kube_persistentvolume_info{ebs_volume_id="",fc_lun="123",fc_target_wwns="0123456789abcdef,abcdef0123456789",fc_wwids="",gce_persistent_disk_name="",iscsi_initiator_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
262263
`,
263264
MetricNames: []string{"kube_persistentvolume_info"},
264265
},
@@ -281,7 +282,7 @@ func TestPersistentVolumeStore(t *testing.T) {
281282
Want: `
282283
# HELP kube_persistentvolume_info Information about persistentvolume.
283284
# TYPE kube_persistentvolume_info gauge
284-
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="0123456789abcdef,abcdef0123456789",gce_persistent_disk_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
285+
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="0123456789abcdef,abcdef0123456789",gce_persistent_disk_name="",iscsi_initiator_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
285286
`,
286287
MetricNames: []string{"kube_persistentvolume_info"},
287288
},
@@ -306,7 +307,33 @@ func TestPersistentVolumeStore(t *testing.T) {
306307
Want: `
307308
# HELP kube_persistentvolume_info Information about persistentvolume.
308309
# TYPE kube_persistentvolume_info gauge
309-
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_iqn="iqn.my.test.server.target00",iscsi_lun="123",iscsi_target_portal="1.2.3.4:3260",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
310+
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_initiator_name="",iscsi_iqn="iqn.my.test.server.target00",iscsi_lun="123",iscsi_target_portal="1.2.3.4:3260",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
311+
`,
312+
MetricNames: []string{"kube_persistentvolume_info"},
313+
},
314+
{
315+
Obj: &v1.PersistentVolume{
316+
Spec: v1.PersistentVolumeSpec{
317+
PersistentVolumeSource: v1.PersistentVolumeSource{
318+
ISCSI: &v1.ISCSIPersistentVolumeSource{
319+
TargetPortal: "1.2.3.4:3260",
320+
IQN: "iqn.my.test.server.target00",
321+
Lun: int32(123),
322+
InitiatorName: &iscsiInitiatorName,
323+
},
324+
},
325+
},
326+
ObjectMeta: metav1.ObjectMeta{
327+
Name: "test-pv-available",
328+
},
329+
Status: v1.PersistentVolumeStatus{
330+
Phase: v1.VolumeAvailable,
331+
},
332+
},
333+
Want: `
334+
# HELP kube_persistentvolume_info Information about persistentvolume.
335+
# TYPE kube_persistentvolume_info gauge
336+
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_initiator_name="iqn.my.test.initiator:112233",iscsi_iqn="iqn.my.test.server.target00",iscsi_lun="123",iscsi_target_portal="1.2.3.4:3260",nfs_path="",nfs_server="",persistentvolume="test-pv-available",storageclass=""} 1
310337
`,
311338
MetricNames: []string{"kube_persistentvolume_info"},
312339
},
@@ -330,7 +357,7 @@ func TestPersistentVolumeStore(t *testing.T) {
330357
Want: `
331358
# HELP kube_persistentvolume_info Information about persistentvolume.
332359
# TYPE kube_persistentvolume_info gauge
333-
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="/myPath",nfs_server="1.2.3.4",persistentvolume="test-pv-available",storageclass=""} 1
360+
kube_persistentvolume_info{ebs_volume_id="",fc_lun="",fc_target_wwns="",fc_wwids="",gce_persistent_disk_name="",iscsi_initiator_name="",iscsi_iqn="",iscsi_lun="",iscsi_target_portal="",nfs_path="/myPath",nfs_server="1.2.3.4",persistentvolume="test-pv-available",storageclass=""} 1
334361
`,
335362
MetricNames: []string{"kube_persistentvolume_info"},
336363
},

0 commit comments

Comments
 (0)