{"id":37194162,"url":"https://github.com/vmware-archive/diego-cluster-simulations","last_synced_at":"2026-01-14T22:34:05.529Z","repository":{"id":22642508,"uuid":"25985410","full_name":"vmware-archive/diego-cluster-simulations","owner":"vmware-archive","description":"Simulations of Diego, on Diego.","archived":true,"fork":false,"pushed_at":"2022-03-24T15:57:17.000Z","size":34,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":33,"default_branch":"master","last_synced_at":"2024-12-19T00:03:53.388Z","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":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vmware-archive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-30T18:59:47.000Z","updated_at":"2023-01-28T02:09:57.000Z","dependencies_parsed_at":"2022-08-05T18:15:24.125Z","dependency_job_id":null,"html_url":"https://github.com/vmware-archive/diego-cluster-simulations","commit_stats":null,"previous_names":["pivotal-cf-experimental/diego-cluster-simulations"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vmware-archive/diego-cluster-simulations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fdiego-cluster-simulations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fdiego-cluster-simulations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fdiego-cluster-simulations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fdiego-cluster-simulations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vmware-archive","download_url":"https://codeload.github.com/vmware-archive/diego-cluster-simulations/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-archive%2Fdiego-cluster-simulations/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28436539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T21:32:52.117Z","status":"ssl_error","status_checked_at":"2026-01-14T21:32:33.442Z","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-14T22:34:04.582Z","updated_at":"2026-01-14T22:34:05.510Z","avatar_url":"https://github.com/vmware-archive.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Diego Cluster Simulations\n\nA collection of simulations of Diego that run on Diego.\n\n## Auction Scenarios\n\nIn practice, spinning up hundreds of external processes to simulate a distributed auction fails hard when one is running such a simulation on a single desktop/laptop computer.  The small-scale scenarios encoded in the [auction](http://github.com/cloudfoundry-incubator/auction) simulation work fine, but the larger-scale scenarios begin to fail because of resource constraints that are unrealistic and not endemic to the auction itself.  In short: the best to way to build confidence in the simulation (particularly a large-scale scenario) is to actually run the simulation on a cluster.\n\nThis can be done with Diego.  When Diego gets an API it will be possible to do this by simply pointing the simulation at Diego's API endpoint.  Until then, you must follow these steps:\n\n1. Run ./build.sh in `autioneer-lite` and `rep-lite`\n2. Use `github.com/pivotal-cf-experimental/veritas` to desire N LRPs for `auctioneer-lite` and N LRPs for `rep-lite` (note: you'll need to set NATSUSERNAME, NATSPASSWORD, NATSADDRESSES, ETCDCLUSTER:\n\n```bash\ncat \u003e desired_lrp_rep-lite.json \u003c\u003cEOF\n{  \n   \"process_guid\":\"rep-lite-1\",\n   \"domain\":\"veritas\",\n   \"root_fs\":\"\",\n   \"instances\":1,\n   \"stack\":\"lucid64\",\n   \"actions\":[  \n      {  \n         \"action\":\"download\",\n         \"args\":{  \n            \"from\":\"http://onsi-public.s3.amazonaws.com/rep-lite.tar.gz\",\n            \"to\":\".\",\n            \"extract\":true,\n            \"cache_key\":\"rep-lite\"\n         }\n      },\n      {  \n         \"action\":\"download\",\n         \"args\":{  \n            \"from\":\"PLACEHOLDER_FILESERVER_URL/v1/static/linux-circus/linux-circus.tgz\",\n            \"to\":\"/tmp/circus\",\n            \"extract\":true,\n            \"cache_key\":\"linux-circus\"\n         }\n      },\n      {  \n         \"action\":\"parallel\",\n         \"args\":{  \n            \"actions\":[  \n               {  \n                  \"action\":\"run\",\n                  \"args\":{  \n                     \"path\":\"./rep-lite\",\n                     \"args\":[  \n                        \"-repGuid=rep-lite-1\",\n                        \"-natsUsername=NATSUSERNAME\",\n                        \"-natsPassword=NATSPASSWORD\",\n                        \"-natsAddresses=NATSADDRESSES\"\n                     ],\n                     \"env\":[  \n\n                     ],\n                     \"timeout\":0,\n                     \"resource_limits\":{  \n\n                     }\n                  }\n               },\n               {  \n                  \"action\":\"monitor\",\n                  \"args\":{  \n                     \"action\":{  \n                        \"action\":\"run\",\n                        \"args\":{  \n                           \"path\":\"/tmp/circus/spy\",\n                           \"args\":[  \n                              \"-addr=:8080\"\n                           ],\n                           \"env\":null,\n                           \"timeout\":0,\n                           \"resource_limits\":{  \n\n                           }\n                        }\n                     },\n                     \"healthy_hook\":{  \n                        \"method\":\"PUT\",\n                        \"url\":\"http://127.0.0.1:20515/lrp_running/rep-lite-1/PLACEHOLDER_INSTANCE_INDEX/PLACEHOLDER_INSTANCE_GUID\"\n                     },\n                     \"unhealthy_hook\":{  \n                        \"method\":\"\",\n                        \"url\":\"\"\n                     },\n                     \"healthy_threshold\":1,\n                     \"unhealthy_threshold\":1\n                  }\n               }\n            ]\n         }\n      }\n   ],\n   \"disk_mb\":256,\n   \"memory_mb\":256,\n   \"ports\":[  \n      {  \n         \"container_port\":8080\n      }\n   ],\n   \"routes\":[  \n      \"rep-lite-1.diego-1.cf-app.com\"\n   ],\n   \"log\":{  \n      \"guid\":\"rep-lite-1\",\n      \"source_name\":\"VRT\"\n   }\n}\nEOF\n\ncat \u003e desired_lrp_auctioneer-lite.json \u003c\u003cEOF\n{  \n   \"process_guid\":\"auctioneer-lite-1\",\n   \"domain\":\"veritas\",\n   \"root_fs\":\"\",\n   \"instances\":1,\n   \"stack\":\"lucid64\",\n   \"actions\":[  \n      {  \n         \"action\":\"download\",\n         \"args\":{  \n            \"from\":\"http://onsi-public.s3.amazonaws.com/auctioneer-lite.tar.gz\",\n            \"to\":\".\",\n            \"extract\":true,\n            \"cache_key\":\"auctioneer-lite\"\n         }\n      },\n      {  \n         \"action\":\"download\",\n         \"args\":{  \n            \"from\":\"PLACEHOLDER_FILESERVER_URL/v1/static/linux-circus/linux-circus.tgz\",\n            \"to\":\"/tmp/circus\",\n            \"extract\":true,\n            \"cache_key\":\"linux-circus\"\n         }\n      },\n      {  \n         \"action\":\"parallel\",\n         \"args\":{  \n            \"actions\":[  \n               {  \n                  \"action\":\"run\",\n                  \"args\":{  \n                     \"path\":\"./auctioneer-lite\",\n                     \"args\":[  \n                        \"-timeout=1s\",\n                        \"-etcdCluster=ETCDCLUSTER\",\n                        \"-natsUsername=NATSUSERNAME\",\n                        \"-natsPassword=NATSPASSWORD\",\n                        \"-natsAddresses=NATSADDRESSES\"\n                     ],\n                     \"env\":[],\n                     \"timeout\":0,\n                     \"resource_limits\":{  \n\n                     }\n                  }\n               },\n               {  \n                  \"action\":\"monitor\",\n                  \"args\":{  \n                     \"action\":{  \n                        \"action\":\"run\",\n                        \"args\":{  \n                           \"path\":\"/tmp/circus/spy\",\n                           \"args\":[  \n                              \"-addr=:8080\"\n                           ],\n                           \"env\":null,\n                           \"timeout\":0,\n                           \"resource_limits\":{  \n\n                           }\n                        }\n                     },\n                     \"healthy_hook\":{  \n                        \"method\":\"PUT\",\n                        \"url\":\"http://127.0.0.1:20515/lrp_running/auctioneer-lite-1/PLACEHOLDER_INSTANCE_INDEX/PLACEHOLDER_INSTANCE_GUID\"\n                     },\n                     \"unhealthy_hook\":{  \n                        \"method\":\"\",\n                        \"url\":\"\"\n                     },\n                     \"healthy_threshold\":1,\n                     \"unhealthy_threshold\":1\n                  }\n               }\n            ]\n         }\n      }\n   ],\n   \"disk_mb\":256,\n   \"memory_mb\":256,\n   \"ports\":[  \n      {  \n         \"container_port\":8080\n      }\n   ],\n   \"routes\":[  \n      \"auctioneer-lite-1.diego-1.cf-app.com\"\n   ],\n   \"log\":{  \n      \"guid\":\"auctioneer-lite-1\",\n      \"source_name\":\"VRT\"\n   }\n}\nEOF\n\nfor i in {1..400}; do sed \"s/rep-lite-1/rep-lite-$i/g\" desired_lrp_rep-lite.json \u003e temp.json; veritas submit-lrp temp.json; done\nfor i in {1..400}; do sed \"s/auctioneer-lite-1/auctioneer-lite-$i/g\" desired_lrp_auctioneer-lite.json \u003e temp.json; veritas submit-lrp temp.json; done\n\nfor i in {1..400}; do veritas remove-lrp rep-lite-$i; done\nfor i in {1..400}; do veritas remove-lrp auctioneer-lite-$i; done\n```\n\n3. Once this is done, you can run `ginkgo` under `auctionscenarios` to run the simulation on the cluster!\n4. Compiling auctionscenarios yields a binary that runs through a number of cases.  You can push this binary, along with the test suite (`ginkgo build`) to the cluster to run a (very large, timeconsuming) simulation.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware-archive%2Fdiego-cluster-simulations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvmware-archive%2Fdiego-cluster-simulations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware-archive%2Fdiego-cluster-simulations/lists"}