Ensure all plugin configurations follow a consistent, structured format across the codebase to improve maintainability and user experience. Different plugins and features should not use ad-hoc configuration styles that make the system fragmented and difficult to understand.
Key principles:
binpack
Example of good practice:
# Structured configuration approach
- name: resource-strategy-fit
arguments:
resourceStrategyFitWeight: 10
resources:
nvidia.com/gpu:
type: MostAllocated
weight: 2
cpu:
type: LeastAllocated
weight: 1
Example of what to avoid:
# Ad-hoc string-based configuration
arguments:
reserve.nodeLabel: label1,label2
reserve.define.label1: {"business_type": "ebook"}
Better alternative:
# Structured alternative
arguments:
reserveLabels:
- nodeSelector:
business_type: ebook
startHour: 3
endHour: 4
resources:
cpu: 32
memory: 64
This standardization reduces cognitive load for users, simplifies validation, and makes the configuration system more maintainable as new features are added.
Enter the URL of a public GitHub repository