infra/k8s/loadgen/templates/deployment.yaml (55 lines of code) (raw):

apiVersion: apps/v1 kind: Deployment metadata: name: loadgen spec: replicas: {{ .Values.Replicas | default 1 }} selector: matchLabels: app.kubernetes.io/name: loadgen template: metadata: labels: app.kubernetes.io/name: loadgen spec: volumes: # Optionally mount gcp-credentials for non-cloud producers. - name: gcp-credentials secret: secretName: gcp-dev-credentials optional: true containers: - image: loadgen name: loadgen resources: limits: cpu: 1000m memory: 1000Mi requests: cpu: 200m memory: 200Mi volumeMounts: - name: gcp-credentials mountPath: /secrets/key.json subPath: key.json readOnly: true env: - name: REPLAY value: "{{.Values.replay_count | default "10000" }}" - name: PRODUCER_COUNT value: "{{.Values.producer_count | default "2" }}" - name: PRODUCER_KEY value: "{{.Values.producer_key}}" - name: PRODUCER_VALUE_FORMAT value: "{{.Values.producer_value_format}}" - name: OUTPUT_TYPE value: "{{ $.Values.output_type | default "kafka" }}" - name: TOPIC_PREFIX value: "{{.Values.topic_prefix}}" - name: OUTPUT_ADDRESS value: "{{(.Values.kafka).brokers}}" - name: GCLOUD_PROJECT_ID value: "{{(.Values.gcp).project_id}}" - name: GCLOUD_REGION value: "{{(.Values.gcp).region}}" - name: GOOGLE_APPLICATION_CREDENTIALS value: /secrets/key.json