mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 21:12:07 +00:00
Merge pull request #125495 from pohly/dra-scheduler-fix-parameter-indexing
DRA: fix indexing of generated parameters
This commit is contained in:
commit
64355780d9
@ -381,12 +381,12 @@ func New(ctx context.Context, plArgs runtime.Object, fh framework.Handle, fts fe
|
|||||||
return pl, nil
|
return pl, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func claimParametersReferenceKeyFunc(ref *resourcev1alpha2.ResourceClaimParametersReference) string {
|
func claimParametersReferenceKeyFunc(namespace string, ref *resourcev1alpha2.ResourceClaimParametersReference) string {
|
||||||
return ref.APIGroup + "/" + ref.Kind + "/" + ref.Name
|
return ref.APIGroup + "/" + ref.Kind + "/" + namespace + "/" + ref.Name
|
||||||
}
|
}
|
||||||
|
|
||||||
// claimParametersGeneratedFromIndexFunc is an index function that returns other resource keys
|
// claimParametersGeneratedFromIndexFunc is an index function that returns other resource keys
|
||||||
// (= apiGroup/kind/name) for ResourceClaimParametersReference in a given claim parameters.
|
// (= apiGroup/kind/namespace/name) for ResourceClaimParametersReference in a given claim parameters.
|
||||||
func claimParametersGeneratedFromIndexFunc(obj interface{}) ([]string, error) {
|
func claimParametersGeneratedFromIndexFunc(obj interface{}) ([]string, error) {
|
||||||
parameters, ok := obj.(*resourcev1alpha2.ResourceClaimParameters)
|
parameters, ok := obj.(*resourcev1alpha2.ResourceClaimParameters)
|
||||||
if !ok {
|
if !ok {
|
||||||
@ -395,7 +395,7 @@ func claimParametersGeneratedFromIndexFunc(obj interface{}) ([]string, error) {
|
|||||||
if parameters.GeneratedFrom == nil {
|
if parameters.GeneratedFrom == nil {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
return []string{claimParametersReferenceKeyFunc(parameters.GeneratedFrom)}, nil
|
return []string{claimParametersReferenceKeyFunc(parameters.Namespace, parameters.GeneratedFrom)}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func classParametersReferenceKeyFunc(ref *resourcev1alpha2.ResourceClassParametersReference) string {
|
func classParametersReferenceKeyFunc(ref *resourcev1alpha2.ResourceClassParametersReference) string {
|
||||||
@ -1105,7 +1105,7 @@ func (pl *dynamicResources) lookupClaimParameters(logger klog.Logger, class *res
|
|||||||
return parameters, nil
|
return parameters, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
objs, err := pl.claimParametersIndexer.ByIndex(generatedFromIndex, claimParametersReferenceKeyFunc(claim.Spec.ParametersRef))
|
objs, err := pl.claimParametersIndexer.ByIndex(generatedFromIndex, claimParametersReferenceKeyFunc(claim.Namespace, claim.Spec.ParametersRef))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, statusError(logger, fmt.Errorf("listing claim parameters failed: %v", err))
|
return nil, statusError(logger, fmt.Errorf("listing claim parameters failed: %v", err))
|
||||||
}
|
}
|
||||||
|
@ -140,6 +140,15 @@ var (
|
|||||||
APIGroup: "example.com",
|
APIGroup: "example.com",
|
||||||
}).
|
}).
|
||||||
Obj()
|
Obj()
|
||||||
|
claimParametersOtherNamespace = st.MakeClaimParameters().Name(claimName).Namespace(namespace+"-2").
|
||||||
|
NamedResourcesRequests("some-driver", "true").
|
||||||
|
Shareable(true).
|
||||||
|
GeneratedFrom(&resourcev1alpha2.ResourceClaimParametersReference{
|
||||||
|
Name: claimName,
|
||||||
|
Kind: "ResourceClaimParameters",
|
||||||
|
APIGroup: "example.com",
|
||||||
|
}).
|
||||||
|
Obj()
|
||||||
classParameters = st.MakeClassParameters().Name(className).Namespace(namespace).
|
classParameters = st.MakeClassParameters().Name(className).Namespace(namespace).
|
||||||
NamedResourcesFilters("some-driver", "true").
|
NamedResourcesFilters("some-driver", "true").
|
||||||
GeneratedFrom(&resourcev1alpha2.ResourceClassParametersReference{
|
GeneratedFrom(&resourcev1alpha2.ResourceClassParametersReference{
|
||||||
@ -631,7 +640,7 @@ func TestPlugin(t *testing.T) {
|
|||||||
pod: podWithClaimName,
|
pod: podWithClaimName,
|
||||||
claims: []*resourcev1alpha2.ResourceClaim{claimWithCRD(pendingDelayedClaimWithParams)},
|
claims: []*resourcev1alpha2.ResourceClaim{claimWithCRD(pendingDelayedClaimWithParams)},
|
||||||
classes: []*resourcev1alpha2.ResourceClass{classWithCRD(structuredResourceClassWithCRD)},
|
classes: []*resourcev1alpha2.ResourceClass{classWithCRD(structuredResourceClassWithCRD)},
|
||||||
objs: []apiruntime.Object{claimParameters, classParameters, workerNodeSlice},
|
objs: []apiruntime.Object{claimParameters, claimParametersOtherNamespace /* must be ignored */, classParameters, workerNodeSlice},
|
||||||
want: want{
|
want: want{
|
||||||
reserve: result{
|
reserve: result{
|
||||||
inFlightClaim: claimWithCRD(structuredAllocatedClaimWithParams),
|
inFlightClaim: claimWithCRD(structuredAllocatedClaimWithParams),
|
||||||
|
Loading…
Reference in New Issue
Block a user