Istio Scaling
This repository is for testing istio scalability on Cloud Foundry.
Prerequisites
- Working installation of Go
 
- Valid 
$GOPATH 
Create a config file
cat << EOF > "${PWD}/config.json"
{
  "cf_admin_user": "admin",
  "cf_admin_password": "<admin password>",
  "cf_system_domain": "<system-domain>",
  "cf_istio_domain": "istio.<system-domain>",
  "datadog_api_key": "<key>",
  "cf_org_name": "some-org",
  "cf_space_name": "some-space"
}
EOF
cf_org_name and cf_space_name are optional. If they are not provided, a
random name will be created.
datadog_api_key is also optional. If provided, the metrics will be emitted to
datadog.
Create a plan file
cat << EOF > "${PWD}/plan.json"
{
  "number_of_apps_to_push": 10,
  "number_of_apps_to_curl": 10,
  "passing_threshold": 90,
  "app_instances": 1,
  "app_mem_size": "16M",
  "cleanup": false
}
EOF
number_of_apps_to_curl must be greater than or equal to number_of_apps_push.
If greater than, then the test suite is able to curl already-existing apps which
allows for incremental scaling.
passing_threshold is the percentage of curls that must succeed for the test
to pass. e.g. 99.9%
Running Tests
CONFIG="$PWD/config.json" PLAN="$PWD/plan.json" scripts/test
Running CATS
You can run CATS after running scalling tests as you would usually, however be sure to the set the flag cleanup in the plan file to false and manually delete your org.
Assets
closer-golang.tgz: This app closes connections which results in a 503 on curl. 
hello-golang.tgz: This app responds with 'hello' on curl.