General
- Remove DRA components from HAMi main chart →
remove dra from chartsby @archlitchi #2038
DRA
- Ascend DRA → Project-HAMi/ascend-dra-driver @Shouren
Scheduling Features
- Init Container Support →
- Support podgroup →
- Flexible Mig →
refactor(MIG): support MIG instance dynamic allocation/deallocationby @FouoF #2378 - New schedule policy (mutex) →
feat: new mutex GPU scheduling policyby @mesutoezdil #2011 - Scheduler policy combination →
feat: support comma-separated gpu-scheduler-policy combinationsby @mesutoezdil #2621 - Handshake annotations optimize →
Remove 'deleted' annotations when registeringby @archlitchi #2052 - Numa align (CPU and GPU) →
device-plugin: opt-in NUMA topology for vGPU replicasby @saiyam1814 #2065 - Support autoscaling →
docs: add Cluster Autoscaler scale-up simulation designby @spencercjh #2528
Device Support
- Biren series →
- AMD Mi300x series →
- vNPU Compat mode / Heterogeneous Ascend Mode (vNPU + HAMi-core) →
Feat: Allow mode-agnostic Ascend pods to schedule across both vNPU-template and HAMi-core nodesby @ouyangluwei163 #2035 - mock-device-plugin support new NPU Template →
feat(ascend): support 910C vNPU templates vir05_1c_16g and vir10_3c_32gby @ouyangluwei163 #2005 - HAMi-core mode for vnpu doesn't need to align device memory to template →
Fix bug about auto-memory trim when using hami-core mode for vNPUby @archlitchi #2696
HAMi-core
- Change Compile image to ubi8 to support all GLIBC versions →
What's Changed
✨ New Features
- feat: add vGPUmonitor --metrics-bind-address flag by @dongjiang1989 in #1613
- refactor: extract checkUUID function for reuse by @DSFans2014 in #1622
- feat: add promtheus serviceMonitor in helm-charts by @dongjiang1989 in #1614
- feat: add serviceMonitor for device plugin by @dongjiang1989 in #1633
- feat: check resource quota in webhook by @DSFans2014 in #1605
- feat: support module-pair allocation for Ascend 910C devices in SuperPod environments by @ashergaga in #1610
- feat(skill): Add k8s-debug-gpu-pod skill for HAMi GPU troubleshooting by @haitwang-cloud in #1654
- feat: add support for vastai device by @DSFans2014 in #1645
- feat(helm): add config namespaceSelector & objectSelector for webhook by @haitwang-cloud in #1653
- feat(metrics): align prometheus metric and label names with best practices by @MyoungHaSong in #1644
- feat(logging): optimize log verbosity and add unit tests by @haitwang-cloud in #1710
- feat(workflow): stale issues and PRs older than one year by @Shouren in #1725
- feat: increase operations-per-run for stale action by @Shouren in #1756
- feat: add local-deploy target for deploying to minikube/kind clusters by @anandj91 in #1760
- feat: add hami_vgpu_metrics_summarizer skill by @haitwang-cloud in #1755
- feat: add Ascend ResourceCoreName to support hami-vnpu-core virtualization by @ashergaga in #1771
- feat: add Ascendxxx-core resource by @DSFans2014 in #1804
- feat: support node filtering based on hami-vnpu-core annotation by @ashergaga in #1812
- refactor: filter device at nvml-manager by @DSFans2014 in #1825
- feat: add DeepCopy function for DeviceUsage and its nested types by @Shouren in #1818
- feat: Supports multi-device requests with hami-vnpu-core enabled. by @ashergaga in #1837
- feat: update skills and add CLAUDE.md for codebase guidance by @haitwang-cloud in #1842
- feat: add enableGetPreferredAllocation flag by @DSFans2014 in #1824
- feat: Support enflame drs by @FouoF in #1872
- feat: add support for biren device by @DSFans2014 in #1711
- feat(helm): make device plugin security context configurable via values by @ilia-medvedev in #1887
- feat(ascend): support 910C vNPU templates vir05_1c_16g and vir10_3c_32g by @ouyangluwei163 in #2005
- feat(scheduler): support template node simulation filtering by @spencercjh in #2046
- chore: add concurrency and permissions to CI workflows by @spencercjh in #2074
- feat(scheduler): retry NodeLock in Bind for PodGroup members by @lin121291 in #2066
- design(amd): update amd design docs by @FouoF in #2067
- feat: new mutex GPU scheduling policy by @mesutoezdil in #2011
- refactor(scheduler): replace goto in Bind with fail closure by @yxxhero in #2089
- feat(helm): add switch for admission webhook namespaceSelector by @spencercjh in #2091
- fix(scheduler): bound-check MIG template/instance index parsed from UUID annotation by @mesutoezdil in #2088
- ci: add OpenSSF Scorecard workflow and README badge by @mesutoezdil in #2095
- ci: set explicit top-level token permissions on remaining workflows by @mesutoezdil in #2094
- ci: sign release images and publish provenance by @mesutoezdil in #2110
- fix(nvidia): detect NVLink through NVSwitch for topology scoring by @peachest in #2103
- fix: harden HTTP servers and migconfig file permissions by @mesutoezdil in #2100
- feat(nvidia): support RTX PRO 6000 Blackwell dynamic MIG by @shkatara in #2135
- ci: pin actions, images and install scripts by hash by @mesutoezdil in #2147
- ci: run CodeQL on pull requests by @mesutoezdil in #2193
- ci: replace write-all with per-job permissions in auto-release by @mesutoezdil in #2192
- fix: remove PR template fields from enhancement issue template by @mesutoezdil in #2219
- fix(workflow): skip non-translatable issue comments by @blackdragoon26 in #2221
- Fix: adopt to gangScheduling feature gates on k8s v1.36+ by @archlitchi in #2206
- ci: scope reusable workflow permissions, pin build.sh images, stop persisting checkout credentials, bump mig-parted by @mesutoezdil in #2175
- ci: move release workflow write permissions to job level by @mesutoezdil in #2236
- test: run vGPUmonitor unit tests by @iemAnshuman in #2250
- Feat: Allow mode-agnostic Ascend pods to schedule across both vNPU-template and HAMi-core nodes by @ouyangluwei163 in #2035
- feat(amd): support amd vgpu by @FouoF in #2290
- feat(tests): add comprehensive tests for device management functionality by @adity1raut in #2137
- feat(helm): allow passing device-config content directly via values.yaml by @shkatara in #2277
- feat(dashboards): add importable Grafana dashboard for HAMi GPU metrics by @imantaba in #2301
- test(device): add coverage for PodManager update, delete, and ListPodsUID paths by @aaka24 in #2358
- test(vGPUmonitor): cover the container metrics collection path by @veyron-kairo in #2350
- refactor(scheduler): compute score before appending to shared NodeList by @AyushSrivastava1818 in #2317
- test(plugin): raise register.go coverage by @adity1raut in #2195
- feat(scheduler): correct resource accounting for init containers by @maishivamhoo123 in #1773
- refactor(MIG): support MIG instance dynamic allocation/deallocation by @FouoF in #2378
- test(scheduler): add regression tests for quota metrics collector by @Ferryx349 in #2544
- docs: add Cluster Autoscaler scale-up simulation design by @spencercjh in #2528
- feat: support comma-separated gpu-scheduler-policy combinations by @mesutoezdil in #2621
- Add a CI verification check by @jianzhangbjz in #2567
- feat(scheduler): support per-pod device scoring weights by @blackdragoon26 in #2469
- test(mig): add RTX PRO 6000 E2E preset by @saiyam1814 in #2725
- feat: add hami_host_gpu_memory_controller_utilization_ratio metric by @manoj-1407 in #2616
- ci: run Helm lint and template validation in the Chart Lint workflow by @asadjan4611 in #2669
- feat(scheduler): export hami_resource_quota_limit gauge metric by @SK8-infi in #2715
- Support live per-GPU cordon via node annotation by @mohityadav8 in #2298
- Update HAMi-core and version to v2.10 by @archlitchi in #2759
🐛 Bug Fixes
- fix device typos by @DSFans2014 in #1608
- fix: precedence bug in schedulerName check by @hoteye in #1627
- fix: add nil checks to prevent panics in leaderelection by @haitwang-cloud in #1603
- fix: panic on nil resourceReqs in scheduler calcScore by @yxxhero in #1626
- Fix the issue Iluvatar device scheduling policy binpack and spread are reversed by @qiangwei1983 in #1631
- Fix contact link and add slack channel to README.md by @archlitchi in #1635
- fix: resolve cardinality explosion in Device_memory_desc_of_container by @maishivamhoo123 in #1628
- fix: handle GetMemoryInfo ERROR_NOT_SUPPORTED for unified memory GPUs by @jsl9208 in #1637
- fix typos by @DSFans2014 in #1657
- Fix: optimize nodelock scalability with exponential backoff and listers by @maishivamhoo123 in #1663
- fix apply kubescheduler config version by @CoderTH in #1666
- fix: failing readiness probe when replica > 1 by @Shouren in #1677
- fix: ci deepth by @Atroxgod in #1690
- fix(scheduler): correct slot usage prediction and add device type fil… by @maishivamhoo123 in #1700
- fix vastai fit loop iteration direction by @DSFans2014 in #1715
- fix: retain terminating pod in cache to prevent premature eviction by @maishivamhoo123 in #1719
- fix(chart): derive ld.so.preload from devicePlugin.libPath to fix non-default path deployments by @ilia-medvedev in #1714
- fix: support device allocation for multi-container with init containers by @haitwang-cloud in #1650
- fix: Reponse with correct content-type by @Shouren in #1604
- fix: suppress scheduler cleanup noise for unrelated vendors by @Yonsun-w in #1749
- fix(scheduler): add missing return in ondelpod by @CFH2436 in #1759
- fix: global image tag always covers per-component image tag by @FouoF in #1774
- fix(device-plugin): align kubelet allocation with scheduler annotations (#1741) by @xrwang8 in #1743
- fix(chart): sanitize managedNodeSelector keys for environment variables by @almazkhalikov in #1783
- fix: filter device does not work by @DSFans2014 in #1817
- Fix: Handle Kernel 6.17 handshake edge cases in NVIDIA health checks by @maishivamhoo123 in #1810
- fix: git errors when building with latest hami-core by @Shouren in #1782
- fix: mig does not work by @DSFans2014 in #1819
- fix(scheduler): guard against zero-value division in ComputeScore (#1… by @lin121291 in #1820
- fix(ascend): check unmarshal error before iterating node devices by @mesutoezdil in #1831
- fix(device): parse handshake annotation timestamp in local timezone by @mesutoezdil in #1816
- fix: recover scheduling on nodes with stale Deleted_ handshake by @saiyam1814 in #1843
- fix A100-80G template by @DSFans2014 in #1847
- fix: allocation failed when using mig in CDI mode by @DSFans2014 in #1826
- fix: propagate parse errors in DecodeNodeDevices by @mesutoezdil in #1855
- fix: return error from DecodePodDevices on decode failure by @mesutoezdil in #1857
- fix: propagate parse errors in DecodeContainerDevices by @mesutoezdil in #1856
- Fix e2e for HAMi by @archlitchi in #1884
- Fix time-out logic incorrectly triggered by @archlitchi in #1879
- fix(e2e): default helm version from VERSION file instead of v2.4.1 by @archlitchi in #1886
- fix(quota): clamp Used to zero in RmUsage to prevent negative tracking by @mesutoezdil in #1880
- fix(e2e): picks kubeconfig in order: --kubeconfig flag, KUBE_CONF, ~/.kube/config. by @FouoF in #1902
- fix(vGPUmonitor): prevent index out of bounds panic for priority above 1 by @mesutoezdil in #1881
- fix(quota): roll back usage when Filter evicts a stale pod entry by @mesutoezdil in #1905
- fix: rollback quota usage when filter annotation patch fails by @bolin-dai in #1898
- fix(chart): add DRA resource RBAC for kube-scheduler on K8s 1.34+ by @spencercjh in #1917
- fix: replace --build-arg TARGET_ARCH with --platform in docker build by @haitwang-cloud in #1921
- fix(scheduler): clean up podManager on Bind failures to prevent resource leak by @peachest in #1927
- fix(charts): change scheduler anti-affinity to preferred for rolling … by @lvkaili in #1934
- fix(examples): consolidate nvidia example and update changelog by @haitwang-cloud in #1938
- Fix: Skip nvidia-mig-parted when MIG is disabled by @maishivamhoo123 in #1930
- fix_leaderNotify Block by @archlitchi in #1957
- fix(device): CheckUUID ignores noUseKey when useKey is also set by @mesutoezdil in #1965
- fix(device): prevent panic in CheckHealth when Requesting has no timestamp by @mesutoezdil in #1964
- fix(quota): clamp Used to zero in RmUsage to prevent negative tracking by @mesutoezdil in #1966
- fix: return snapshot in
InspectAllNodesUsageto avoid data race by @DSFans2014 in #1967 - fix(chart): declare metrics port on vGPU monitor container by @ntheanh201 in #1990
- fix(nvidia): validate gpumem-percentage range to prevent silent unschedulability by @saiyam1814 in #1997
- fix(webhook): count the resource to fit quota in webhook when reqnum > 1 by @DSFans2014 in #2001
- fix(device-plugin): surface NVML error when MIG device placement cannot be determined by @saiyam1814 in #1999
- fix(vgpu-init): correct source and destination path handling by @haitwang-cloud in #2018
- fix(nvidia): refresh cache on register annotation changes by @LynPtl in #2022
- fix(ascend): reject -core on hard-split vNPU and fix "nor"->"not" typo by @Wangmin362 in #2026
- fix(ascend): stop whole-card/memory-less hami-core requests from bypassing the node mode gate by @Wangmin362 in #2029
- fix(scheduler): accept a vastai-only or biren-only device configuration by @Wangmin362 in #2050
- fix(device-plugin): avoid nil pointer panic in CheckHealth when checkHealth returns nil by @Wangmin362 in #2043
- fix(scheduler): treat an empty use/nouse gpuuuid annotation as no constraint by @Wangmin362 in #2045
- fix(cambricon): avoid scheduler panic when a leading container requests no MLU by @Wangmin362 in #2053
- fix: skip owner check for legacy lock format by @DSFans2014 in #2054
- fix: return deep copies from ListPodsInfo to prevent data race by @mesutoezdil in #2055
- fix: correct typos in comments and docs by @mesutoezdil in #2057
- fix(scheduler): avoid the racy read of the node cache in register() by @Wangmin362 in #2068
- fix(CI): invalid generated chart SemVer by @FouoF in #2073
- fix(scheduler): do not exit on a transient error updating the leader label by @Wangmin362 in #2075
- fix(scheduler): scope per-type device list in fitInDevices by @imantaba in #2105
- fix webhook to deny privileged containers by @Jay2006sawant in #2139
- fix: bound int32 conversion in enflame device parsing by @mesutoezdil in #2145
- fix(metrics): resolve high-cardinality leak in memory_allocated_bytes by @Aryanbhargava18 in #2142
- fix(mthreads): guard against zero device count in GenerateResourceRequests by @imantaba in #2134
- fix(enflame): bound profile values before int32 conversion in Fit by @mesutoezdil in #2190
- fix(ascend): update ascend config according to latest driver by @FouoF in #2223
- fix(metrics): prevent invalid memory ratios for unknown total memory by @blackdragoon26 in #2204
- fix(scheduler): handle ResourceQuota tombstones by @blackdragoon26 in #2259
- fix(monitor): fix use-after-unmap crash in loadCache + raise cudevshr.go coverage to 90% by @adity1raut in #2194
- fix(device): guard nil maps in mthreads MutateAdmission by @imantaba in #2254
- fix(scheduler): preserve concurrent node locks by @ShiroKSH in #2197
- fix(device): correct AllocatedCardsInsufficientRequest count during partial allocation by @princexpoddar in #2238
- fix(vGPUmonitor): scan all devices in CheckBlocking by @imantaba in #2159
- fix(nvidia): handle zero-score topology combinations by @Eshiv-Pandey in #2160
- fix(nodelock): let a pod re-acquire its own still-valid node lock by @adity1raut in #2255
- fix(device): use HasPrefix and TrimPrefix in DelQuota by @SK8-infi in #2272
- fix: release node lock on allocate response failure by @cotishq in #2293
- fix(ascend): skip unhealthy devices in Fit() by @Eshiv-Pandey in #2241
- fix(device-plugin): release node lock when bind-phase patch fails by @blackdragoon26 in #2307
- fix(vGPUmonitor): bound v0 spec metric sums to active proc slots by @imantaba in #2282
- fix(mthreads): correct invalid memory slice value in error message by @Eshiv-Pandey in #2325
- fix(device): use len(devices) for GenReason in kunlun and awsneuron by @blackdragoon26 in #2292
- fix(scheduler): return deep copy in nodeManager.GetNode to prevent concurrent map read/write by @AyushSrivastava1818 in #2333
- fix(nvidia): treat gpumem-percentage of 0 as unset by @Wangmin362 in #2156
- fix(scheduler): return early when predicate body is nil by @hemantrajputt in #2299
- fix(scheduler): enforce ResourceQuota for every device backend by @Lakshya77089 in #2347
- fix: add missing metric descriptors to Describe() in vGPUmonitor by @devGPP23 in #2240
- fix(scheduler): apply ResourceQuota updates without dropping the limit by @Lakshya77089 in #2386
- fix(monitor): skip dirs without underscore in Update instead of panicking by @Nakshatra480 in #2371
- fix(vGPUmonitor): skip uninitialized short UUIDs instead of exit by @SK8-infi in #2364
- fix(metrics): replace dangerous MustNewConstMetric with safe helper in scheduler by @devGPP23 in #2326
- fix(monitor): clamp SetDeviceSmLimit and SetDeviceMemoryLimit to maxDevices by @Nakshatra480 in #2362
- fix(device): don't panic on asymmetric GPU P2P link data in calculateGPUPairScore by @Brijesh-Thakkar in #2306
- fix(scheduler): prevent nil body panic bug in Predicate and Bind handlers by @devGPP23 in #2384
- fix(vGPUmonitor): skip exited process slots in v1 spec metric aggregations by @Nakshatra480 in #2314
- fix (ascend) - validate module pair count and prevent under allocation for ascend 910C by @princexpoddar in #2369
- fix(monitor): clamp DeviceNum to maxDevices to prevent scrape-path panic by @Nakshatra480 in #2400
- fix(quota): honor an explicit zero limit in ResourceQuota by @veyron-kairo in #2313
- fix(scheduler): set LimitSet in the remaining ResourceQuota test fixtures by @adity1raut in #2432
- fix(device-plugin): return error on failed Send in ListAndWatch by @AyushSrivastava1818 in #2353
- fix(device-plugin): skip devices that do not support event based healthchecking by @Wangmin362 in #2393
- fix(device,plugin): stop MIG usage corruption and fd leak by @adity1raut in #2245
- fix(amd): empty nouse-gputype annotation should not exclude every device by @adity1raut in #2395
- fix(device): skip empty comma-separated members in shared CheckType by @adity1raut in #2435
- fix(device-plugin): resolve stale annotation in multi-container Allocate by @peachest in #2380
- fix: skip unhealthy devices in Fit() for all non-nvidia backends by @Eshiv-Pandey in #2260
- fix(metrics): normalize AMD core allocation ratio to percentage by @yxxhero in #2527
- Fix client test ignoring TEST_WITH_REAL_CLUSTER by @KunwarSidhu47 in #2521
- fix(ascend): guard nil Requests in MutateAdmission by @keshav9926 in #2416
- fix(util): handle nil pod gracefully in utility functions to prevent … by @Rickydama3 in #2499
- fix(monitor): ignore unrelated files when loading cache by @hyy321 in #2529
- fix(cambricon): enforce ResourceQuota for percentage/whole-card memory requests by @adity1raut in #2536
- fix(monitor): use IsValidUUID to skip uninitialised device UUIDs in scrape path by @Nakshatra480 in #2465
- fix(scheduler): copy node info into nodeManager instead of storing the caller's by @Lakshya77089 in #2504
- fix(monitor): add v0.MinSize and fix file-size discriminator for v0 cache by @Nakshatra480 in #2503
- fix(device): hand out copies from PodManager instead of stored pointers by @Lakshya77089 in #2472
- fix(nvidia): clean up node health bookkeeping on deletion by @AyushSrivastava1818 in #2590
- fix(cambricon): prevent node lock leaks by reading from apiserver in ReleaseNodeLock by @jianzhangbjz in #2329
- fix(hygon,metax): guard int32 narrowing in GenerateResourceRequests by @Eshiv-Pandey in #2388
- fix(awsneuron): handle init-container annotation indexes by @Eshiv-Pandey in #2173
- fix: Handle HTTP response write errors in scheduler routes by @shinigami-777 in #2571
- Fix bug about auto-memory trim when using hami-core mode for vNPU by @archlitchi in #2696
- fix(scheduler): remove stale device vendors on zero-device update by @AyushSrivastava1818 in #2550
- fix(metrics): add device_type label to node memory ratio metrics (#2370) by @princexpoddar in #2554
- fix(vGPUmonitor): add missing node label to host GPU metrics by @SK8-infi in #2580
- fix(ascend): guard int32 narrowing in GenerateResourceRequests by @Eshiv-Pandey in #2601
- fix(scheduler): detect stale pod device allocations during usage reconciliation by @AyushSrivastava1818 in #2618
- fix(scheduler): rollback partial device locks by @AyushSrivastava1818 in #2626
- fix test crash in client test by @KunwarSidhu47 in #2683
- fix(scheduler): allow multiple MIG instances on one GPU by @saiyam1814 in #2724
- fix(awsneuron): prevent odd NeuronCore request truncation by @Eshiv-Pandey in #2674
- fix(scheduler): don't cache a nil NodeUsage when node is missing from snapshot by @adity1raut in #2436
- fix(scheduler): reconcile health on device discovery error by @AyushSrivastava1818 in #2568
- fix(kunlun): honour use-gpuuuid and nouse-gpuuuid annotations by @Lakshya77089 in #2577
- fix(device): reject int32-overflowing memory requests in iluvatar and mthreads by @veyron-kairo in #2285
- fix(scheduler): reject filter requests with no Pod instead of panicking by @adity1raut in #2689
- fix: use atomic load/store for shared-region limit fields by @om7057 in #2179
- fix(device-plugin): make MigInstanceManager own its NVML init/shutdown by @AdityaShome in #2610
- fix(scheduler): preserve per-container slot count when collapsing pod device usage by @Eshiv-Pandey in #2623
📚 Documentation
- docs: remove stale tasklist.md, migrate content to separate issues by @ManishSharma1609 in #1801
- docs: add CNCF copyright disclaimer to README files by @mesutoezdil in #1830
- docs: complete tasklist.md migration - add hardware entries, resource… by @maishivamhoo123 in #1829
- docs: add v2.9.0 documentation audit report by @mesutoezdil in #1761
- docs: rewrite English README with improved structure and clarity by @rootsongjc in #1849
- docs: remove legacy docs/ content superseded by project-hami/website by @mesutoezdil in #1913
- docs: add ecosystem integrations section to README by @mesutoezdil in #1970
- docs: update supported versions to v2.9.x by @mesutoezdil in #1976
- docs: fix typo and annotation keys in protocol.md by @mesutoezdil in #1978
- docs: mark Biren as completed in roadmap by @DSFans2014 in #1979
- docs: fix typo and mark AMD and MIG as supported in roadmap by @mesutoezdil in #1975
- docs: fix typos in design.md by @mesutoezdil in #1974
- docs: fix Spread score description in scheduler-policy.md by @mesutoezdil in #1977
- docs: add issue and PR lifecycle policy to CONTRIBUTING.md by @mesutoezdil in #1988
- docs: add AMD Instinct vGPU design draft (#1707) by @kenji-mido in #1985
- docs(CONTRIBUTING): add guideline to separate cosmetics from function… by @fishman in #1995
- docs: fix typo and wrong repo URL in release-process.md by @mesutoezdil in #2008
- docs: add missing changelog entries for v2.4.0 through v2.9.0 by @mesutoezdil in #2007
- docs: add contribution gates to AI assistance policy by @mesutoezdil in #2019
- docs: add vulnerability scope note to security policy by @mesutoezdil in #2063
- docs(MAINTAINERS): add community managers to offload administrative tasks by @fishman in #2069
- docs: clarify claiming roadmap items before starting work by @mesutoezdil in #2079
- docs: design for init-container GPU resource accounting by @maishivamhoo123 in #2064
- docs: add SECURITY-INSIGHTS.yml security metadata file by @mesutoezdil in #2093
- docs: drop stale glibc upper bound from prerequisites by @mesutoezdil in #2102
- docs: declare secret scanning tooling in SECURITY-INSIGHTS.yml by @mesutoezdil in #2113
- docs: fix annotation key and encoding format in protocol.md by @chidwipak in #2185
- docs: correct stale golangci-lint version references in CLAUDE.md by @asadjan4611 in #2402
- docs: add AWS Neuron device to roadmap support table by @KunwarSidhu47 in #2422
- docs: document ResourceQuota interaction for init container accounting. by @maishivamhoo123 in #2535
- docs: add Kunlunxin XPU to supported devices list (Fixes #2608) by @KunwarSidhu47 in #2609
- docs: fix typo in Helm chart README (#2585) by @Kanika0306 in #2587
- docs: design for sidecar container GPU resource accounting by @maishivamhoo123 in #2584
- docs(chart): document all default Kunlunxin custom resources by @asadjan4611 in #2706
- docs: make the bug-report template accelerator-neutral by @asadjan4611 in #2668
🔨 Other Changes
- add device type label in metrics by @xiyichan in #1612
- security: add io.LimitReader to scheduler routes to prevent DoS #554 by @maishivamhoo123 in #1620
- add fouof to approvers by @FouoF in #1642
- Update Maintainers information by @archlitchi in #1646
- [Snyk] Security upgrade tensorflow/tensorflow from 2.20.0rc0-gpu to 2.21.0rc0-gpu by @wawa0210 in #1652
- chore: remove deprecated scheduler policy configmap by @haitwang-cloud in #1651
- [Snyk] Security upgrade tensorflow/tensorflow from 2.21.0rc0-gpu to 2.21.0rc1-gpu by @wawa0210 in #1681
- vGPUmonitor: skip devices with invalid UTF-8 UUID during container init by @charford in #1703
- Helm - Render nvidia.overwriteEnv from values with a default of false. by @jcustenborder in #1706
- Update dashboard.md fix nvidia.com/gpucores comment by @Nov11 in #1712
- update nvidia_dp and nvidia_container_runtime module by @archlitchi in #1731
- chore: resolve staticcheck and modernize linter warnings by @maishivamhoo123 in #1728
- chore: using LeaderElectionConfiguration for kubernetes v1.23 and newer version by @Shouren in #1737
- Add general Technical review to documents by @archlitchi in #1752
- test: improve coverage for pkg/version/version.go by @Yonsun-w in #1748
- Configure ASCEND_VISIBLE_DEVICES env for container and RuntimeClassName for pods by @peachest in #1738
- test: improve nvidia device.go UT coverage to 98.5% by @kenwoodjw in #1757
- security: upgrade golang for security issue by @Shouren in #1772
- Upgrade Go to 1.26.2 by @luohua13 in #1791
- update benchmarks by @maverick-woo in #1790
- add DSFans2014 to approvers by @DSFans2014 in #1805
- Disable host network for device plugin by @luohua13 in #1789
- bump HAMi-DRA version to v0.2.0 by @FouoF in #1845
- Preparations to release v2.9.0 by @archlitchi in #1850
- Sync the Chinese and Japanese README with the English version by @rootsongjc in #1852
- Update example images and captions in README files by @rootsongjc in #1873
- chore: update golangci-lint version and fix lint violations by @dongjiang1989 in #1892
- test: add unit tests for nvinternal info, mig, and watch packages by @pmady in #1893
- build(deps): bump github.com/ccoveille/go-safecast/v2 by @ccoVeille in #1914
- chore(e2e): allow concurrent running in one runner by @FouoF in #1918
- test(util): add coverage for GetGPUSchedulerPolicyByPod by @mesutoezdil in #1920
- test(util): add coverage for SchedulerPolicyName.String by @mesutoezdil in #1919
- test(nodelock): add coverage for setupNodeLockTimeout by @mesutoezdil in #1928
- test(policy): add coverage for NodeScore.SnapshotDevice by @mesutoezdil in #1926
- chore(e2e): no longer delete namespace when clean up by @FouoF in #1939
- examples: add vLLM cross-vGPU tensor parallel deployment by @haitwang-cloud in #1947
- chore(scheduler): remove unused default resource flags by @zzzkl in #1953
- build(docker): align HAMi with HAMi-core compile image by @spencercjh in #1958
- build(docker): fix stale cuda 13 runtime references by @spencercjh in #1961
- cleanup: tidy go.sum to match go.mod by @usernameisnull in #1973
- cleanup: remove dead code by @usernameisnull in #1972
- community: add mesutoezdil as reviewer by @mesutoezdil in #1983
- Export nvidia device plugin methods for ascend device plugin by @peachest in #1989
- deprecation: remove labels marked as to be deprecated by @FouoF in #2021
- Update project status to Incubating in documentation by @rootsongjc in #2032
- remove dra from charts by @archlitchi in #2038
- Remove 'deleted' annotations when registering by @archlitchi in #2052
- chore: remove dead code by @mesutoezdil in #2060
- Remove postStart hook for hami-core-vNPU tasks by @archlitchi in #2062
- remove unused
CtrIDsfromPodInfoby @DSFans2014 in #2071 - device-plugin: opt-in NUMA topology for vGPU replicas by @saiyam1814 in #2065
- chore: remove unreviewable binary artifact imgs/hami-arch.pptx by @mesutoezdil in #2097
- chore: remove dead script, boilerplate file, and unused ParseConfig stubs by @mesutoezdil in #2098
- chore: remove unreferenced images from imgs/ by @mesutoezdil in #2099
- build: bump Go toolchain to 1.26.5 by @mesutoezdil in #2092
- test: add native fuzz test for DecodeContainerDevices by @mesutoezdil in #2146
- test: add tests for predicate and bind routes, including error handling by @adity1raut in #2136
- chore: remove unused variables by @DSFans2014 in #2189
- test(rm): raise nvml_devices.go coverage up to 80% by @adity1raut in #2177
- test(kunlun): raise vdevice.go coverage up to 95% by @adity1raut in #2176
- chore(metrics): remove leftover client_golang tutorial scaffolding by @veyron-kairo in #2263
- test: add fuzz and round-trip tests for node/pod device annotation pa… by @asadjan4611 in #2376
- test(device-plugin): Improve test coverage for
device-plugin/nvidiadevice/nvinternal/cdiby @shinigami-777 in #2351 - test(vGPUmonitor): expect short UUID to be skipped, not error by @imantaba in #2407
- Missing Test for Node Discovery Handshake on Malformed/Empty Annotations by @aniket866 in #2368
- cleanup(metax): decouple MetaxSDevices.ScoreNode from the scheduler policy string by @asadjan4611 in #2413
- test(plugin): fix TestGetNumaNode failure caused by existing PCI bus ID by @shinigami-777 in #2546
- test(device): fuzz container codec round trip by @blackdragoon26 in #2583
- chore: bump Go builder to 1.26.6 by @mesutoezdil in #2710
- ci: move release workflow write permissions to job level by @mesutoezdil in #2711
- chore: bump golang.org/x/mod to v0.40.0 by @mesutoezdil in #2747
New Contributors
- @maishivamhoo123 made their first contribution in #1620
- @hoteye made their first contribution in #1627
- @jsl9208 made their first contribution in #1637
- @ashergaga made their first contribution in #1610
- @Atroxgod made their first contribution in #1690
- @MyoungHaSong made their first contribution in #1644
- @charford made their first contribution in #1703
- @jcustenborder made their first contribution in #1706
- @Nov11 made their first contribution in #1712
- @ilia-medvedev made their first contribution in #1714
- @Yonsun-w made their first contribution in #1749
- @CFH2436 made their first contribution in #1759
- @kenwoodjw made their first contribution in #1757
- @anandj91 made their first contribution in #1760
- @ManishSharma1609 made their first contribution in #1801
- @maverick-woo made their first contribution in #1790
- @almazkhalikov made their first contribution in #1783
- @lin121291 made their first contribution in #1820
- @mesutoezdil made their first contribution in #1831
- @rootsongjc made their first contribution in #1849
- @pmady made their first contribution in #1893
- @bolin-dai made their first contribution in #1898
- @ccoVeille made their first contribution in #1914
- @spencercjh made their first contribution in #1917
- @lvkaili made their first contribution in #1934
- @zzzkl made their first contribution in #1953
- @usernameisnull made their first contribution in #1973
- @kenji-mido made their first contribution in #1985
- @fishman made their first contribution in #1995
- @LynPtl made their first contribution in #2022
- @shkatara made their first contribution in #2135
- @imantaba made their first contribution in #2105
- @Jay2006sawant made their first contribution in #2139
- @Aryanbhargava18 made their first contribution in #2142
- @adity1raut made their first contribution in #2136
- @chidwipak made their first contribution in #2185
- @ShiroKSH made their first contribution in #2197
- @princexpoddar made their first contribution in #2238
- @iemAnshuman made their first contribution in #2250
- @Eshiv-Pandey made their first contribution in #2160
- @SK8-infi made their first contribution in #2272
- @cotishq made their first contribution in #2293
- @veyron-kairo made their first contribution in #2263
- @AyushSrivastava1818 made their first contribution in #2333
- @hemantrajputt made their first contribution in #2299
- @Lakshya77089 made their first contribution in #2347
- @devGPP23 made their first contribution in #2240
- @Nakshatra480 made their first contribution in #2371
- @Brijesh-Thakkar made their first contribution in #2306
- @aaka24 made their first contribution in #2358
- @asadjan4611 made their first contribution in #2376
- @shinigami-777 made their first contribution in #2351
- @aniket866 made their first contribution in #2368
- @KunwarSidhu47 made their first contribution in #2422
- @keshav9926 made their first contribution in #2416
- @Rickydama3 made their first contribution in #2499
- @hyy321 made their first contribution in #2529
- @Ferryx349 made their first contribution in #2544
- @Kanika0306 made their first contribution in #2587
- @jianzhangbjz made their first contribution in #2329
- @manoj-1407 made their first contribution in #2616
- @om7057 made their first contribution in #2179
- @AdityaShome made their first contribution in #2610
- @mohityadav8 made their first contribution in #2298
Full Changelog: v2.8.0...v2.10.0