# count defines how many runners in the group.
count: 10

# This simulates worst-case behavior for Cilium:
# every agent hammering apiserver with stale LIST requests for CiliumIdentity and CiliumEndpoint.
# The request rate is much, much higher than what we'd expect to see in production with
# client-go exponential backoff configured, so if apiserver can survive this onslaught it can
# survive anything Cilium throws at it.
loadProfile:
  version: 1
  description: cilium list profile
  spec:
    rate: 20     # 20 req/sec * 10 runners = 200 req/sec
    total: 12000 # run for ~10 minutes, 600 seconds * 20/sec = 12000
    # 5k node cluster, one cilium agent per node
    # divided by the number of runners.
    conns: 500
    client: 500

    contentType: json
    disableHTTP2: false

    # 50/50 mix of ciliumidentity and ciliumendpoint queries.
    # We're simulating with CilumEndpointSlice disabled here, on the assumption that CES will always
    # have lower count than CEP, so if we can survive with CEP only then we're in good shape.
    requests:
      - staleList:
          group: cilium.io
          version: v2
          resource: ciliumidentities
        shares: 1000 # Has 50% chance = 1000 / (1000 + 1000)
      - staleList:
          group: cilium.io
          version: v2
          resource: ciliumendpoints
          namespace: "default"
        shares: 1000 # Has 50% chance = 1000 / (1000 + 1000)