{"id":20882037,"url":"https://github.com/weaveworks/weave-gitops-scenarios","last_synced_at":"2026-05-01T20:31:22.082Z","repository":{"id":37092509,"uuid":"504220406","full_name":"weaveworks/weave-gitops-scenarios","owner":"weaveworks","description":"Various test scenarios for weave-gitops","archived":false,"fork":false,"pushed_at":"2022-06-30T14:14:42.000Z","size":70,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-12-26T09:34:41.602Z","etag":null,"topics":["gitops","kubernetes","terraform","weave-gitops"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/weaveworks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-16T16:02:51.000Z","updated_at":"2023-02-15T23:56:50.000Z","dependencies_parsed_at":"2022-06-24T14:07:08.556Z","dependency_job_id":null,"html_url":"https://github.com/weaveworks/weave-gitops-scenarios","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/weaveworks/weave-gitops-scenarios","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fweave-gitops-scenarios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fweave-gitops-scenarios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fweave-gitops-scenarios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fweave-gitops-scenarios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weaveworks","download_url":"https://codeload.github.com/weaveworks/weave-gitops-scenarios/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Fweave-gitops-scenarios/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32512662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["gitops","kubernetes","terraform","weave-gitops"],"created_at":"2024-11-18T07:28:43.891Z","updated_at":"2026-05-01T20:31:22.043Z","avatar_url":"https://github.com/weaveworks.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitOps Scenarios\n\nThe aim of this repo is to provide some easy to install GitOps configurations that\ncan be used to test potential configurations of a cluster.\n\n## HEALTH WARNING\n\nThe scenarios configured in this repo are designed for local use only. Running\nthem against kubernetes clusters elsewhere should only be done after careful\ninspection of the configuration.\n\nThis repo configures several systems with the password `password`.\n\n\n## Usage\n\nThis shows how to start the minio server, a kind cluster with flux and then\nrun a scenario against it.\n\n```console\n$ make install-weave-gitops              # Create the cluster \u0026 install flux on it\n$ make run-many-podinfo-kustomizations   # Run the many-podinfo-kustomizations scenario\n$ make access-weave-gitops               # View the gitops UI\nbrowse to: http://localhost:5000\nForwarding from 127.0.0.1:5000 -\u003e 9001\nForwarding from [::1]:5000 -\u003e 9001\n...\n$ make rm-many-podinfo-kustomizations    # Stop running the scenario\n$ make delete-cluster                    # Stop the cluster\n$ make rm-minio                          # Stop minio\n```\n\nIf you're developing scenario-generators you can run\n```console\n$ make interactive-scenarios-image\n\u003e runscenario many_podinfo_kustomizations -n 90 --stdout\n```\nto start a TTY shell in the docker image. The helper function `runscenario` is\nconfigured to make it easy to run scenarios.\n\n**Note** because the scenario-generators are written in python they use `_` in\ntheir names rather than `-` (as is used elsewhere).\n\n\n## Scenarios\n\nThere are various scenarios we want to test but initially\n\n* Multi-namespace workloads: some number of namespaces, each with a workload\n  (initially podinfo)\n* Realistic OIDC configurations (this will need DEX setting up)\n* Load test workloads e.g. high (network|memory|CPU) loads\n\n### Dex\n\nThe Dex scenario configures several static users, all with the same password\n(`password`):\n\n* alice@test.invalid (password: 'password')\n* bob@test.invalid (password: 'password')\n\nBecause of how dex works to use this scenario you need to add the following\nto your `/etc/hosts` file (or other, OS appropriate, analogue):\n\n```\n# enable dex callbacks to route kind\n127.0.0.1 dex-dex.dex.svc.cluster.local\n```\n\nThis specifies that, on your machine only, the URL `dex-dex.dex.svc.cluster.local`\nresolves to `127.0.0.1` (the localhost, i.e. your machine). This should only be\ndone on your dev machine.\n\nIf you want to know _why_ you have to do this, please read\n[why edit /etc/hosts](./docs/why-edit-etc-hosts.md)\n\n\n## How this works\n\n1. Run a [kind cluster](https://kind.sigs.k8s.io/) as a k8s environment\n2. Run [minio](https://docs.min.io/) as an S3-style bucket source with every directory in this\n   repo as a bucket\n3. Install flux on the cluster\n4. Add the minio `./k8s` bucket as a flux bucket-source for `flux-system`\n5. Add a `flux-system` as a kustomization\n6. Add scenarios as specific kustomizations.\n\n## Scenario Generators\n\nScenarios that require a lot of resources to be made (e.g. for load testing)\ncan be created by adding a `\u003cscenario-name\u003e/generate.py` in\n`scenario-generators` and running `make scenario/\u003cscenario-name\u003e` which will\nrun the script and write the output to `/scenarios`.\n\nThe generators assume they'll receive an argument of `-d \u003cdirectory\u003e` to indicate\nwhere the output files will be written to. The default make target runs a docker\nimage that will call the generator targetting the mounted `/scenarios` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweaveworks%2Fweave-gitops-scenarios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweaveworks%2Fweave-gitops-scenarios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweaveworks%2Fweave-gitops-scenarios/lists"}