apiVersion: apps/v1
kind: Deployment
metadata:
  name: hub-yolov8
  labels:
    app: hub-yolov8
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hub-yolov8
  template:
    metadata:
      labels:
        app: hub-yolov8
    spec:
      containers:
        - name: hub-yolov8
          image: uugai/hub-yolov8:latest
          #resources:
          #  limits:
          #    nvidia.com/gpu: 1 # requesting a single GPU
          env:
            - name: QUEUE_NAME
              value: "kcloud-classify-queue.fifo" # This is the topic of kafka we will read messages from.
            - name: TARGET_QUEUE_NAME
              value: "kcloud-analysis-queue" # Once we processed the recording with ML, we will send results/metadata to a target topic of Kafka.
            - name: QUEUE_HOST
              value: rabbitmq.rabbitmq:5672
            - name: QUEUE_EXCHANGE
            - name: QUEUE_USERNAME
              value: yourusername
            - name: QUEUE_PASSWORD
              value: yourpassword

            - name: STORAGE_URI
              #value: http://vault-lb.kerberos-vault/api
              value: "http://vault-nodeport.kerberos-vault:80/api"
            - name: STORAGE_ACCESS_KEY
              value: "XJoi2@bgSOvOYBy#"
            - name: STORAGE_SECRET_KEY
              value: "OGGqat4lXRpL@9XBYc8FUaId@5"


            # YOLOv8 parameters
            - name: MODEL_NAME
              value: "yolov8n.pt"
            - name: MEDIA_SAVEPATH
              value: "/ml/data/input/video.mp4"

            - name: LOGGING
              value: "True"
            - name: PLOT
              value: "False"
            - name: SAVE_VIDEO
              value: "False"
            - name: OUTPUT_MEDIA_SAVEPATH
              value: "path/to/your/output_video.mp4"

            - name: CREATE_BBOX_FRAME
              value: "False"
            - name: SAVE_BBOX_FRAME
              value: "False"
            - name: BBOX_FRAME_SAVEPATH
              value: "path/to/your/output_bbox.jpg"

            - name: CREATE_RETURN_JSON
              value: "True"
            - name: SAVE_RETURN_JSON
              value: "False"
            - name: RETURN_JSON_SAVEPATH
              value: "path/to/your/output_json.json"

            - name: TIME_VERBOSE
              value: "True"

            - name: CLASSIFICATION_FPS
              value: "1"
            - name: CLASSIFICATION_THRESHOLD
              value: "0.3"
            - name: MIN_DETECTIONS
              value: "1"
            - name: MIN_DISTANCE
              value: "0"
            - name: MIN_STATIC_DISTANCE
              value: "0"
            - name: MAX_NUMBER_OF_PREDICTIONS
              value: "10"
            - name: FIND_DOMINANT_COLORS
              value: "False"
            - name: ALLOWED_CLASSIFICATIONS
              value: "0, 1, 2, 3, 5, 7, 14, 15, 16, 24, 26, 28"
            - name: COLOR_PREDICTION_INTERVAL
              value: "5"
            - name: MIN_CLUSTERS
              value: "4"
            - name: MAX_CLUSTERS
              value: "4"
