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 публичный)
This commit is contained in:
@@ -1,11 +1,16 @@
|
||||
# Создано: 2026-04-05
|
||||
# Postgres для IoT телеметрии — отдельный от sless postgres (тот для invocations логов).
|
||||
# Deployment (не StatefulSet) — для dev/demo. В prod заменить на managed Postgres.
|
||||
# Изменено: 2026-04-12 (заменён self-hosted на managed Postgres через оператор)
|
||||
#
|
||||
# Суперюзер iot_admin используется оператором для:
|
||||
# Managed PostgreSQL 17 — тот же инстанс что использует shared-SQS.
|
||||
# Namespace: dc5db45d-f8b4-4fd0-ad33-ec4dd017f2d5 (managed оператором)
|
||||
# Host: postgresqlk8s-master.dc5db45d-f8b4-4fd0-ad33-ec4dd017f2d5.svc.cluster.local
|
||||
#
|
||||
# IoT оператор использует суперюзер для:
|
||||
# - CREATE USER tenant_{ns} + CREATE DATABASE tenant_{ns}
|
||||
# - CREATE TABLE iot_telemetry в tenant DB
|
||||
# Клиенты НЕ имеют прямого доступа — только через REST API платформы.
|
||||
#
|
||||
# Deployment и Service удалены — Postgres managed, только Secret с DSN.
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
@@ -13,54 +18,9 @@ metadata:
|
||||
name: iot-postgres-secret
|
||||
namespace: sless
|
||||
stringData:
|
||||
# Суперпользователь — для управления tenant databases
|
||||
POSTGRES_USER: "iot_admin"
|
||||
POSTGRES_PASSWORD: "iot-pg-super-2026"
|
||||
POSTGRES_DB: "iot_platform"
|
||||
# DSN для оператора и mqtt-bridge (superuser к management DB)
|
||||
IOT_PG_DSN: "postgresql://iot_admin:iot-pg-super-2026@iot-postgres.sless.svc:5432/iot_platform?sslmode=disable"
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: iot-postgres
|
||||
namespace: sless
|
||||
labels:
|
||||
app: iot-postgres
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: iot-postgres
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: iot-postgres
|
||||
spec:
|
||||
containers:
|
||||
- name: postgres
|
||||
image: postgres:16-alpine
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: iot-postgres-secret
|
||||
resources:
|
||||
requests:
|
||||
memory: "128Mi"
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
cpu: "500m"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: iot-postgres
|
||||
namespace: sless
|
||||
spec:
|
||||
selector:
|
||||
app: iot-postgres
|
||||
ports:
|
||||
- port: 5432
|
||||
targetPort: 5432
|
||||
# Суперпользователь managed Postgres
|
||||
POSTGRES_USER: "super"
|
||||
POSTGRES_PASSWORD: "BQUF5ruECa1ZFlq4wYt3gPJUEmtBMkA9QNK4MM5Sd8al4ArMDlmT16DIKHYBPyif"
|
||||
POSTGRES_DB: "sqsdb"
|
||||
# DSN для iot-operator и sqs-consumer (superuser к managed DB)
|
||||
IOT_PG_DSN: "postgresql://super:BQUF5ruECa1ZFlq4wYt3gPJUEmtBMkA9QNK4MM5Sd8al4ArMDlmT16DIKHYBPyif@postgresqlk8s-master.dc5db45d-f8b4-4fd0-ad33-ec4dd017f2d5.svc.cluster.local:5432/sqsdb?sslmode=disable"
|
||||
|
||||
Reference in New Issue
Block a user