Merge pull request #127382 from bart0sh/PR158-dra-fix-golangci-lint-findings

Kubelet: DRA: fix golangci-lint findings
This commit is contained in:
Kubernetes Prow Robot 2024-09-17 04:59:14 +01:00 committed by GitHub
commit 048c8536d6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 26 additions and 17 deletions

View File

@ -115,12 +115,12 @@ func (info *ClaimInfo) isPrepared() bool {
func newClaimInfoCache(stateDir, checkpointName string) (*claimInfoCache, error) { func newClaimInfoCache(stateDir, checkpointName string) (*claimInfoCache, error) {
checkpointer, err := state.NewCheckpointer(stateDir, checkpointName) checkpointer, err := state.NewCheckpointer(stateDir, checkpointName)
if err != nil { if err != nil {
return nil, fmt.Errorf("could not initialize checkpoint manager, please drain node and remove dra state file, err: %+v", err) return nil, fmt.Errorf("could not initialize checkpoint manager, please drain node and remove dra state file, err: %w", err)
} }
checkpoint, err := checkpointer.GetOrCreate() checkpoint, err := checkpointer.GetOrCreate()
if err != nil { if err != nil {
return nil, fmt.Errorf("error calling GetOrCreate() on checkpoint state: %v", err) return nil, fmt.Errorf("error calling GetOrCreate() on checkpoint state: %w", err)
} }
cache := &claimInfoCache{ cache := &claimInfoCache{
@ -182,9 +182,9 @@ func (cache *claimInfoCache) delete(claimName, namespace string) {
// that is referenced by the pod with the given UID // that is referenced by the pod with the given UID
// This function is used indirectly by the status manager // This function is used indirectly by the status manager
// to check if pod can enter termination status // to check if pod can enter termination status
func (cache *claimInfoCache) hasPodReference(UID types.UID) bool { func (cache *claimInfoCache) hasPodReference(uid types.UID) bool {
for _, claimInfo := range cache.claimInfo { for _, claimInfo := range cache.claimInfo {
if claimInfo.hasPodReference(UID) { if claimInfo.hasPodReference(uid) {
return true return true
} }
} }

View File

@ -70,7 +70,7 @@ type ManagerImpl struct {
func NewManagerImpl(kubeClient clientset.Interface, stateFileDirectory string, nodeName types.NodeName) (*ManagerImpl, error) { func NewManagerImpl(kubeClient clientset.Interface, stateFileDirectory string, nodeName types.NodeName) (*ManagerImpl, error) {
claimInfoCache, err := newClaimInfoCache(stateFileDirectory, draManagerStateFileName) claimInfoCache, err := newClaimInfoCache(stateFileDirectory, draManagerStateFileName)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to create claimInfo cache: %+v", err) return nil, fmt.Errorf("failed to create claimInfo cache: %w", err)
} }
// TODO: for now the reconcile period is not configurable. // TODO: for now the reconcile period is not configurable.
@ -158,7 +158,7 @@ func (m *ManagerImpl) PrepareResources(ctx context.Context, pod *v1.Pod) error {
logger.V(3).Info("Processing resource", "pod", klog.KObj(pod), "podClaim", podClaim.Name) logger.V(3).Info("Processing resource", "pod", klog.KObj(pod), "podClaim", podClaim.Name)
claimName, mustCheckOwner, err := resourceclaim.Name(pod, podClaim) claimName, mustCheckOwner, err := resourceclaim.Name(pod, podClaim)
if err != nil { if err != nil {
return fmt.Errorf("prepare resource claim: %v", err) return fmt.Errorf("prepare resource claim: %w", err)
} }
if claimName == nil { if claimName == nil {
@ -172,7 +172,7 @@ func (m *ManagerImpl) PrepareResources(ctx context.Context, pod *v1.Pod) error {
*claimName, *claimName,
metav1.GetOptions{}) metav1.GetOptions{})
if err != nil { if err != nil {
return fmt.Errorf("failed to fetch ResourceClaim %s referenced by pod %s: %+v", *claimName, pod.Name, err) return fmt.Errorf("failed to fetch ResourceClaim %s referenced by pod %s: %w", *claimName, pod.Name, err)
} }
if mustCheckOwner { if mustCheckOwner {
@ -489,10 +489,10 @@ func (m *ManagerImpl) unprepareResources(ctx context.Context, podUID types.UID,
// PodMightNeedToUnprepareResources returns true if the pod might need to // PodMightNeedToUnprepareResources returns true if the pod might need to
// unprepare resources // unprepare resources
func (m *ManagerImpl) PodMightNeedToUnprepareResources(UID types.UID) bool { func (m *ManagerImpl) PodMightNeedToUnprepareResources(uid types.UID) bool {
m.cache.Lock() m.cache.Lock()
defer m.cache.Unlock() defer m.cache.Unlock()
return m.cache.hasPodReference(UID) return m.cache.hasPodReference(uid)
} }
// GetContainerClaimInfos gets Container's ClaimInfo // GetContainerClaimInfos gets Container's ClaimInfo

View File

@ -38,6 +38,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/fake"
"k8s.io/dynamic-resource-allocation/resourceclaim" "k8s.io/dynamic-resource-allocation/resourceclaim"
"k8s.io/klog/v2"
drapb "k8s.io/kubelet/pkg/apis/dra/v1alpha4" drapb "k8s.io/kubelet/pkg/apis/dra/v1alpha4"
"k8s.io/kubernetes/pkg/kubelet/cm/dra/plugin" "k8s.io/kubernetes/pkg/kubelet/cm/dra/plugin"
"k8s.io/kubernetes/pkg/kubelet/cm/dra/state" "k8s.io/kubernetes/pkg/kubelet/cm/dra/state"
@ -118,7 +119,7 @@ type fakeDRAServerInfo struct {
teardownFn tearDown teardownFn tearDown
} }
func setupFakeDRADriverGRPCServer(shouldTimeout bool, pluginClientTimeout *time.Duration, prepareResourcesResponse *drapb.NodePrepareResourcesResponse, unprepareResourcesResponse *drapb.NodeUnprepareResourcesResponse) (fakeDRAServerInfo, error) { func setupFakeDRADriverGRPCServer(ctx context.Context, shouldTimeout bool, pluginClientTimeout *time.Duration, prepareResourcesResponse *drapb.NodePrepareResourcesResponse, unprepareResourcesResponse *drapb.NodeUnprepareResourcesResponse) (fakeDRAServerInfo, error) {
socketDir, err := os.MkdirTemp("", "dra") socketDir, err := os.MkdirTemp("", "dra")
if err != nil { if err != nil {
return fakeDRAServerInfo{ return fakeDRAServerInfo{
@ -133,7 +134,10 @@ func setupFakeDRADriverGRPCServer(shouldTimeout bool, pluginClientTimeout *time.
teardown := func() { teardown := func() {
close(stopCh) close(stopCh)
os.RemoveAll(socketName) if err := os.Remove(socketName); err != nil {
logger := klog.FromContext(ctx)
logger.Error(err, "failed to remove socket file", "path", socketName)
}
} }
l, err := net.Listen("unix", socketName) l, err := net.Listen("unix", socketName)
@ -159,11 +163,16 @@ func setupFakeDRADriverGRPCServer(shouldTimeout bool, pluginClientTimeout *time.
drapb.RegisterNodeServer(s, fakeDRADriverGRPCServer) drapb.RegisterNodeServer(s, fakeDRADriverGRPCServer)
go func() { go func(ctx context.Context) {
go s.Serve(l) go func() {
if err := s.Serve(l); err != nil {
logger := klog.FromContext(ctx)
logger.Error(err, "failed to serve gRPC")
}
}()
<-stopCh <-stopCh
s.GracefulStop() s.GracefulStop()
}() }(ctx)
return fakeDRAServerInfo{ return fakeDRAServerInfo{
server: fakeDRADriverGRPCServer, server: fakeDRADriverGRPCServer,
@ -565,7 +574,7 @@ func TestPrepareResources(t *testing.T) {
pluginClientTimeout = &timeout pluginClientTimeout = &timeout
} }
draServerInfo, err := setupFakeDRADriverGRPCServer(test.wantTimeout, pluginClientTimeout, test.resp, nil) draServerInfo, err := setupFakeDRADriverGRPCServer(tCtx, test.wantTimeout, pluginClientTimeout, test.resp, nil)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -702,7 +711,7 @@ func TestUnprepareResources(t *testing.T) {
pluginClientTimeout = &timeout pluginClientTimeout = &timeout
} }
draServerInfo, err := setupFakeDRADriverGRPCServer(test.wantTimeout, pluginClientTimeout, nil, test.resp) draServerInfo, err := setupFakeDRADriverGRPCServer(tCtx, test.wantTimeout, pluginClientTimeout, nil, test.resp)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -872,7 +881,7 @@ func TestParallelPrepareUnprepareResources(t *testing.T) {
tCtx := ktesting.Init(t) tCtx := ktesting.Init(t)
// Setup and register fake DRA driver // Setup and register fake DRA driver
draServerInfo, err := setupFakeDRADriverGRPCServer(false, nil, nil, nil) draServerInfo, err := setupFakeDRADriverGRPCServer(tCtx, false, nil, nil, nil)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }