Skip to content

Commit 83a9db5

Browse files
committed
Support more volume types in stats/summary endpoint including configmap, secret, projected
1 parent 3905fb6 commit 83a9db5

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
@@ -49,6 +49,10 @@ type downwardAPIPlugin struct {
4949

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

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

9397
func (plugin *downwardAPIPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error) {
9498
v := &downwardAPIVolume{
95-
volName: spec.Name(),
96-
items: spec.Volume.DownwardAPI.Items,
97-
pod: pod,
98-
podUID: pod.UID,
99-
plugin: plugin,
99+
volName: spec.Name(),
100+
items: spec.Volume.DownwardAPI.Items,
101+
pod: pod,
102+
podUID: pod.UID,
103+
plugin: plugin,
104+
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
100105
}
101106
return &downwardAPIVolumeMounter{
102107
downwardAPIVolume: v,
@@ -108,9 +113,10 @@ func (plugin *downwardAPIPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts
108113
func (plugin *downwardAPIPlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error) {
109114
return &downwardAPIVolumeUnmounter{
110115
&downwardAPIVolume{
111-
volName: volName,
112-
podUID: podUID,
113-
plugin: plugin,
116+
volName: volName,
117+
podUID: podUID,
118+
plugin: plugin,
119+
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
114120
},
115121
}, nil
116122
}
@@ -132,7 +138,7 @@ type downwardAPIVolume struct {
132138
pod *v1.Pod
133139
podUID types.UID // TODO: remove this redundancy as soon NewUnmounter func will have *v1.POD and not only types.UID
134140
plugin *downwardAPIPlugin
135-
volume.MetricsNil
141+
volume.MetricsProvider
136142
}
137143

138144
// 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
@@ -109,10 +109,11 @@ func (plugin *projectedPlugin) SupportsBulkVolumeVerification() bool {
109109
func (plugin *projectedPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error) {
110110
return &projectedVolumeMounter{
111111
projectedVolume: &projectedVolume{
112-
volName: spec.Name(),
113-
sources: spec.Volume.Projected.Sources,
114-
podUID: pod.UID,
115-
plugin: plugin,
112+
volName: spec.Name(),
113+
sources: spec.Volume.Projected.Sources,
114+
podUID: pod.UID,
115+
plugin: plugin,
116+
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
116117
},
117118
source: *spec.Volume.Projected,
118119
pod: pod,
@@ -123,9 +124,10 @@ func (plugin *projectedPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
123124
func (plugin *projectedPlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error) {
124125
return &projectedVolumeUnmounter{
125126
&projectedVolume{
126-
volName: volName,
127-
podUID: podUID,
128-
plugin: plugin,
127+
volName: volName,
128+
podUID: podUID,
129+
plugin: plugin,
130+
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
129131
},
130132
}, nil
131133
}
@@ -146,7 +148,7 @@ type projectedVolume struct {
146148
sources []v1.VolumeProjection
147149
podUID types.UID
148150
plugin *projectedPlugin
149-
volume.MetricsNil
151+
volume.MetricsProvider
150152
}
151153

152154
var _ volume.Volume = &projectedVolume{}

0 commit comments

Comments
 (0)