# values.yaml — параметры деплоя shared-sqs # Updated: 2026-04-13 # # ЧТО ЭТО: # shared-sqs — AWS SQS-совместимый сервис очередей сообщений для Kubernetes. # Работает как замена Amazon SQS: клиенты используют стандартный AWS SDK/CLI, # просто указывая свой endpoint вместо amazonaws.com. # # ЧТО НУЖНО ЗАРАНЕЕ: # 1. Redis — для хранения очередей и сообщений (любой Redis ≥ 6) # 2. PostgreSQL — для биллинга (можно отключить: billing.enabled: false) # 3. Ingress NGINX — установлен в кластере (принимает внешние запросы) # 4. cert-manager — для автовыпуска TLS-сертификата (letsencrypt) # 5. DNS-запись — ваш домен должен указывать на IP ingress-контроллера # # КАК ДЕПЛОИТЬ: # helm install shared-sqs ./deployments/helm/shared-sqs -n shared-sqs --create-namespace # # КАК ОБНОВИТЬ: # helm upgrade shared-sqs ./deployments/helm/shared-sqs -n shared-sqs # Namespace в Kubernetes куда будет задеплоен сервис namespace: shared-sqs # Количество реплик пода (для начала достаточно 1) replicaCount: 1 # Docker-образ сервиса image: repository: naeel/shared-sqs tag: "v0.1.24" pullPolicy: IfNotPresent # Redis — хранит все очереди и сообщения. # addr: адрес в формате host:port (можно внутренний K8s DNS или внешний IP) redis: addr: "rfrm-redisk8s.54467f74-67f5-4ca7-9b4a-bdd50e8c23d6.svc:6379" user: "default" password: "quiY2oovugaiChiejah9" # Токен для административного API (/admin/*). # Используется для создания тенантов и управления ими. # Придумайте любую строку, например: openssl rand -hex 20 admin: token: "sqs-admin-7a7d8bd0c060a75c198d48680f34077a" # Создать demo-тенанта при первом старте (удобно для проверки). # В продакшне можно поставить false. seedDemo: true # Лимиты ресурсов для пода. Для начала этих значений достаточно. resources: requests: memory: "64Mi" cpu: "50m" limits: memory: "256Mi" cpu: "500m" # Порт внутри контейнера. Менять не нужно. service: type: ClusterIP port: 4100 # Ingress — открывает сервис наружу по домену. # host: ваш домен, который должен указывать на IP ingress-контроллера кластера. # После деплоя cert-manager автоматически выпустит TLS-сертификат. ingress: enabled: true className: nginx host: "qu.kube5s.ru" annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/proxy-body-size: "10m" nginx.ingress.kubernetes.io/proxy-read-timeout: "30" nginx.ingress.kubernetes.io/proxy-send-timeout: "30" tls: enabled: true # Имя Secret куда cert-manager положит TLS-сертификат secretName: shared-sqs-tls # Параметры проверки здоровья пода. Менять не нужно. probes: liveness: path: /health initialDelaySeconds: 5 periodSeconds: 10 readiness: path: /health initialDelaySeconds: 3 periodSeconds: 5 # Стратегия обновления. RollingUpdate — обновление без даунтайма. strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 # Биллинг — запись статистики по всем SQS-операциям в PostgreSQL. # Если PostgreSQL нет — поставьте enabled: false, остальное игнорируется. billing: enabled: true postgres: # Адрес PostgreSQL (внутренний K8s DNS или внешний хост) host: "postgresqlk8s-master.dc5db45d-f8b4-4fd0-ad33-ec4dd017f2d5.svc.cluster.local" port: "5432" # База данных должна существовать заранее (CREATE DATABASE sqsdb) database: "sqsdb" user: "super" password: "BQUF5ruECa1ZFlq4wYt3gPJUEmtBMkA9QNK4MM5Sd8al4ArMDlmT16DIKHYBPyif" sslmode: "require" # Альтернатива паролю выше: указать имя уже существующего K8s Secret. # Если задан — поле password выше игнорируется. existingSecret: "" secretKey: "password"