apiVersion: v1
kind: Namespace
metadata:
  creationTimestamp: null
  name: vector-agent
spec: {}
status: {}

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: vector
  namespace: vector-agent
  labels:
    app.kubernetes.io/name: vector
    app.kubernetes.io/instance: vector
    app.kubernetes.io/component: Agent
    app.kubernetes.io/version: "0.24.0-distroless-libc"
automountServiceAccountToken: true

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: vector
  namespace: vector-agent
  labels:
    app.kubernetes.io/name: vector
    app.kubernetes.io/instance: vector
    app.kubernetes.io/component: Agent
    app.kubernetes.io/version: "0.24.0-distroless-libc"
data:
  agent.yaml: |
    api:
      address: 0.0.0.0:8686
      enabled: true
      playground: true
    sources:
      my_source_id:
        type: demo_logs
        format: json
        interval: 1
    transforms:
        remap_transform:
          type: remap
          inputs:
            - my_source_id
          source: |-
            . = parse_json!(.message)

        my_transform:
          type: log_to_metric
          inputs:
            - remap_transform
          metrics:
          - type: counter
            field: method
            name: http_reqpest_method_total
            namespace: demo
            tags:
              method: "{{method}}"
              tag: "counter"
          - type: gauge
            field: status
            name: status_gauge
            namespace: demo
            tags:
              method: "{{method}}"
              protocol: "{{protocol}}"
              host: "{{host}}"
              tag: "gauge"
          - type: histogram
            field: bytes
            name: bytes_histogram
            namespace: demo
            tags:
              status: "{{status}}"
              host: "{{host}}"
          - type: summary
            field: bytes
            name: bytes_summary
            tags:
              status: "{{status}}"
              host: "{{host}}"
    sinks:
        my_sink_id:
            type: console
            inputs:
               - my_transform
            target: stdout
            encoding:
               codec: json
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vector
  labels:
    app.kubernetes.io/name: vector
    app.kubernetes.io/instance: vector
    app.kubernetes.io/component: Agent
    app.kubernetes.io/version: "0.24.0-distroless-libc"
rules:
  - apiGroups:
      - ""
    resources:
      - namespaces
      - nodes
      - pods
    verbs:
      - list
      - wat
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vector
  labels:
    app.kubernetes.io/name: vector
    app.kubernetes.io/instance: vector
    app.kubernetes.io/component: Agent
    app.kubernetes.io/version: "0.24.0-distroless-libc"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: vector
subjects:
  - kind: ServiceAccount
    name: vector
    namespace: vector-agent

---
apiVersion: v1
kind: Service
metadata:
  name: vector-svc
  namespace: vector-agent
  annotations: {}
spec:
  selector:
    app.kubernetes.io/name: vector
  ports:
    - protocol: TCP
      port: 9099
      targetPort: api

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: vector-regional
  labels:
    app.kubernetes.io/name: vector
    app.kubernetes.io/instance: vector
    app.kubernetes.io/component: Agent
    app.kubernetes.io/version: "0.24.0-distroless-libc"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: regional-server-manager-role
subjects:
  - kind: ServiceAccount
    name: vector
    namespace: vector-agent