feat: billing — usage tracking per SQS operation in PostgreSQL
- New package app/billing: Init/RecordUsage/Close with auto-migrate - Integration in actionHandler: record tenant_id, operation, msg_count, msg_bytes - Helm chart: billing section in values.yaml, secret-billing.yaml, env vars in deployment - Optional: billing disabled by default (BILLING_PG_HOST not set = no-op) - Table: sqs_usage_records with index on (tenant_id, recorded_at)
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# values.yaml — параметры деплоя shared-sqs
|
||||
# Created: 2026-04-11
|
||||
# Updated: 2026-04-12 09:57 MSK — image tag v0.1.22 для demo UI showcase mode
|
||||
# Все значения — переменные, меняются при деплое через --set или -f override.yaml
|
||||
|
||||
# -- Namespace для деплоя
|
||||
namespace: shared-sqs
|
||||
|
||||
# -- Количество реплик
|
||||
replicaCount: 1
|
||||
|
||||
# -- Образ приложения
|
||||
image:
|
||||
repository: naeel/shared-sqs
|
||||
tag: "v0.1.22"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# -- imagePullSecrets (имя Secret'а с credentials к registry)
|
||||
imagePullSecrets:
|
||||
- name: sless-registry-auth
|
||||
|
||||
# -- Redis: эндпоинт, credentials
|
||||
# addr — полный host:port (можно internal K8s DNS или внешний IP)
|
||||
redis:
|
||||
addr: "rfrm-redisk8s.54467f74-67f5-4ca7-9b4a-bdd50e8c23d6.svc:6379"
|
||||
user: "default"
|
||||
password: "quiY2oovugaiChiejah9"
|
||||
|
||||
# -- Admin токен для /admin/* API
|
||||
admin:
|
||||
token: "sqs-admin-7a7d8bd0c060a75c198d48680f34077a"
|
||||
|
||||
# -- Seed demo tenant при старте
|
||||
seedDemo: true
|
||||
|
||||
# -- Nubes API endpoint
|
||||
nubesEndpoint: "https://deck-api-test.ngcloud.ru/api/v1"
|
||||
|
||||
# -- Ресурсы контейнера
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "50m"
|
||||
limits:
|
||||
memory: "256Mi"
|
||||
cpu: "500m"
|
||||
|
||||
# -- Service
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 4100
|
||||
|
||||
# -- Ingress
|
||||
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
|
||||
secretName: shared-sqs-tls
|
||||
|
||||
# -- Probes
|
||||
probes:
|
||||
liveness:
|
||||
path: /health
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
readiness:
|
||||
path: /health
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 5
|
||||
|
||||
# -- Strategy
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 0
|
||||
|
||||
# -- Billing: PostgreSQL для учёта использования SQS-операций.
|
||||
# Если enabled=false — billing отключён, сервис работает без PostgreSQL.
|
||||
billing:
|
||||
enabled: false
|
||||
postgres:
|
||||
host: ""
|
||||
port: "5432"
|
||||
database: "sqsdb"
|
||||
user: ""
|
||||
sslmode: "require"
|
||||
# Имя существующего K8s Secret с ключом "password"
|
||||
existingSecret: ""
|
||||
secretKey: "password"
|
||||
Reference in New Issue
Block a user