Files
IoT/deployments/k8s/iot-mqtt-bridge.yaml
T
Naeel 150146edba deploy: EMQX, iot-operator, managed Postgres, Docker Hub image
- Добавлен EMQX deployment + WS ingress (адаптирован из sless)
- Добавлен iot-operator deployment с RBAC (ServiceAccount, ClusterRole)
- Postgres: заменён self-hosted на managed (dc5db45d namespace)
- Image: naeel/iot-operator:v0.2.0 (Docker Hub)
- Убран imagePullSecrets (Docker Hub публичный)
2026-04-12 16:07:41 +03:00

64 lines
2.1 KiB
YAML

# Создано: 2026-04-04
# Изменено: 2026-04-12 (замена Kafka → shared-SQS)
# Deployment iot-mqtt-bridge — MQTT→SQS мост для IoT.
#
# Получает MQTT сообщения от EMQX (подписка на "+/telemetry/+")
# и отправляет в shared-SQS очередь "iot-telemetry" через AWS SDK.
#
# Credentials для MQTT подключения берутся из Secret iot-bridge-credentials.
# Credentials для SQS берутся из Secret iot-sqs-credentials.
#
# Создание SQS Secret (один раз):
# kubectl create secret generic iot-sqs-credentials -n sless \
# --from-literal=SQS_ENDPOINT="https://qu.kube5s.ru" \
# --from-literal=SQS_ACCESS_KEY="<access_key>" \
# --from-literal=SQS_SECRET_KEY="<secret_key>"
#
# Применение: 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: naeel/iot-operator:v0.2.0
imagePullPolicy: Always
command: ["/mqtt-bridge"]
env:
- name: MQTT_BROKER_URL
value: "tcp://emqx.sless.svc:1883"
- name: SQS_QUEUE_NAME
value: "iot-telemetry"
- name: SQS_REGION
value: "us-east-1"
envFrom:
- secretRef:
name: iot-bridge-credentials
# SQS_ENDPOINT, SQS_ACCESS_KEY, SQS_SECRET_KEY
- secretRef:
name: iot-sqs-credentials
resources:
requests:
memory: "32Mi"
cpu: "25m"
limits:
memory: "64Mi"
cpu: "100m"