Skip to content

Commit 13985d2

Browse files
authored
Merge pull request kubernetes#70172 from WanLinghao/configmap_volume_support_monitor
Support more volume types in stats/summary endpoint including configm…
2 parents b18660e + 83a9db5 commit 13985d2

File tree

3 files changed

+32
-20
lines changed

3 files changed

+32
-20
lines changed

pkg/volume/configmap/configmap.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ type configMapPlugin struct {
4747

4848
var _ volume.VolumePlugin = &configMapPlugin{}
4949

50+
func getPath(uid types.UID, volName string, host volume.VolumeHost) string {
51+
return host.GetPodVolumeDir(uid, strings.EscapeQualifiedNameForDisk(configMapPluginName), volName)
52+
}
53+
5054
func (plugin *configMapPlugin) Init(host volume.VolumeHost) error {
5155
plugin.host = host
5256
plugin.getConfigMap = host.GetConfigMapFunc()
@@ -92,7 +96,7 @@ func (plugin *configMapPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
9296
pod.UID,
9397
plugin,
9498
plugin.host.GetMounter(plugin.GetPluginName()),
95-
volume.MetricsNil{},
99+
volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
96100
},
97101
source: *spec.Volume.ConfigMap,
98102
pod: *pod,
@@ -108,7 +112,7 @@ func (plugin *configMapPlugin) NewUnmounter(volName string, podUID types.UID) (v
108112
podUID,
109113
plugin,
110114
plugin.host.GetMounter(plugin.GetPluginName()),
111-
volume.MetricsNil{},
115+
volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
112116
},
113117
}, nil
114118
}
@@ -128,7 +132,7 @@ type configMapVolume struct {
128132
podUID types.UID
129133
plugin *configMapPlugin
130134
mounter mount.Interface
131-
volume.MetricsNil
135+
volume.MetricsProvider
132136
}
133137

134138
var _ volume.Volume = &configMapVolume{}

pkg/volume/downwardapi/downwardapi.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ type downwardAPIPlugin struct {
4848

4949
var _ volume.VolumePlugin = &downwardAPIPlugin{}
5050

51+
func getPath(uid types.UID, volName string, host volume.VolumeHost) string {
52+
return host.GetPodVolumeDir(uid, utilstrings.EscapeQualifiedNameForDisk(downwardAPIPluginName), volName)
53+
}
54+
5155
func wrappedVolumeSpec() volume.Spec {
5256
return volume.Spec{
5357
Volume: &v1.Volume{VolumeSource: v1.VolumeSource{EmptyDir: &v1.EmptyDirVolumeSource{Medium: v1.StorageMediumMemory}}},
@@ -91,11 +95,12 @@ func (plugin *downwardAPIPlugin) SupportsBulkVolumeVerification() bool {
9195

9296
func (plugin *downwardAPIPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error) {
9397
v := &downwardAPIVolume{
94-
volName: spec.Name(),
95-
items: spec.Volume.DownwardAPI.Items,
96-
pod: pod,
97-
podUID: pod.UID,
98-
plugin: plugin,
98+
volName: spec.Name(),
99+
items: spec.Volume.DownwardAPI.Items,
100+
pod: pod,
101+
podUID: pod.UID,
102+
plugin: plugin,
103+
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
99104
}
100105
return &downwardAPIVolumeMounter{
101106
downwardAPIVolume: v,
@@ -107,9 +112,10 @@ func (plugin *downwardAPIPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts
107112
func (plugin *downwardAPIPlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error) {
108113
return &downwardAPIVolumeUnmounter{
109114
&downwardAPIVolume{
110-
volName: volName,
111-
podUID: podUID,
112-
plugin: plugin,
115+
volName: volName,
116+
podUID: podUID,
117+
plugin: plugin,
118+
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
113119
},
114120
}, nil
115121
}
@@ -131,7 +137,7 @@ type downwardAPIVolume struct {
131137
pod *v1.Pod
132138
podUID types.UID // TODO: remove this redundancy as soon NewUnmounter func will have *v1.POD and not only types.UID
133139
plugin *downwardAPIPlugin
134-
volume.MetricsNil
140+
volume.MetricsProvider
135141
}
136142

137143
// downwardAPIVolumeMounter fetches info from downward API from the pod

pkg/volume/projected/projected.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,11 @@ func (plugin *projectedPlugin) SupportsBulkVolumeVerification() bool {
111111
func (plugin *projectedPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error) {
112112
return &projectedVolumeMounter{
113113
projectedVolume: &projectedVolume{
114-
volName: spec.Name(),
115-
sources: spec.Volume.Projected.Sources,
116-
podUID: pod.UID,
117-
plugin: plugin,
114+
volName: spec.Name(),
115+
sources: spec.Volume.Projected.Sources,
116+
podUID: pod.UID,
117+
plugin: plugin,
118+
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
118119
},
119120
source: *spec.Volume.Projected,
120121
pod: pod,
@@ -125,9 +126,10 @@ func (plugin *projectedPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
125126
func (plugin *projectedPlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error) {
126127
return &projectedVolumeUnmounter{
127128
&projectedVolume{
128-
volName: volName,
129-
podUID: podUID,
130-
plugin: plugin,
129+
volName: volName,
130+
podUID: podUID,
131+
plugin: plugin,
132+
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
131133
},
132134
}, nil
133135
}
@@ -148,7 +150,7 @@ type projectedVolume struct {
148150
sources []v1.VolumeProjection
149151
podUID types.UID
150152
plugin *projectedPlugin
151-
volume.MetricsNil
153+
volume.MetricsProvider
152154
}
153155

154156
var _ volume.Volume = &projectedVolume{}

0 commit comments

Comments
 (0)