Skip to content

Latest commit

 

History

History
89 lines (64 loc) · 3.17 KB

README.md

File metadata and controls

89 lines (64 loc) · 3.17 KB

Flagger load testing service

Flagger's load testing service is based on rakyll/hey and bojand/ghz. It can be used to generate HTTP and gRPC traffic during canary analysis when configured as a webhook.

Prerequisites

  • Kubernetes >= 1.11

Installing the Chart

Add Flagger Helm repository:

helm repo add flagger https://flagger.app

To install the chart with the release name flagger-loadtester:

helm upgrade -i flagger-loadtester flagger/loadtester

The command deploys loadtester on the Kubernetes cluster in the default namespace.

Tip: Note that the namespace where you deploy the load tester should have the Istio, App Mesh or Linkerd sidecar injection enabled

The configuration section lists the parameters that can be configured during installation.

Uninstalling the Chart

To uninstall/delete the flagger-loadtester deployment:

helm delete flagger-loadtester

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following tables lists the configurable parameters of the load tester chart and their default values.

Parameter Description Default
image.repository Image repository quay.io/stefanprodan/flagger-loadtester
image.pullPolicy Image pull policy IfNotPresent
image.tag Image tag <VERSION>
replicaCount Desired number of pods 1
serviceAccountName Kubernetes service account name none
resources.requests.cpu CPU requests 10m
resources.requests.memory Memory requests 64Mi
tolerations List of node taints to tolerate []
affinity node/pod affinities node
nodeSelector Node labels for pod assignment {}
service.type Type of service ClusterIP
service.port ClusterIP port 80
cmd.timeout Command execution timeout 1h
logLevel Log level can be debug, info, warning, error or panic info
appmesh.enabled Create AWS App Mesh v1beta2 virtual node false
appmesh.backends AWS App Mesh virtual services none
istio.enabled Create Istio virtual service false
istio.host Loadtester hostname flagger-loadtester.flagger
istio.gateway.enabled Create Istio gateway in namespace false
istio.tls.enabled Enable TLS in gateway ( TLS secrets should be in namespace ) false
istio.tls.httpsRedirect Redirect traffic to TLS port false
podPriorityClassName PriorityClass name for pod priority configuration ""

Specify each parameter using the --set key=value[,key=value] argument to helm upgrade. For example,

helm upgrade -i flagger-loadtester flagger/loadtester \
--set "appmesh.enabled=true" \
--set "appmesh.backends[0]=podinfo" \
--set "appmesh.backends[1]=podinfo-canary"

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

helm install flagger/loadtester --name flagger-loadtester -f values.yaml

Tip: You can use the default values.yaml