# Создано: 2026-04-04 # Изменено: 2026-04-05 (добавлен IOT_PG_DSN, версия v0.1.59) # Deployment iot-mqtt-bridge — MQTT→RabbitMQ мост для IoT. # # Получает MQTT сообщения от EMQX (подписка на "+/telemetry/+") # и публикует в RabbitMQ queue "iot.{namespace}.telemetry". # # Credentials для MQTT подключения берутся из Secret iot-bridge-credentials. # Этот Secret нужно создать вручную ДО деплоя: # # # 1. Создать IoTDevice для bridge через API: # curl -X POST .../v1/namespaces/sless-bridge/iot/devices \ # -d '{"name":"bridge","device_id":"bridge","enabled":true}' # # # 2. Получить credentials: # MQTT_USERNAME=$(kubectl get secret iot-bridge -n sless-bridge -o jsonpath='{.data.mqtt-username}' | base64 -d) # MQTT_PASSWORD=$(kubectl get secret iot-bridge -n sless-bridge -o jsonpath='{.data.mqtt-password}' | base64 -d) # # # 3. Создать Secret для bridge Deployment (один раз): # kubectl create secret generic iot-bridge-credentials -n sless \ # --from-literal=MQTT_USERNAME="$MQTT_USERNAME" \ # --from-literal=MQTT_PASSWORD="$MQTT_PASSWORD" # # Применение: kubectl apply -f deployments/k8s/iot-mqtt-bridge.yaml --- apiVersion: apps/v1 kind: Deployment metadata: name: iot-mqtt-bridge namespace: sless labels: app: iot-mqtt-bridge spec: replicas: 1 selector: matchLabels: app: iot-mqtt-bridge template: metadata: labels: app: iot-mqtt-bridge spec: containers: - name: mqtt-bridge # Тот же образ что и оператор — оба бинаря в одном слое (manager + iot-mqtt-bridge). # При смене версии оператора — менять тег и здесь. image: pearlharbor.registryk8s.services.ngcloud.ru/naeel/sless-operator:v0.1.59 imagePullPolicy: Always command: ["/iot-mqtt-bridge"] env: - name: MQTT_BROKER_URL value: "tcp://emqx.sless.svc:1883" - name: RABBITMQ_URL valueFrom: secretKeyRef: name: sless-operator-secret key: RABBITMQ_URL optional: true envFrom: - secretRef: name: iot-bridge-credentials # IOT_PG_DSN — сохранение телеметрии в Postgres (опционально) - secretRef: name: iot-postgres-secret optional: true resources: requests: memory: "32Mi" cpu: "25m" limits: memory: "64Mi" cpu: "100m" imagePullSecrets: - name: sless-registry-auth