Skip to content

Commit da3555a

Browse files
committed
chore: code change due to k8s lib upgrade
golint
1 parent 0db7f80 commit da3555a

File tree

4 files changed

+47
-6
lines changed

4 files changed

+47
-6
lines changed

Diff for: pkg/node-cleanup/controller/controller.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ import (
3636
"k8s.io/client-go/tools/record"
3737
"k8s.io/client-go/util/workqueue"
3838
"k8s.io/klog/v2"
39-
volumeUtil "k8s.io/kubernetes/pkg/volume/util"
4039

4140
"sigs.k8s.io/sig-storage-local-static-provisioner/pkg/common"
4241
cleanupmetrics "sigs.k8s.io/sig-storage-local-static-provisioner/pkg/metrics/node-cleanup"
42+
"sigs.k8s.io/sig-storage-local-static-provisioner/pkg/util"
4343
)
4444

4545
// CleanupController handles the deletion of PVCs that reference deleted Nodes.
@@ -197,7 +197,7 @@ func (c *CleanupController) syncHandler(ctx context.Context, pvName string) erro
197197
return err
198198
}
199199

200-
nodeNames := volumeUtil.GetLocalPersistentVolumeNodeNames(pv)
200+
nodeNames := util.GetLocalPersistentVolumeNodeNames(pv)
201201
if nodeNames == nil {
202202
// For whatever reason the PV isn't formatted properly so we will
203203
// never be able to get its corresponding Node, so ignore.
@@ -262,7 +262,7 @@ func (c *CleanupController) startCleanupTimersIfNeeded() {
262262
continue
263263
}
264264

265-
nodeNames := volumeUtil.GetLocalPersistentVolumeNodeNames(pv)
265+
nodeNames := util.GetLocalPersistentVolumeNodeNames(pv)
266266
if nodeNames == nil {
267267
klog.Errorf("error getting node attached to pv: %s", pv)
268268
continue

Diff for: pkg/node-cleanup/deleter/deleter.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ import (
2727
"k8s.io/client-go/kubernetes"
2828
corelisters "k8s.io/client-go/listers/core/v1"
2929
"k8s.io/klog/v2"
30-
volumeUtil "k8s.io/kubernetes/pkg/volume/util"
3130

3231
"sigs.k8s.io/sig-storage-local-static-provisioner/pkg/common"
3332
cleanupmetrics "sigs.k8s.io/sig-storage-local-static-provisioner/pkg/metrics/node-cleanup"
33+
"sigs.k8s.io/sig-storage-local-static-provisioner/pkg/util"
3434
)
3535

3636
// Deleter handles cleanup of local PVs with an affinity to a deleted Node.
@@ -120,7 +120,7 @@ func (d *Deleter) DeletePVs(ctx context.Context) {
120120
// values:
121121
// - <node1>
122122
func (d *Deleter) referencesNonExistentNode(localPV *v1.PersistentVolume) bool {
123-
nodeNames := volumeUtil.GetLocalPersistentVolumeNodeNames(localPV)
123+
nodeNames := util.GetLocalPersistentVolumeNodeNames(localPV)
124124
if nodeNames == nil {
125125
return false
126126
}

Diff for: pkg/util/volume_util.go

+41
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ package util
1818

1919
import (
2020
"os"
21+
22+
"k8s.io/api/core/v1"
23+
"k8s.io/apimachinery/pkg/util/sets"
2124
)
2225

2326
// VolumeUtil is an interface for local filesystem operations
@@ -74,3 +77,41 @@ func (u *volumeUtil) ReadDir(fullPath string) ([]string, error) {
7477
}
7578
return files, nil
7679
}
80+
81+
// GetLocalPersistentVolumeNodeNames returns the node affinity node name(s) for
82+
// local PersistentVolumes. nil is returned if the PV does not have any
83+
// specific node affinity node selector terms and match expressions.
84+
// PersistentVolume with node affinity has select and match expressions
85+
// in the form of:
86+
//
87+
// nodeAffinity:
88+
// required:
89+
// nodeSelectorTerms:
90+
// - matchExpressions:
91+
// - key: kubernetes.io/hostname
92+
// operator: In
93+
// values:
94+
// - <node1>
95+
// - <node2>
96+
func GetLocalPersistentVolumeNodeNames(pv *v1.PersistentVolume) []string {
97+
if pv == nil || pv.Spec.NodeAffinity == nil || pv.Spec.NodeAffinity.Required == nil {
98+
return nil
99+
}
100+
101+
var result sets.Set[string]
102+
for _, term := range pv.Spec.NodeAffinity.Required.NodeSelectorTerms {
103+
var nodes sets.Set[string]
104+
for _, matchExpr := range term.MatchExpressions {
105+
if matchExpr.Key == v1.LabelHostname && matchExpr.Operator == v1.NodeSelectorOpIn {
106+
if nodes == nil {
107+
nodes = sets.New(matchExpr.Values...)
108+
} else {
109+
nodes = nodes.Intersection(sets.New(matchExpr.Values...))
110+
}
111+
}
112+
}
113+
result = result.Union(nodes)
114+
}
115+
116+
return sets.List(result)
117+
}

Diff for: test/e2e/e2e_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -860,7 +860,7 @@ func newLocalClaim(config *localTestConfig) *v1.PersistentVolumeClaim {
860860
AccessModes: []v1.PersistentVolumeAccessMode{
861861
v1.ReadWriteOnce,
862862
},
863-
Resources: v1.ResourceRequirements{
863+
Resources: v1.VolumeResourceRequirements{
864864
Requests: v1.ResourceList{
865865
v1.ResourceName(v1.ResourceStorage): resource.MustParse(testRequestSize),
866866
},

0 commit comments

Comments
 (0)