76 lines
2.8 KiB
YAML
76 lines
2.8 KiB
YAML
# Создано: 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
|