{"id":37091630,"url":"https://github.com/vmware-archive/vsphere-affinity-scheduling-plugin","last_synced_at":"2026-01-14T11:09:09.648Z","repository":{"id":66820441,"uuid":"134310532","full_name":"vmware-archive/vsphere-affinity-scheduling-plugin","owner":"vmware-archive","description":"A Kubernetes plugin that helps scheduler making placement decision for pods with affinity rule on top of vSphere.","archived":true,"fork":false,"pushed_at":"2020-01-12T17:04:00.000Z","size":5656,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-19T00:05:06.796Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vmware-archive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-05-21T18:42:21.000Z","updated_at":"2023-01-28T11:58:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c22fec3-554c-4ea9-ad26-935c78b3518a","html_url":"https://github.com/vmware-archive/vsphere-affinity-scheduling-plugin","commit_stats":null,"previous_names":["vmware/vsphere-affinity-scheduling-plugin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vmware-archive/vsphere-affinity-scheduling-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fvsphere-affinity-scheduling-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fvsphere-affinity-scheduling-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fvsphere-affinity-scheduling-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fvsphere-affinity-scheduling-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vmware-archive","download_url":"https://codeload.github.com/vmware-archive/vsphere-affinity-scheduling-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fvsphere-affinity-scheduling-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28417952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2026-01-14T11:09:08.723Z","updated_at":"2026-01-14T11:09:09.640Z","avatar_url":"https://github.com/vmware-archive.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# VMware has ended active development of this project, this repository will no longer be updated.\n\n# vsphere-affinity-scheduling-plugin\n\n## Overview\n\n### Kubernetes\n\nKubernetes is gaining popularity in container management, automating the deployment,\nupgrade and scaling of containerized applications. Kube-scheduler is the component\nto that decides the placement of pods onto a pool of worker machines called nodes.\nKube-scheduler has a rich set of features, which allows users to specify resource\nconstraint to pods as well as other policies. One of the most popular policies is\npod affinity/anti-affinity, which allows users to specify pods that reside together\nor separately.\n\n### Pod affinity/anti-affinity on vSphere\n\nPod affinity/anti-affinity policies are very useful when users want either pod\nadjacency for performance, or separation for redundancy. For example, users want\n2 pods on the same host, so the communication between those pods are not traveling\nexternally to network devices. A more critical use case is users want a 3-node\netcd cluster to be deployed on 3 different nodes, so losing any one of them does\nnot cause the cluster lose quorum. Both use cases require pod affinity and pod\nanti-affinity policy support from Kube-scheduler.\n\nEverything should work perfectly if the Kubernetes cluster runs on physical nodes.\nHowever, when the cluster node is running on virtual machines (most likely it\ndoes), like on vSphere, things become more complicated. Take anti-affinity as\nan example, if all the etcd pods running on different virtual machines, but all\nvirtual machines are running on the same physical host, does the policy give you\nany guarantee that you assume you would have? The answer is clearly no. This\nplugin is to extend Kubernetes scheduler so that it has both additional information\nfrom vSphere to help it making better affinity decisions.\n\nRefer to this [intro](./docs/intro.md) for more details.\n\n## Try it out\n\n### Compatibility\n\nThis plugin is compatible with\n\n- Kubernetes 1.8+\n- vSphere 6.5+\n\nAny Kubernetes distribution running on vSphere should be compatible with this\nplugin, no matter it's managed by [PKS](https://pivotal.io/platform/pivotal-container-service),\n[tectonic](https://coreos.com/tectonic/), or any other tools. However, if you\ndo find issues with compatibility, please let us know by submitting issues\n[here](https://github.com/vmware/vsphere-affinity-scheduling-plugin/issues).\n\n### Prerequisites\n\n* [go](https://golang.org)\n* [docker](https://docker.io)\n\n### Build\n\nJust running `go build` on the root folder of the project will compile into\n`vsphere-affinity-scheduling-plugin` in the same folder.\n\nRunning `go install` will build and install it into your `GOPATH`.\n\n### Test\n\n`make check` will check the style by govet and golint.\n\n`make test` will run unit tests.\n\n`make e2e` will run e2e tests.\n\n### Run\n\nCheck the CLI helper with `./vsphere-affinity-scheduling-plugin -h`\n\n## Contributing\n\nThe vsphere-affinity-scheduling-plugin project team welcomes contributions from the community. If you wish to contribute code and you have not\nsigned our contributor license agreement (CLA), our bot will update the issue when you open a Pull Request. For any\nquestions about the CLA process, please refer to our [FAQ](https://cla.vmware.com/faq). For more detailed information,\nrefer to [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nThis software is available under Apache 2 license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware-archive%2Fvsphere-affinity-scheduling-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvmware-archive%2Fvsphere-affinity-scheduling-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware-archive%2Fvsphere-affinity-scheduling-plugin/lists"}