Squashed commit of the following:

commit d623614de31fe411f1dcb1e784472135f3ca0c5e
Merge: 8054af3b303 91344b4008
Author: cvvz <ftdchenwz@gmail.com>
Date:   Mon Aug 28 18:43:49 2023 +0800

    Merge branch 'master' of https://github.com/kubernetes/kubernetes into fix-volumemanager-logs

commit 8054af3b303e10e7b74b1ba4d3c4035f488cbdad
Author: cvvz <ftdchenwz@gmail.com>
Date:   Fri Aug 25 22:03:08 2023 +0800

    fix

commit b414972831c4e4030162ee385d8f600e1e0257ac
Author: cvvz <ftdchenwz@gmail.com>
Date:   Fri Aug 25 21:41:36 2023 +0800

    fix

commit ebea00a8dd50eb3d8859a912b464bbda5548b1d4
Author: cvvz <ftdchenwz@gmail.com>
Date:   Fri Aug 25 20:54:40 2023 +0800

    123

commit 9f6f1dbbe717fa34e1c13fec645f4c474cbf99a0
Author: cvvz <ftdchenwz@gmail.com>
Date:   Fri Aug 25 20:53:16 2023 +0800

    add MarshalLog

commit d7d2878409343df937c770d6796f8c125e18ce7a
Author: cvvz <ftdchenwz@gmail.com>
Date:   Tue Aug 8 23:57:47 2023 +0800

    fix volumemanager logs
This commit is contained in:
cvvz 2023-08-28 18:44:40 +08:00
parent 91344b4008
commit 94d03ccc83

View File

@ -23,6 +23,7 @@ import (
"path/filepath"
"time"
"github.com/go-logr/logr"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
@ -37,6 +38,10 @@ import (
utilstrings "k8s.io/utils/strings"
)
var _ logr.Marshaler = podVolume{}
var _ logr.Marshaler = reconstructedVolume{}
var _ logr.Marshaler = globalVolumeInfo{}
type podVolume struct {
podName volumetypes.UniquePodName
volumeSpecName string
@ -45,6 +50,22 @@ type podVolume struct {
volumeMode v1.PersistentVolumeMode
}
func (p podVolume) MarshalLog() interface{} {
return struct {
PodName string `json:"podName"`
VolumeSpecName string `json:"volumeSpecName"`
VolumePath string `json:"volumePath"`
PluginName string `json:"pluginName"`
VolumeMode string `json:"volumeMode"`
}{
PodName: string(p.podName),
VolumeSpecName: p.volumeSpecName,
VolumePath: p.volumePath,
PluginName: p.pluginName,
VolumeMode: string(p.volumeMode),
}
}
type reconstructedVolume struct {
volumeName v1.UniqueVolumeName
podName volumetypes.UniquePodName
@ -59,6 +80,28 @@ type reconstructedVolume struct {
seLinuxMountContext string
}
func (rv reconstructedVolume) MarshalLog() interface{} {
return struct {
VolumeName string `json:"volumeName"`
PodName string `json:"podName"`
VolumeSpecName string `json:"volumeSpecName"`
OuterVolumeSpecName string `json:"outerVolumeSpecName"`
PodUID string `json:"podUID"`
VolumeGIDValue string `json:"volumeGIDValue"`
DevicePath string `json:"devicePath"`
SeLinuxMountContext string `json:"seLinuxMountContext"`
}{
VolumeName: string(rv.volumeName),
PodName: string(rv.podName),
VolumeSpecName: rv.volumeSpec.Name(),
OuterVolumeSpecName: rv.outerVolumeSpecName,
PodUID: string(rv.pod.UID),
VolumeGIDValue: rv.volumeGidValue,
DevicePath: rv.devicePath,
SeLinuxMountContext: rv.seLinuxMountContext,
}
}
// globalVolumeInfo stores reconstructed volume information
// for each pod that was using that volume.
type globalVolumeInfo struct {
@ -71,6 +114,25 @@ type globalVolumeInfo struct {
podVolumes map[volumetypes.UniquePodName]*reconstructedVolume
}
func (gvi globalVolumeInfo) MarshalLog() interface{} {
podVolumes := make(map[volumetypes.UniquePodName]v1.UniqueVolumeName)
for podName, volume := range gvi.podVolumes {
podVolumes[podName] = volume.volumeName
}
return struct {
VolumeName string `json:"volumeName"`
VolumeSpecName string `json:"volumeSpecName"`
DevicePath string `json:"devicePath"`
PodVolumes map[volumetypes.UniquePodName]v1.UniqueVolumeName `json:"podVolumes"`
}{
VolumeName: string(gvi.volumeName),
VolumeSpecName: gvi.volumeSpec.Name(),
DevicePath: gvi.devicePath,
PodVolumes: podVolumes,
}
}
func (rc *reconciler) updateLastSyncTime() {
rc.timeOfLastSyncLock.Lock()
defer rc.timeOfLastSyncLock.Unlock()
@ -181,7 +243,9 @@ func getVolumesFromPodDir(podDir string) ([]podVolume, error) {
}
}
}
klog.V(4).InfoS("Get volumes from pod directory", "path", podDir, "volumes", volumes)
for _, volume := range volumes {
klog.V(4).InfoS("Get volume from pod directory", "path", podDir, "volume", volume)
}
return volumes, nil
}