{"id":37154106,"url":"https://github.com/intel/platform-aware-scheduling","last_synced_at":"2026-01-14T18:09:47.948Z","repository":{"id":42523512,"uuid":"213982231","full_name":"intel/platform-aware-scheduling","owner":"intel","description":"Enabling Kubernetes to make pod placement decisions with platform intelligence.","archived":false,"fork":false,"pushed_at":"2025-01-29T18:56:34.000Z","size":812,"stargazers_count":174,"open_issues_count":6,"forks_count":44,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-01-29T19:24:29.071Z","etag":null,"topics":["descheduler","kubernetes-scheduler","metrics","scheduler-extender","telemetry-aware-scheduling","telemetry-policies","workload"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/intel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-09T17:32:14.000Z","updated_at":"2025-01-29T18:56:30.000Z","dependencies_parsed_at":"2023-11-23T22:20:49.309Z","dependency_job_id":"1fafa8a7-df84-4210-bb37-aeb5a500c126","html_url":"https://github.com/intel/platform-aware-scheduling","commit_stats":null,"previous_names":["intel/telemetry-aware-scheduling"],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/intel/platform-aware-scheduling","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fplatform-aware-scheduling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fplatform-aware-scheduling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fplatform-aware-scheduling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fplatform-aware-scheduling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/intel","download_url":"https://codeload.github.com/intel/platform-aware-scheduling/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fplatform-aware-scheduling/sbom","scorecard":{"id":490806,"data":{"date":"2025-08-11","repo":{"name":"github.com/intel/platform-aware-scheduling","commit":"c4c90e36d256c41e4ab007a171ab4bd2d058f587"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.6,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: security.md:1","Info: Found linked content: security.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: security.md:1","Info: Found text in security policy: security.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Code-Review","score":8,"reason":"Found 14/16 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/BM-end-to-end.yaml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/BM-static-analysis.yaml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/bm-job-exit-trigger.yaml:22","Info: topLevel 'contents' permission set to 'read': .github/workflows/checkout-cno-ci-repo-job.yaml:25","Info: topLevel 'contents' permission set to 'read': .github/workflows/checkout-tas-repo-job.yaml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/end-to-end-test.yaml:35","Info: topLevel 'contents' permission set to 'read': .github/workflows/go-build-and-test.yml:16","Info: topLevel 'contents' permission set to 'read': .github/workflows/nightly-vulnerability-scans.yaml:20","Info: topLevel 'contents' permission set to 'read': .github/workflows/regression-workflow.yaml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/static-analysis.yaml:40","Info: topLevel 'contents' permission set to 'read': .github/workflows/trivy-image-scan.yaml:18","Info: topLevel 'contents' permission set to 'read': .github/workflows/trivy-scan.yaml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/workflow.yaml:10","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: GoBuiltInFuzzer integration found: configurator/internal/cmd/configurator_test.go:127","Info: GoBuiltInFuzzer integration found: configurator/internal/cmd/configurator_test.go:131","Info: GoBuiltInFuzzer integration found: telemetry-aware-scheduling/pkg/telemetryscheduler/scheduler_fuzz_test.go:480","Info: GoBuiltInFuzzer integration found: telemetry-aware-scheduling/pkg/telemetryscheduler/scheduler_fuzz_test.go:524"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/checkout-cno-ci-repo-job.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/checkout-cno-ci-repo-job.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/checkout-tas-repo-job.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/checkout-tas-repo-job.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/end-to-end-test.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/end-to-end-test.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/end-to-end-test.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/end-to-end-test.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/end-to-end-test.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/end-to-end-test.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build-and-test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/go-build-and-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build-and-test.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/go-build-and-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static-analysis.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/static-analysis.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static-analysis.yaml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/static-analysis.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static-analysis.yaml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/static-analysis.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static-analysis.yaml:92: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/static-analysis.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static-analysis.yaml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/static-analysis.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static-analysis.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/static-analysis.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/trivy-image-scan.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/trivy-image-scan.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/trivy-scan.yaml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/intel/platform-aware-scheduling/trivy-scan.yaml/master?enable=pin","Warn: containerImage not pinned by hash: configurator/Dockerfile:5","Warn: containerImage not pinned by hash: gpu-aware-scheduling/deploy/images/Dockerfile:5","Warn: containerImage not pinned by hash: telemetry-aware-scheduling/deploy/images/Dockerfile:5","Warn: downloadThenRun not pinned by hash: .github/workflows/static-analysis.yaml:98","Warn: downloadThenRun not pinned by hash: .github/workflows/trivy-image-scan.yaml:34","Warn: downloadThenRun not pinned by hash: .github/workflows/trivy-scan.yaml:29","Info:   0 out of  15 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:   0 out of   3 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2025-3488 / GHSA-6v2p-p543-phr9"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T19:05:10.874Z","repository_id":42523512,"created_at":"2025-08-19T19:05:10.874Z","updated_at":"2025-08-19T19:05:10.874Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28429753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["descheduler","kubernetes-scheduler","metrics","scheduler-extender","telemetry-aware-scheduling","telemetry-policies","workload"],"created_at":"2026-01-14T18:09:47.247Z","updated_at":"2026-01-14T18:09:47.942Z","avatar_url":"https://github.com/intel.png","language":"Go","readme":"# PROJECT NOT UNDER ACTIVE MANAGEMENT\nThis project will no longer be maintained by Intel.  \nIntel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.  \nIntel no longer accepts patches to this project.  \nIf you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.  \n\n# Platform Aware Scheduling\nPlatform Aware Scheduling (PAS) contains a group of related projects designed to expose platform specific attributes to the Kubernetes scheduler using a modular policy driven approach. The project contains a core library and information for building custom scheduler extensions as well as specific  implementations that can be used in a working cluster or leveraged as a reference for creating new Kubernetes scheduler extensions.\n\nTelemetry Aware Scheduling is the initial reference implementation of Platform Aware Scheduling. It can expose any platform-level metric to the Kubernetes Scheduler for policy driven filtering and prioritization of workloads. You can read more about TAS [here](/telemetry-aware-scheduling).\n\nGPU Aware Scheduling is the implementation of the GPU resource aware Kubernetes scheduler extension.\n\n\n* [Kubernetes Scheduler Extenders](#kubernetes-scheduler-extenders)\n* [Extenders](#plugins)\n    * [Telemetry Aware Scheduling](/telemetry-aware-scheduling)\n    * [GPU Aware Scheduling](/gpu-aware-scheduling)\n* [Communication and contribution](#communication-and-contribution)\n\n## Kubernetes Scheduler Extenders\n\nPlatform Aware Scheduling leverages the power of Kubernetes Scheduling Extenders. These extenders allow the core Kubernetes scheduler to make HTTP calls to an external service which can then modify scheduling decisions. This can be used to provide workload specific scheduling direction based on attributes not normally exposed to the Kubernetes scheduler.\n\nThe [extender](/extender) package at the top-level of this repo can be used to quickly create a working scheduler extender.\n\n### Enabling a scheduler extender\n\nScheduler extenders are enabled by providing a scheduling configuration file to the default Kubernetes scheduler. An example of a configuration file:\n\n````\napiVersion: kubescheduler.config.k8s.io/v1beta2\nkind: KubeSchedulerConfiguration\nclientConnection:\n  kubeconfig: /etc/kubernetes/scheduler.conf\nextenders:\n  - urlPrefix: \"https://tas-service.telemetry-aware-scheduling.svc.cluster.local:9001\"\n    prioritizeVerb: \"scheduler/prioritize\"\n    filterVerb: \"scheduler/filter\"\n    weight: 1\n    enableHTTPS: true\n    managedResources:\n      - name: \"telemetry/scheduling\"\n        ignoredByScheduler: true\n    ignorable: true\n    tlsConfig:\n      insecure: false\n      certFile: \"/host/certs/client.crt\"\n      keyFile: \"/host/certs/client.key\"\n\n````\n\nThere are a number of options available to us under the \"extenders\" configuration object. Some of these fields - such as setting the urlPrefix, filterVerb and prioritizeVerb are necessary to point the Kubernetes scheduler to our scheduling service, while other sections deal the TLS configuration of mutual TLS. The remaining fields tune the behavior of the scheduler: managedResource is used to specify which pods should be scheduled using this service, in this case pods which request the dummy resource telemetry/scheduling, ignorable tells the scheduler what to do if it can't reach our extender and weight sets the relative influence our extender has on prioritization decisions.\n\nWith a configuration like the above as part of the Kubernetes scheduler configuration the identified webhook becomes part of the scheduling process.\n\nTo read more about scheduler extenders see the [official docs](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/scheduler_extender.md).\n \n## Adding a new extender to Platform Aware Scheduling\nPlatform Aware Scheduling is a single repo designed to host multiple hardware enabling Kubernetes Scheduler Extenders. A new scheduler can be added with an issue and pull request.\n\nEach project under the top-level repo has its own go module, dependency model and lifecycle.There is no single top level go.mod for the project. Some development tools and testing workflows may need to be done in the context of the go module they're targeting i.e. by changing into one of the directories that contains a go module.\n\n## Communication and contribution\n\nReport a bug by [filing a new issue](https://github.com/intel/telemetry-aware-scheduling/issues).\n\nContribute by [opening a pull request](https://github.com/intel/telemetry-aware-scheduling/pulls).\n\nLearn [about pull requests](https://help.github.com/articles/using-pull-requests/).\n\n**Reporting a Potential Security Vulnerability:** If you have discovered potential security vulnerability in TAS, please send an e-mail to secure@intel.com. For issues related to Intel Products, please visit [Intel Security Center](https://security-center.intel.com).\n\nIt is important to include the following details:\n\n- The projects and versions affected\n- Detailed description of the vulnerability\n- Information on known exploits\n\nVulnerability information is extremely sensitive. Please encrypt all security vulnerability reports using our [PGP key](https://www.intel.com/content/www/us/en/security-center/pgp-public-key.html).\n\nA member of the Intel Product Security Team will review your e-mail and contact you to collaborate on resolving the issue. For more information on how Intel works to resolve security issues, see: [vulnerability handling guidelines](https://www.intel.com/content/www/us/en/security-center/vulnerability-handling-guidelines.html).\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintel%2Fplatform-aware-scheduling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintel%2Fplatform-aware-scheduling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintel%2Fplatform-aware-scheduling/lists"}