global:
  measurements:
    - name: nodeLatency
    - name: podLatency
    - name: serviceLatency 
      svcTimeout: 5s
  requestTimeout: 60s
  gc: true
  gcMetrics: false
  waitWhenFinished: true
  clusterHealth: true

jobs:
  - name: api-intensive
    jobIterations: 10
    qps: 4
    burst: 4
    namespacedIterations: true
    namespace: api-intensive
    podWait: false
    cleanup: true
    waitWhenFinished: true
    objects:
      - objectTemplate: files/templates/generic/deployment.yaml
        replicas: 8
      - objectTemplate: files/templates/generic/configmap.yaml
        replicas: 8
      - objectTemplate: files/templates/generic/secret.yaml
        replicas: 8
      - objectTemplate: files/templates/generic/service.yaml
        replicas: 8

  - name: api-intensive-patch
    jobType: patch
    jobIterations: 10
    qps: 2
    burst: 2
    objects:
      - kind: Deployment
        objectTemplate: files/templates/generic/deployment_patch_add_label.json
        labelSelector: {kube-burner-job: api-intensive}
        patchType: "application/json-patch+json"
        apiVersion: apps/v1
      - kind: Deployment
        objectTemplate: files/templates/generic/deployment_patch_add_pod_2.yaml
        labelSelector: {kube-burner-job: api-intensive}
        patchType: "application/apply-patch+yaml"
        apiVersion: apps/v1
      - kind: Deployment
        objectTemplate: files/templates/generic/deployment_patch_add_label.yaml
        labelSelector: {kube-burner-job: api-intensive}
        patchType: "application/strategic-merge-patch+json"
        apiVersion: apps/v1

  - name: api-intensive-remove
    qps: 2
    burst: 2
    jobType: delete
    waitForDeletion: true
    objects:
      - kind: Deployment
        labelSelector: {kube-burner-job: api-intensive}
        apiVersion: apps/v1

  - name: ensure-pods-removal
    qps: 10
    burst: 10
    jobType: delete
    waitForDeletion: true
    objects:
      - kind: Pod
        labelSelector: {kube-burner-job: api-intensive}

  - name: remove-services
    qps: 2
    burst: 2
    jobType: delete
    waitForDeletion: true
    objects:
      - kind: Service
        labelSelector: {kube-burner-job: api-intensive}

  - name: remove-configmaps-secrets
    qps: 2
    burst: 2
    jobType: delete
    objects:
      - kind: ConfigMap
        labelSelector: {kube-burner-job: api-intensive}
      - kind: Secret
        labelSelector: {kube-burner-job: api-intensive}
