helm: add deploy chart for self-hosted installation

This commit is contained in:
Naeel
2026-04-13 07:06:33 +03:00
parent 297f8a17a5
commit d9950ad4d4
10 changed files with 304 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
# 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 ./deploy -n shared-sqs --create-namespace
#
# КАК ОБНОВИТЬ:
# helm upgrade shared-sqs ./deploy -n shared-sqs
# Namespace в Kubernetes куда будет задеплоен сервис
namespace: shared-sqs
# Версия образа сервиса
image:
tag: "v0.1.24"
# Redis — хранит все очереди и сообщения.
# addr: адрес в формате host:port (внутренний K8s DNS или внешний IP)
# user: Redis-пользователь (по умолчанию "default" — стандартный встроенный пользователь Redis)
redis:
addr: "your-redis-host:6379"
user: "default"
password: "your-redis-password"
# Токен для административного API (/admin/*).
# Используется для создания тенантов и управления ими.
# Придумайте любую строку, например: openssl rand -hex 20
admin:
token: "your-admin-token"
# Создать demo-тенанта при первом старте (удобно для проверки работы).
# В продакшне можно поставить false.
seedDemo: true
# Лимиты ресурсов для пода. Для начала этих значений достаточно.
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "256Mi"
cpu: "500m"
# Ingress — открывает сервис наружу по домену.
# host: ваш домен, должен указывать на IP ingress-контроллера кластера.
# После деплоя cert-manager автоматически выпустит TLS-сертификат.
ingress:
enabled: true
className: nginx
host: "sqs.your-domain.com"
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
secretName: shared-sqs-tls
# Биллинг — запись статистики по всем SQS-операциям в PostgreSQL.
# Если PostgreSQL нет — поставьте enabled: false, остальное игнорируется.
billing:
enabled: false
postgres:
host: "your-postgres-host"
port: "5432"
# База данных должна существовать заранее (CREATE DATABASE sqsdb)
database: "sqsdb"
user: "postgres"
password: "your-postgres-password"
# disable — если PostgreSQL без SSL (например локальный)
sslmode: "require"