mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Cleanup k8s.io/component-helpers/storage/volume package
Signed-off-by: Konstantin Misyutin <konstantin.misyutin@huawei.com>
This commit is contained in:
parent
0b5b04842c
commit
438d224f0e
@ -447,6 +447,25 @@ func TestFindingVolumeWithDifferentAccessModes(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// createVolumeNodeAffinity returns a VolumeNodeAffinity for given key and value.
|
||||||
|
func createNodeAffinity(key string, value string) *v1.VolumeNodeAffinity {
|
||||||
|
return &v1.VolumeNodeAffinity{
|
||||||
|
Required: &v1.NodeSelector{
|
||||||
|
NodeSelectorTerms: []v1.NodeSelectorTerm{
|
||||||
|
{
|
||||||
|
MatchExpressions: []v1.NodeSelectorRequirement{
|
||||||
|
{
|
||||||
|
Key: key,
|
||||||
|
Operator: v1.NodeSelectorOpIn,
|
||||||
|
Values: []string{value},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func createTestVolumes() []*v1.PersistentVolume {
|
func createTestVolumes() []*v1.PersistentVolume {
|
||||||
fs := v1.PersistentVolumeFilesystem
|
fs := v1.PersistentVolumeFilesystem
|
||||||
// these volumes are deliberately out-of-order to test indexing and sorting
|
// these volumes are deliberately out-of-order to test indexing and sorting
|
||||||
@ -770,7 +789,7 @@ func createTestVolumes() []*v1.PersistentVolume {
|
|||||||
v1.ReadOnlyMany,
|
v1.ReadOnlyMany,
|
||||||
},
|
},
|
||||||
StorageClassName: classWait,
|
StorageClassName: classWait,
|
||||||
NodeAffinity: volume.GetVolumeNodeAffinity("key1", "value1"),
|
NodeAffinity: createNodeAffinity("key1", "value1"),
|
||||||
VolumeMode: &fs,
|
VolumeMode: &fs,
|
||||||
},
|
},
|
||||||
Status: v1.PersistentVolumeStatus{
|
Status: v1.PersistentVolumeStatus{
|
||||||
@ -794,7 +813,7 @@ func createTestVolumes() []*v1.PersistentVolume {
|
|||||||
v1.ReadOnlyMany,
|
v1.ReadOnlyMany,
|
||||||
},
|
},
|
||||||
StorageClassName: classWait,
|
StorageClassName: classWait,
|
||||||
NodeAffinity: volume.GetVolumeNodeAffinity("key1", "value1"),
|
NodeAffinity: createNodeAffinity("key1", "value1"),
|
||||||
VolumeMode: &fs,
|
VolumeMode: &fs,
|
||||||
},
|
},
|
||||||
Status: v1.PersistentVolumeStatus{
|
Status: v1.PersistentVolumeStatus{
|
||||||
@ -819,7 +838,7 @@ func createTestVolumes() []*v1.PersistentVolume {
|
|||||||
},
|
},
|
||||||
StorageClassName: classWait,
|
StorageClassName: classWait,
|
||||||
ClaimRef: &v1.ObjectReference{Name: "claim02", Namespace: "myns"},
|
ClaimRef: &v1.ObjectReference{Name: "claim02", Namespace: "myns"},
|
||||||
NodeAffinity: volume.GetVolumeNodeAffinity("key1", "value1"),
|
NodeAffinity: createNodeAffinity("key1", "value1"),
|
||||||
VolumeMode: &fs,
|
VolumeMode: &fs,
|
||||||
},
|
},
|
||||||
Status: v1.PersistentVolumeStatus{
|
Status: v1.PersistentVolumeStatus{
|
||||||
@ -843,7 +862,7 @@ func createTestVolumes() []*v1.PersistentVolume {
|
|||||||
v1.ReadOnlyMany,
|
v1.ReadOnlyMany,
|
||||||
},
|
},
|
||||||
StorageClassName: classWait,
|
StorageClassName: classWait,
|
||||||
NodeAffinity: volume.GetVolumeNodeAffinity("key1", "value3"),
|
NodeAffinity: createNodeAffinity("key1", "value3"),
|
||||||
VolumeMode: &fs,
|
VolumeMode: &fs,
|
||||||
},
|
},
|
||||||
Status: v1.PersistentVolumeStatus{
|
Status: v1.PersistentVolumeStatus{
|
||||||
@ -867,7 +886,7 @@ func createTestVolumes() []*v1.PersistentVolume {
|
|||||||
v1.ReadOnlyMany,
|
v1.ReadOnlyMany,
|
||||||
},
|
},
|
||||||
StorageClassName: classWait,
|
StorageClassName: classWait,
|
||||||
NodeAffinity: volume.GetVolumeNodeAffinity("key1", "value4"),
|
NodeAffinity: createNodeAffinity("key1", "value4"),
|
||||||
VolumeMode: &fs,
|
VolumeMode: &fs,
|
||||||
},
|
},
|
||||||
Status: v1.PersistentVolumeStatus{
|
Status: v1.PersistentVolumeStatus{
|
||||||
@ -891,7 +910,7 @@ func createTestVolumes() []*v1.PersistentVolume {
|
|||||||
v1.ReadOnlyMany,
|
v1.ReadOnlyMany,
|
||||||
},
|
},
|
||||||
StorageClassName: classWait,
|
StorageClassName: classWait,
|
||||||
NodeAffinity: volume.GetVolumeNodeAffinity("key1", "value4"),
|
NodeAffinity: createNodeAffinity("key1", "value4"),
|
||||||
VolumeMode: &fs,
|
VolumeMode: &fs,
|
||||||
},
|
},
|
||||||
Status: v1.PersistentVolumeStatus{
|
Status: v1.PersistentVolumeStatus{
|
||||||
@ -915,7 +934,7 @@ func createTestVolumes() []*v1.PersistentVolume {
|
|||||||
v1.ReadOnlyMany,
|
v1.ReadOnlyMany,
|
||||||
},
|
},
|
||||||
StorageClassName: classWait,
|
StorageClassName: classWait,
|
||||||
NodeAffinity: volume.GetVolumeNodeAffinity("key1", "value4"),
|
NodeAffinity: createNodeAffinity("key1", "value4"),
|
||||||
VolumeMode: &fs,
|
VolumeMode: &fs,
|
||||||
},
|
},
|
||||||
Status: v1.PersistentVolumeStatus{
|
Status: v1.PersistentVolumeStatus{
|
||||||
@ -939,7 +958,7 @@ func createTestVolumes() []*v1.PersistentVolume {
|
|||||||
v1.ReadOnlyMany,
|
v1.ReadOnlyMany,
|
||||||
},
|
},
|
||||||
StorageClassName: classWait,
|
StorageClassName: classWait,
|
||||||
NodeAffinity: volume.GetVolumeNodeAffinity("key1", "value4"),
|
NodeAffinity: createNodeAffinity("key1", "value4"),
|
||||||
VolumeMode: &fs,
|
VolumeMode: &fs,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -666,7 +666,21 @@ func makeTestPV(name, node, capacity, version string, boundToPVC *v1.PersistentV
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
if node != "" {
|
if node != "" {
|
||||||
pv.Spec.NodeAffinity = volume.GetVolumeNodeAffinity(nodeLabelKey, node)
|
pv.Spec.NodeAffinity = &v1.VolumeNodeAffinity{
|
||||||
|
Required: &v1.NodeSelector{
|
||||||
|
NodeSelectorTerms: []v1.NodeSelectorTerm{
|
||||||
|
{
|
||||||
|
MatchExpressions: []v1.NodeSelectorRequirement{
|
||||||
|
{
|
||||||
|
Key: nodeLabelKey,
|
||||||
|
Operator: v1.NodeSelectorOpIn,
|
||||||
|
Values: []string{node},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if boundToPVC != nil {
|
if boundToPVC != nil {
|
||||||
|
@ -340,22 +340,3 @@ func CheckAccessModes(claim *v1.PersistentVolumeClaim, volume *v1.PersistentVolu
|
|||||||
func claimToClaimKey(claim *v1.PersistentVolumeClaim) string {
|
func claimToClaimKey(claim *v1.PersistentVolumeClaim) string {
|
||||||
return fmt.Sprintf("%s/%s", claim.Namespace, claim.Name)
|
return fmt.Sprintf("%s/%s", claim.Namespace, claim.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetVolumeNodeAffinity returns a VolumeNodeAffinity for given key and value.
|
|
||||||
func GetVolumeNodeAffinity(key string, value string) *v1.VolumeNodeAffinity {
|
|
||||||
return &v1.VolumeNodeAffinity{
|
|
||||||
Required: &v1.NodeSelector{
|
|
||||||
NodeSelectorTerms: []v1.NodeSelectorTerm{
|
|
||||||
{
|
|
||||||
MatchExpressions: []v1.NodeSelectorRequirement{
|
|
||||||
{
|
|
||||||
Key: key,
|
|
||||||
Operator: v1.NodeSelectorOpIn,
|
|
||||||
Values: []string{value},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -119,6 +119,25 @@ func TestDelayBindingMode(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// makeVolumeNodeAffinity returns a VolumeNodeAffinity for given key and value.
|
||||||
|
func makeNodeAffinity(key string, value string) *v1.VolumeNodeAffinity {
|
||||||
|
return &v1.VolumeNodeAffinity{
|
||||||
|
Required: &v1.NodeSelector{
|
||||||
|
NodeSelectorTerms: []v1.NodeSelectorTerm{
|
||||||
|
{
|
||||||
|
MatchExpressions: []v1.NodeSelectorRequirement{
|
||||||
|
{
|
||||||
|
Key: key,
|
||||||
|
Operator: v1.NodeSelectorOpIn,
|
||||||
|
Values: []string{value},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestFindMatchVolumeWithNode(t *testing.T) {
|
func TestFindMatchVolumeWithNode(t *testing.T) {
|
||||||
volumes := []*v1.PersistentVolume{
|
volumes := []*v1.PersistentVolume{
|
||||||
makeTestVolume("local-small", "local001", "5G", true, nil),
|
makeTestVolume("local-small", "local001", "5G", true, nil),
|
||||||
@ -127,24 +146,24 @@ func TestFindMatchVolumeWithNode(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
makeTestVolume("affinity-pv", "affinity001", "100G", true, func(pv *v1.PersistentVolume) {
|
makeTestVolume("affinity-pv", "affinity001", "100G", true, func(pv *v1.PersistentVolume) {
|
||||||
pv.Spec.StorageClassName = "wait"
|
pv.Spec.StorageClassName = "wait"
|
||||||
pv.Spec.NodeAffinity = GetVolumeNodeAffinity("key1", "value1")
|
pv.Spec.NodeAffinity = makeNodeAffinity("key1", "value1")
|
||||||
}),
|
}),
|
||||||
makeTestVolume("affinity-pv2", "affinity002", "150G", true, func(pv *v1.PersistentVolume) {
|
makeTestVolume("affinity-pv2", "affinity002", "150G", true, func(pv *v1.PersistentVolume) {
|
||||||
pv.Spec.StorageClassName = "wait"
|
pv.Spec.StorageClassName = "wait"
|
||||||
pv.Spec.NodeAffinity = GetVolumeNodeAffinity("key1", "value1")
|
pv.Spec.NodeAffinity = makeNodeAffinity("key1", "value1")
|
||||||
}),
|
}),
|
||||||
makeTestVolume("affinity-prebound", "affinity003", "100G", true, func(pv *v1.PersistentVolume) {
|
makeTestVolume("affinity-prebound", "affinity003", "100G", true, func(pv *v1.PersistentVolume) {
|
||||||
pv.Spec.StorageClassName = "wait"
|
pv.Spec.StorageClassName = "wait"
|
||||||
pv.Spec.ClaimRef = &v1.ObjectReference{Name: "claim02", Namespace: "myns"}
|
pv.Spec.ClaimRef = &v1.ObjectReference{Name: "claim02", Namespace: "myns"}
|
||||||
pv.Spec.NodeAffinity = GetVolumeNodeAffinity("key1", "value1")
|
pv.Spec.NodeAffinity = makeNodeAffinity("key1", "value1")
|
||||||
}),
|
}),
|
||||||
makeTestVolume("affinity-pv3", "affinity003", "200G", true, func(pv *v1.PersistentVolume) {
|
makeTestVolume("affinity-pv3", "affinity003", "200G", true, func(pv *v1.PersistentVolume) {
|
||||||
pv.Spec.StorageClassName = "wait"
|
pv.Spec.StorageClassName = "wait"
|
||||||
pv.Spec.NodeAffinity = GetVolumeNodeAffinity("key1", "value3")
|
pv.Spec.NodeAffinity = makeNodeAffinity("key1", "value3")
|
||||||
}),
|
}),
|
||||||
makeTestVolume("affinity-pv4", "affinity004", "200G", false, func(pv *v1.PersistentVolume) {
|
makeTestVolume("affinity-pv4", "affinity004", "200G", false, func(pv *v1.PersistentVolume) {
|
||||||
pv.Spec.StorageClassName = "wait"
|
pv.Spec.StorageClassName = "wait"
|
||||||
pv.Spec.NodeAffinity = GetVolumeNodeAffinity("key1", "value4")
|
pv.Spec.NodeAffinity = makeNodeAffinity("key1", "value4")
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user