mirror of https://github.com/k3s-io/k3s
Support more volume types in stats/summary endpoint including configmap, secret, projected
parent
3905fb6696
commit
83a9db5148
|
@ -47,6 +47,10 @@ type configMapPlugin struct {
|
|||
|
||||
var _ volume.VolumePlugin = &configMapPlugin{}
|
||||
|
||||
func getPath(uid types.UID, volName string, host volume.VolumeHost) string {
|
||||
return host.GetPodVolumeDir(uid, strings.EscapeQualifiedNameForDisk(configMapPluginName), volName)
|
||||
}
|
||||
|
||||
func (plugin *configMapPlugin) Init(host volume.VolumeHost) error {
|
||||
plugin.host = host
|
||||
plugin.getConfigMap = host.GetConfigMapFunc()
|
||||
|
@ -92,7 +96,7 @@ func (plugin *configMapPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
|
|||
pod.UID,
|
||||
plugin,
|
||||
plugin.host.GetMounter(plugin.GetPluginName()),
|
||||
volume.MetricsNil{},
|
||||
volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
|
||||
},
|
||||
source: *spec.Volume.ConfigMap,
|
||||
pod: *pod,
|
||||
|
@ -108,7 +112,7 @@ func (plugin *configMapPlugin) NewUnmounter(volName string, podUID types.UID) (v
|
|||
podUID,
|
||||
plugin,
|
||||
plugin.host.GetMounter(plugin.GetPluginName()),
|
||||
volume.MetricsNil{},
|
||||
volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
@ -128,7 +132,7 @@ type configMapVolume struct {
|
|||
podUID types.UID
|
||||
plugin *configMapPlugin
|
||||
mounter mount.Interface
|
||||
volume.MetricsNil
|
||||
volume.MetricsProvider
|
||||
}
|
||||
|
||||
var _ volume.Volume = &configMapVolume{}
|
||||
|
|
|
@ -49,6 +49,10 @@ type downwardAPIPlugin struct {
|
|||
|
||||
var _ volume.VolumePlugin = &downwardAPIPlugin{}
|
||||
|
||||
func getPath(uid types.UID, volName string, host volume.VolumeHost) string {
|
||||
return host.GetPodVolumeDir(uid, utilstrings.EscapeQualifiedNameForDisk(downwardAPIPluginName), volName)
|
||||
}
|
||||
|
||||
func wrappedVolumeSpec() volume.Spec {
|
||||
return volume.Spec{
|
||||
Volume: &v1.Volume{VolumeSource: v1.VolumeSource{EmptyDir: &v1.EmptyDirVolumeSource{Medium: v1.StorageMediumMemory}}},
|
||||
|
@ -92,11 +96,12 @@ func (plugin *downwardAPIPlugin) SupportsBulkVolumeVerification() bool {
|
|||
|
||||
func (plugin *downwardAPIPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error) {
|
||||
v := &downwardAPIVolume{
|
||||
volName: spec.Name(),
|
||||
items: spec.Volume.DownwardAPI.Items,
|
||||
pod: pod,
|
||||
podUID: pod.UID,
|
||||
plugin: plugin,
|
||||
volName: spec.Name(),
|
||||
items: spec.Volume.DownwardAPI.Items,
|
||||
pod: pod,
|
||||
podUID: pod.UID,
|
||||
plugin: plugin,
|
||||
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
|
||||
}
|
||||
return &downwardAPIVolumeMounter{
|
||||
downwardAPIVolume: v,
|
||||
|
@ -108,9 +113,10 @@ func (plugin *downwardAPIPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts
|
|||
func (plugin *downwardAPIPlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error) {
|
||||
return &downwardAPIVolumeUnmounter{
|
||||
&downwardAPIVolume{
|
||||
volName: volName,
|
||||
podUID: podUID,
|
||||
plugin: plugin,
|
||||
volName: volName,
|
||||
podUID: podUID,
|
||||
plugin: plugin,
|
||||
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
@ -132,7 +138,7 @@ type downwardAPIVolume struct {
|
|||
pod *v1.Pod
|
||||
podUID types.UID // TODO: remove this redundancy as soon NewUnmounter func will have *v1.POD and not only types.UID
|
||||
plugin *downwardAPIPlugin
|
||||
volume.MetricsNil
|
||||
volume.MetricsProvider
|
||||
}
|
||||
|
||||
// downwardAPIVolumeMounter fetches info from downward API from the pod
|
||||
|
|
|
@ -109,10 +109,11 @@ func (plugin *projectedPlugin) SupportsBulkVolumeVerification() bool {
|
|||
func (plugin *projectedPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error) {
|
||||
return &projectedVolumeMounter{
|
||||
projectedVolume: &projectedVolume{
|
||||
volName: spec.Name(),
|
||||
sources: spec.Volume.Projected.Sources,
|
||||
podUID: pod.UID,
|
||||
plugin: plugin,
|
||||
volName: spec.Name(),
|
||||
sources: spec.Volume.Projected.Sources,
|
||||
podUID: pod.UID,
|
||||
plugin: plugin,
|
||||
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
|
||||
},
|
||||
source: *spec.Volume.Projected,
|
||||
pod: pod,
|
||||
|
@ -123,9 +124,10 @@ func (plugin *projectedPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
|
|||
func (plugin *projectedPlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error) {
|
||||
return &projectedVolumeUnmounter{
|
||||
&projectedVolume{
|
||||
volName: volName,
|
||||
podUID: podUID,
|
||||
plugin: plugin,
|
||||
volName: volName,
|
||||
podUID: podUID,
|
||||
plugin: plugin,
|
||||
MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
@ -146,7 +148,7 @@ type projectedVolume struct {
|
|||
sources []v1.VolumeProjection
|
||||
podUID types.UID
|
||||
plugin *projectedPlugin
|
||||
volume.MetricsNil
|
||||
volume.MetricsProvider
|
||||
}
|
||||
|
||||
var _ volume.Volume = &projectedVolume{}
|
||||
|
|
Loading…
Reference in New Issue