Skip to content

Commit 1a5a0e1

Browse files
authored
Merge pull request #118 from luomingmeng/dev/support-min-ignore-reclaimed-resource-for-report
add MinIgnoredReclaimedResourceForReport to avoid resource fragmentation
2 parents 019ba1c + e81e5d8 commit 1a5a0e1

File tree

4 files changed

+48
-8
lines changed

4 files changed

+48
-8
lines changed

config/crd/bases/config.katalyst.kubewharf.io_adminqosconfigurations.yaml

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -626,16 +626,32 @@ spec:
626626
type: number
627627
type: object
628628
type: object
629+
minIgnoredReclaimedResourceForReport:
630+
additionalProperties:
631+
anyOf:
632+
- type: integer
633+
- type: string
634+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
635+
x-kubernetes-int-or-string: true
636+
description: 'MinIgnoredReclaimedResourceForReport defines
637+
per-resource minimum thresholds. If ANY resource''s current
638+
reclaimed amount falls below its respective threshold, ALL
639+
reclaimed resources will be ignored and reported as zero.
640+
This prevents resource fragmentation in quota calculations
641+
by avoiding reporting insignificant reclaimed quantities.
642+
For example, {"cpu": 0.1, "memory": 100Mi}.'
643+
type: object
629644
minReclaimedResourceForAllocate:
630645
additionalProperties:
631646
anyOf:
632647
- type: integer
633648
- type: string
634649
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
635650
x-kubernetes-int-or-string: true
636-
description: MinReclaimedResourceForAllocate is a resource
651+
description: 'MinReclaimedResourceForAllocate is a resource
637652
reserved for reclaimed_cores pods,these resources will not
638-
be used by shared_cores pods.
653+
be used by shared_cores pods. For example, {"cpu": 4, "memory":
654+
0Gi}.'
639655
type: object
640656
minReclaimedResourceForReport:
641657
additionalProperties:
@@ -644,10 +660,11 @@ spec:
644660
- type: string
645661
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
646662
x-kubernetes-int-or-string: true
647-
description: MinReclaimedResourceForReport is a minimum reclaimed
663+
description: 'MinReclaimedResourceForReport is a minimum reclaimed
648664
resource for report to custom node resource, which means
649665
if reclaimed resource is less than MinReclaimedResourceForReport,
650666
then reclaimed resource will be reported as MinReclaimedResourceForReport.
667+
For example, {"cpu": 4, "memory": 5Gi}.'
651668
type: object
652669
reservedResourceForAllocate:
653670
additionalProperties:
@@ -656,10 +673,11 @@ spec:
656673
- type: string
657674
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
658675
x-kubernetes-int-or-string: true
659-
description: ReservedResourceForAllocate is a resource reserved
676+
description: 'ReservedResourceForAllocate is a resource reserved
660677
for non-reclaimed_cores pods that are not allocated to reclaimed_cores
661678
pods. It is used to set aside some buffer resources to avoid
662-
sudden increase in resource requirements.
679+
sudden increase in resource requirements. For example, {"cpu":
680+
4, "memory": 5Gi}.'
663681
type: object
664682
reservedResourceForReport:
665683
additionalProperties:
@@ -668,10 +686,10 @@ spec:
668686
- type: string
669687
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
670688
x-kubernetes-int-or-string: true
671-
description: ReservedResourceForReport is a reserved resource
689+
description: 'ReservedResourceForReport is a reserved resource
672690
for report to custom node resource, which is used to prevent
673691
reclaim resource from being requested by reclaimed_cores
674-
pods.
692+
pods. For example, {"cpu": 0, "memory": 0Gi}.'
675693
type: object
676694
type: object
677695
type: object

config/crd/bases/node.katalyst.kubewharf.io_customnoderesources.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ spec:
6262
type: object
6363
type: array
6464
taints:
65-
description: Taints customized taints for katalyst, which affect pod
65+
description: Taints customized taint for katalyst, which affect pod
6666
scheduling based on their QoS levels and the specified taint's QoS
6767
level.
6868
items:

pkg/apis/config/v1alpha1/adminqos.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,23 +91,34 @@ type ReclaimedResourceConfig struct {
9191

9292
// ReservedResourceForReport is a reserved resource for report to custom node resource, which is used to
9393
// prevent reclaim resource from being requested by reclaimed_cores pods.
94+
// For example, {"cpu": 0, "memory": 0Gi}.
9495
// +optional
9596
ReservedResourceForReport *v1.ResourceList `json:"reservedResourceForReport,omitempty"`
9697

9798
// MinReclaimedResourceForReport is a minimum reclaimed resource for report to custom node resource, which means
9899
// if reclaimed resource is less than MinReclaimedResourceForReport, then reclaimed resource will be reported as
99100
// MinReclaimedResourceForReport.
101+
// For example, {"cpu": 4, "memory": 5Gi}.
100102
// +optional
101103
MinReclaimedResourceForReport *v1.ResourceList `json:"minReclaimedResourceForReport,omitempty"`
102104

105+
// MinIgnoredReclaimedResourceForReport defines per-resource minimum thresholds. If ANY resource's current reclaimed amount
106+
// falls below its respective threshold, ALL reclaimed resources will be ignored and reported as zero. This prevents resource
107+
// fragmentation in quota calculations by avoiding reporting insignificant reclaimed quantities.
108+
// For example, {"cpu": 0.1, "memory": 100Mi}.
109+
// +optional
110+
MinIgnoredReclaimedResourceForReport *v1.ResourceList `json:"minIgnoredReclaimedResourceForReport,omitempty"`
111+
103112
// ReservedResourceForAllocate is a resource reserved for non-reclaimed_cores pods that are not allocated to
104113
// reclaimed_cores pods. It is used to set aside some buffer resources to avoid sudden increase in resource
105114
// requirements.
115+
// For example, {"cpu": 4, "memory": 5Gi}.
106116
// +optional
107117
ReservedResourceForAllocate *v1.ResourceList `json:"reservedResourceForAllocate,omitempty"`
108118

109119
// MinReclaimedResourceForAllocate is a resource reserved for reclaimed_cores pods,these resources will not be used
110120
// by shared_cores pods.
121+
// For example, {"cpu": 4, "memory": 0Gi}.
111122
// +optional
112123
MinReclaimedResourceForAllocate *v1.ResourceList `json:"minReclaimedResourceForAllocate,omitempty"`
113124

pkg/apis/config/v1alpha1/zz_generated.deepcopy.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)