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:
		| @@ -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 | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 cvvz
					cvvz