---
name: benchmark-bbs
packages:
  - golang
  - benchmark-bbs

templates:
  run.erb: bin/run
  benchmark.json.erb: config/benchmark.json
  etcd_ca.crt.erb: config/certs/etcd/ca.crt
  etcd_client.crt.erb: config/certs/etcd/client.crt
  etcd_client.key.erb: config/certs/etcd/client.key
  bbs_ca.crt.erb: config/certs/bbs/ca.crt
  bbs_client.crt.erb: config/certs/bbs/client.crt
  bbs_client.key.erb: config/certs/bbs/client.key

properties:
  benchmark-bbs.desired_lrps:
    description: "the number of single instance desired lrps to generate and fetch"
  benchmark-bbs.num_trials:
    description: "the number of trials of each benchmark to average across"
  benchmark-bbs.num_reps:
    description: "the number of rep processes to simulate in test"
  benchmark-bbs.local_route_emitters:
    description: "whether or not to enable local route emitters"
    default: false
  benchmark-bbs.percent_writes:
    description: "percentage of actual LRPs to write on each rep bulk loop"
    default: 5
  benchmark-bbs.num_populate_workers:
    description: "the number of workers generating desired LRPs during setup"
  benchmark-bbs.reseed_database:
    description: "boolean flag to turn on database reseeding"
    default: true

  benchmark-bbs.bbs.api_location:
    description: "the address of the BBS"
    default: "bbs.service.cf.internal:8889"
  benchmark-bbs.bbs.ca_cert:
    description: "PEM-encoded CA certificate"
  benchmark-bbs.bbs.client_cert:
    description: "PEM-encoded client certificate"
  benchmark-bbs.bbs.client_key:
    description: "PEM-encoded client key"
  benchmark-bbs.client_timeout:
    description: "the http timeout for bbs client requests in seconds (golang duration formatted string)"
  benchmark-bbs.bbs.require_ssl:
    description: "require ssl for all communication with the bbs (false unsupported). Deprecated, TLS will be required for the bbs in Diego v2.0+."
    default: true
  benchmark-bbs.locket.api_location:
    description: "the address of the locket"
    default: "locket.service.cf.internal:8891"

  benchmark-bbs.sql.db_host:
    description: "Host for SQL backend"
    default: ""
  benchmark-bbs.sql.db_port:
    description: "Port for SQL backend"
    default: ""
  benchmark-bbs.sql.db_schema:
    description: "Database name to use for connecting to SQL backend"
    default: ""
  benchmark-bbs.sql.db_username:
    description: "Username to use for connecting to SQL backend"
    default: ""
  benchmark-bbs.sql.db_password:
    description: "Password to use for connecting to SQL backend"
    default: ""
  benchmark-bbs.sql.db_driver:
    description: "driver to use, e.g. postgres or mysql"
  benchmark-bbs.sql.db_connection_string:
    description: "Connection string to use for SQL backend [username:password@tcp(1.1.1.1:1234)/database]"
    default: ""

  benchmark-bbs.etcd.machines:
    description: "Addresses pointing to the ETCD cluster. Deprecated, etcd will no longer be supported in Diego v2.0."
  benchmark-bbs.etcd.require_ssl:
    description: "boolean to configure ssl connections with the etcd cluster. Deprecated, etcd will no longer be supported in Diego v2.0."
    default: true
  benchmark-bbs.etcd.client_cert:
    description: "PEM-encoded client certificate. Deprecated, etcd will no longer be supported in Diego v2.0."
  benchmark-bbs.etcd.client_key:
    description: "PEM-encoded client key. Deprecated, etcd will no longer be supported in Diego v2.0."
  benchmark-bbs.etcd.ca_cert:
    description: "PEM-encoded root CA certificate. Deprecated, etcd will no longer be supported in Diego v2.0."
  benchmark-bbs.etcd.client_session_cache_size:
    description: "capacity of the etcd client tls client cache. Deprecated, etcd will no longer be supported in Diego v2.0."
  benchmark-bbs.bbs.etcd.max_idle_conns_per_host:
    description: "maximum number of etcd client idle http connections. Deprecated, etcd will no longer be supported in Diego v2.0."

  benchmark-bbs.active_key_label:
    description: "the active key for encryption"
  benchmark-bbs.encryption_keys:
    description: "the key(s) to use for encryption at rest"
    default: []

  benchmark-bbs.datadog_api_key:
    description: "the API key for emmitting datadog metrics"
    default: ""
  benchmark-bbs.datadog_app_key:
    description: "the application key for datadog metrics"
    default: ""
  benchmark-bbs.datadog_metric_prefix:
    description: "the datadog metric prefix"
    default: ""

  benchmark-bbs.aws_access_key_id:
    description: "the AWS access key for uploading metrics to s3"
    default: ""
  benchmark-bbs.aws_secret_access_key:
    description: "the AWS secret key for uploading metrics to s3"
    default: ""
  benchmark-bbs.aws_bucket_name:
    description: "the S3 bucket to upload metrics to"
    default: ""
  benchmark-bbs.aws_region:
    description: "the aws region where the S3 bucket lives"
    default: ""

  benchmark-bbs.log_level:
    description: "log level: debug, info, error or fatal"
  benchmark-bbs.log_file:
    description: "file name for benchmark log output in the BOSH log dir"
