apiVersion: apps/v1
kind: Deployment
metadata:
  name: titan-ccp-aggregation
spec:
  selector:
    matchLabels:
      app: titan-ccp-aggregation
  replicas: 1
  template:
    metadata:
      labels:
        app: titan-ccp-aggregation
    spec:
      terminationGracePeriodSeconds: 0
      containers:
      - name: uc-application
        image: uc-app:latest
        ports:
        - containerPort: 5555
          name: jmx
        env:
        - name: KAFKA_BOOTSTRAP_SERVERS
          value: "my-confluent-cp-kafka:9092"
        - name: SCHEMA_REGISTRY_URL
          value: "http://my-confluent-cp-schema-registry:8081"
        - name: JAVA_OPTS
          value: "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=5555"
        - name: COMMIT_INTERVAL_MS # Set as default for the applications
          value: "100"
        resources:
          limits:
            memory: 4Gi
            cpu: 1000m
      - name: prometheus-jmx-exporter
        image: "solsson/kafka-prometheus-jmx-exporter@sha256:6f82e2b0464f50da8104acd7363fb9b995001ddff77d248379f8788e78946143"
        command:
          - java
          - -XX:+UnlockExperimentalVMOptions
          - -XX:+UseCGroupMemoryLimitForHeap
          - -XX:MaxRAMFraction=1
          - -XshowSettings:vm
          - -jar
          - jmx_prometheus_httpserver.jar
          - "5556"
          - /etc/jmx-aggregation/jmx-kafka-prometheus.yml
        ports:
          - containerPort: 5556
        volumeMounts:
          - name: jmx-config
            mountPath: /etc/jmx-aggregation
      volumes:
        - name: jmx-config
          configMap:
            name: aggregation-jmx-configmap
