{"id":19472218,"url":"https://github.com/fluxcd/flux-benchmark","last_synced_at":"2025-02-25T15:24:04.532Z","repository":{"id":72481571,"uuid":"251689434","full_name":"fluxcd/flux-benchmark","owner":"fluxcd","description":"Mean Time To Production benchmark for Flux","archived":false,"fork":false,"pushed_at":"2025-02-19T14:58:48.000Z","size":315,"stargazers_count":24,"open_issues_count":1,"forks_count":4,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-02-19T15:47:20.558Z","etag":null,"topics":["benchmarking","fluxcd","gitops","timoni"],"latest_commit_sha":null,"homepage":"https://fluxcd.io","language":"CUE","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/fluxcd.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-31T18:05:45.000Z","updated_at":"2024-09-30T10:48:13.000Z","dependencies_parsed_at":"2023-12-08T19:28:29.994Z","dependency_job_id":"5748545c-0c92-49cc-839c-604e8bdb0343","html_url":"https://github.com/fluxcd/flux-benchmark","commit_stats":null,"previous_names":["fluxcd/flux-benchmark"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxcd%2Fflux-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxcd%2Fflux-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxcd%2Fflux-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxcd%2Fflux-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fluxcd","download_url":"https://codeload.github.com/fluxcd/flux-benchmark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240692323,"owners_count":19842231,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["benchmarking","fluxcd","gitops","timoni"],"created_at":"2024-11-10T19:13:30.847Z","updated_at":"2025-02-25T15:24:04.476Z","avatar_url":"https://github.com/fluxcd.png","language":"CUE","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flux-benchmark\n\n[![benchmark](https://github.com/fluxcd/flux-benchmark/actions/workflows/test.yaml/badge.svg)](https://github.com/fluxcd/flux-benchmark/actions/workflows/test.yaml)\n\n**Mean Time To Production** benchmarks\nfor [Flux](https://fluxcd.io) release candidates,\nmade with [Timoni](https://github.com/stefanprodan/timoni).\n\nThe benchmark results can be found in [RESULTS.md](RESULTS.md).\n\n## Prerequisites\n\nStart by cloning the repository locally:\n\n```shell\ngit clone https://github.com/stefanprodan/flux-benchmark.git\ncd flux-benchmark\n```\n\nInstall Kubernetes kind, flux, timoni, crane and other CLI tools with Homebrew:\n\n```shell\nmake tools\n```\n\nThe complete list of tools can be found in the `Brewfile`.\n\n## Cluster Setup\n\nCreate a Kind cluster and a Docker registry:\n\n```shell\nmake up\n```\n\nThe Docker registry is exposed on the local machine on `localhost:5555`\nand inside the cluster on `flux-registry:5000`. \n\nThe Kubernetes cluster is made out of 3 nodes:\n- flux-control-plane (Kubernetes API \u0026 etcd)\n- flux-worker (Flux controllers)\n- flux-worker1 (Prometheus, Grafana, kube-state-metrics, metrics-server)\n\n## Flux Setup\n\nInstall Flux on a dedicated node with:\n\n```shell\nmake flux-up\n```\n\n## Monitoring Setup\n\nInstall the Flux monitoring stack with:\n\n```shell\ntimoni bundle apply -f timoni/bundles/flux-monitoring.cue --timeout 10m\n```\n\nTo access Grafana, start port forward in a separate shell:\n\n```shell\nkubectl -n monitoring port-forward svc/kube-prometheus-stack-grafana  3000:80\n```\n\nNavigate to `http://localhost:3000` in your browser and login with user `admin` and password `flux`.\n\n## Benchmark Setup\n\nPush the Timoni modules to the local registry with:\n\n```shell\nmake timoni-push\n```\n\n### Flux Kustomization Benchmark\n\nRun the benchmark for OCI artifact pull and Flux Kustomization install:\n\n```shell\nKS=100 timoni bundle apply -f timoni/bundles/flux-benchmark.cue --runtime-from-env --timeout=10m\n```\n\nRun the benchmark for Flux Kustomization upgrade:\n\n```shell\nKS=100 MCPU=2 timoni bundle apply -f timoni/bundles/flux-benchmark.cue --runtime-from-env --timeout=10m\n```\n\n### Flux HelmRelease Benchmark\n\nRun the benchmark for Helm chart pull and Flux HelmRelease install:\n\n```shell\nHR=100 timoni bundle apply -f timoni/bundles/flux-benchmark.cue --runtime-from-env --timeout=10m\n```\n\nRun the benchmark for Flux HelmRelease upgrade:\n\n```shell\nHR=100 MCPU=2 timoni bundle apply -f timoni/bundles/flux-benchmark.cue --runtime-from-env --timeout=10m\n```\n\n### Teardown\n\nRemove all Flux resources and the benchmark namespaces with:\n\n```shell\ntimoni bundle delete flux-benchmark\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluxcd%2Fflux-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluxcd%2Fflux-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluxcd%2Fflux-benchmark/lists"}