Giter Club home page Giter Club logo

gitops-benchmark's Introduction

flux-benchmark

benchmark

Mean Time To Production benchmarks for Flux release candidates, made with Timoni.

The benchmark results can be found in RESULTS.md.

Prerequisites

Start by cloning the repository locally:

git clone https://github.com/stefanprodan/flux-benchmark.git
cd flux-benchmark

Install Kubernetes kind, flux, timoni, crane and other CLI tools with Homebrew:

make tools

The complete list of tools can be found in the Brewfile.

Cluster Setup

Create a Kind cluster and a Docker registry:

make up

The Docker registry is exposed on the local machine on localhost:5555 and inside the cluster on flux-registry:5000.

The Kubernetes cluster is made out of 3 nodes:

  • flux-control-plane (Kubernetes API & etcd)
  • flux-worker (Flux controllers)
  • flux-worker1 (Prometheus, Grafana, kube-state-metrics, metrics-server)

Flux Setup

Install Flux on a dedicated node with:

make flux-up

Monitoring Setup

Install the Flux monitoring stack with:

timoni bundle apply -f timoni/bundles/flux-monitoring.cue --timeout 10m

To access Grafana, start port forward in a separate shell:

kubectl -n monitoring port-forward svc/kube-prometheus-stack-grafana  3000:80

Navigate to http://localhost:3000 in your browser and login with user admin and password flux.

Benchmark Setup

Push the Timoni modules to the local registry with:

make timoni-push

Flux Kustomization Benchmark

Run the benchmark for OCI artifact pull and Flux Kustomization install:

KS=100 timoni bundle apply -f timoni/bundles/flux-benchmark.cue --runtime-from-env --timeout=10m

Run the benchmark for Flux Kustomization upgrade:

KS=100 MCPU=2 timoni bundle apply -f timoni/bundles/flux-benchmark.cue --runtime-from-env --timeout=10m

Flux HelmRelease Benchmark

Run the benchmark for Helm chart pull and Flux HelmRelease install:

HR=100 timoni bundle apply -f timoni/bundles/flux-benchmark.cue --runtime-from-env --timeout=10m

Run the benchmark for Flux HelmRelease upgrade:

HR=100 MCPU=2 timoni bundle apply -f timoni/bundles/flux-benchmark.cue --runtime-from-env --timeout=10m

Teardown

Remove all Flux resources and the benchmark namespaces with:

timoni bundle delete flux-benchmark

gitops-benchmark's People

Contributors

hiddeco avatar stefanprodan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.