{{- if not .Values.existingConfigMaps }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ include "vector.fullname" . }}
  labels:
    {{- include "vector.labels" . | nindent 4 }}
data:
  {{- if .Values.customConfig }}
  vector.yaml: |
{{ tpl (toYaml .Values.customConfig) . | indent 4 }}
  {{- else if or (eq .Values.role "Aggregator") (eq .Values.role "Stateless-Aggregator") }}
  aggregator.yaml: |
    data_dir: /vector-data-dir
    api:
      enabled: true
      address: 127.0.0.1:8686
      playground: false
    sources:
      datadog_agent:
        address: 0.0.0.0:8282
        type: datadog_agent
      fluent:
        address: 0.0.0.0:24224
        type: fluent
      internal_metrics:
        type: internal_metrics
      logstash:
        address: 0.0.0.0:5044
        type: logstash
      splunk_hec:
        address: 0.0.0.0:8080
        type: splunk_hec
      statsd:
        address: 0.0.0.0:8125
        mode: tcp
        type: statsd
      syslog:
        address: 0.0.0.0:9000
        mode: tcp
        type: syslog
      vector:
        address: 0.0.0.0:6000
        type: vector
        version: "2"
    sinks:
      prom_exporter:
        type: prometheus_exporter
        inputs: [internal_metrics]
        address: 0.0.0.0:9090
      stdout:
        type: console
        inputs: [datadog_agent, fluent, logstash, splunk_hec, statsd, syslog, vector]
        encoding:
          codec: json
  {{- else if (eq .Values.role "Agent") }}
  agent.yaml: |
    data_dir: /vector-data-dir
    api:
      enabled: true
      address: 127.0.0.1:8686
      playground: false
    sources:
      kubernetes_logs:
        type: kubernetes_logs
      host_metrics:
        filesystem:
          devices:
            excludes: [binfmt_misc]
          filesystems:
            excludes: [binfmt_misc]
          mountPoints:
            excludes: ["*/proc/sys/fs/binfmt_misc"]
        type: host_metrics
      internal_metrics:
        type: internal_metrics
    sinks:
      prom_exporter:
        type: prometheus_exporter
        inputs: [host_metrics, internal_metrics]
        address: 0.0.0.0:9090
      stdout:
        type: console
        inputs: [kubernetes_logs]
        encoding:
          codec: json
  {{- end }}
{{- end }}
