diff --git a/deployments/helm/LEGACY.md b/deployments/helm/LEGACY.md deleted file mode 100644 index f7aded1..0000000 --- a/deployments/helm/LEGACY.md +++ /dev/null @@ -1,5 +0,0 @@ -# ⚠️ ЛЕГАСИ — НЕ ИСПОЛЬЗОВАТЬ - -Все файлы в этой папке — устаревший Helm chart (до миграции на Nubes Managed). -**ЭТИМ НЕ РУКОВОДСТВОВАТЬСЯ.** Только для истории. -Помечено: 2026-08-13. diff --git a/deployments/helm/shared-sqs/Chart.yaml b/deployments/helm/shared-sqs/Chart.yaml deleted file mode 100644 index 41300a5..0000000 --- a/deployments/helm/shared-sqs/Chart.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# Chart.yaml — Helm chart для shared-sqs (multi-tenant SQS-compatible message queue) -# Created: 2026-04-11 -# Updated: 2026-04-12 09:57 MSK — appVersion v0.1.22 -apiVersion: v2 -name: shared-sqs -description: Multi-tenant AWS SQS-compatible message queue service -type: application -version: 0.1.0 -appVersion: "0.1.22" diff --git a/deployments/helm/shared-sqs/templates/_helpers.tpl b/deployments/helm/shared-sqs/templates/_helpers.tpl deleted file mode 100644 index 7856d63..0000000 --- a/deployments/helm/shared-sqs/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* -_helpers.tpl — общие хелперы для shared-sqs Helm chart -Created: 2026-04-11 -*/}} - -{{/* Полное имя релиза */}} -{{- define "shared-sqs.fullname" -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* Общие labels */}} -{{- define "shared-sqs.labels" -}} -app: shared-sqs -app.kubernetes.io/name: shared-sqs -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }} -{{- end }} - -{{/* Selector labels */}} -{{- define "shared-sqs.selectorLabels" -}} -app: shared-sqs -app.kubernetes.io/name: shared-sqs -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} diff --git a/deployments/helm/shared-sqs/templates/deployment.yaml b/deployments/helm/shared-sqs/templates/deployment.yaml deleted file mode 100644 index 7058be1..0000000 --- a/deployments/helm/shared-sqs/templates/deployment.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# deployment.yaml — Deployment shared-sqs с RollingUpdate -# Created: 2026-04-11 -apiVersion: apps/v1 -kind: Deployment -metadata: - name: shared-sqs - namespace: {{ .Values.namespace }} - labels: - {{- include "shared-sqs.labels" . | nindent 4 }} -spec: - replicas: 1 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - selector: - matchLabels: - {{- include "shared-sqs.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: - {{- include "shared-sqs.selectorLabels" . | nindent 8 }} - spec: - containers: - - name: shared-sqs - image: "naeel/shared-sqs:{{ .Values.image.tag }}" - imagePullPolicy: IfNotPresent - ports: - - containerPort: 4100 - name: http - env: - - name: SHARED_SQS_ADMIN_TOKEN - valueFrom: - secretKeyRef: - name: shared-sqs-admin - key: token - - name: SHARED_SQS_SEED_DEMO - value: {{ .Values.seedDemo | quote }} - - name: REDIS_ADDR - valueFrom: - secretKeyRef: - name: shared-sqs-redis - key: addr - - name: REDIS_USER - valueFrom: - secretKeyRef: - name: shared-sqs-redis - key: user - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: shared-sqs-redis - key: password - {{- if .Values.billing.enabled }} - - name: BILLING_PG_HOST - value: {{ .Values.billing.postgres.host | quote }} - - name: BILLING_PG_PORT - value: {{ .Values.billing.postgres.port | quote }} - - name: BILLING_PG_DATABASE - value: {{ .Values.billing.postgres.database | quote }} - - name: BILLING_PG_USER - value: {{ .Values.billing.postgres.user | quote }} - - name: BILLING_PG_SSLMODE - value: {{ .Values.billing.postgres.sslmode | quote }} - - name: BILLING_PG_PASSWORD - valueFrom: - secretKeyRef: - name: shared-sqs-billing-pg - key: password - {{- end }} - resources: - {{- toYaml .Values.resources | nindent 10 }} - livenessProbe: - httpGet: - path: /health - port: 4100 - initialDelaySeconds: 5 - periodSeconds: 10 - readinessProbe: - httpGet: - path: /health - port: 4100 - initialDelaySeconds: 3 - periodSeconds: 5 diff --git a/deployments/helm/shared-sqs/templates/ingress.yaml b/deployments/helm/shared-sqs/templates/ingress.yaml deleted file mode 100644 index 27dc6ae..0000000 --- a/deployments/helm/shared-sqs/templates/ingress.yaml +++ /dev/null @@ -1,34 +0,0 @@ -# ingress.yaml — Ingress для shared-sqs (условный, включается через values) -# Created: 2026-04-11 -{{- if .Values.ingress.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: shared-sqs-ingress - namespace: {{ .Values.namespace }} - labels: - {{- include "shared-sqs.labels" . | nindent 4 }} - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - ingressClassName: {{ .Values.ingress.className }} - rules: - - host: {{ .Values.ingress.host }} - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: shared-sqs - port: - number: 4100 - {{- if .Values.ingress.tls.enabled }} - tls: - - hosts: - - {{ .Values.ingress.host }} - secretName: {{ .Values.ingress.tls.secretName }} - {{- end }} -{{- end }} diff --git a/deployments/helm/shared-sqs/templates/namespace.yaml b/deployments/helm/shared-sqs/templates/namespace.yaml deleted file mode 100644 index b8dde52..0000000 --- a/deployments/helm/shared-sqs/templates/namespace.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{/* - namespace.yaml — не создаём namespace из чарта, - т.к. он может уже существовать (managed платформой или вручную). - Создавать namespace перед helm install: - kubectl create namespace {{ .Values.namespace }} - Created: 2026-04-11 -*/}} diff --git a/deployments/helm/shared-sqs/templates/secret-admin.yaml b/deployments/helm/shared-sqs/templates/secret-admin.yaml deleted file mode 100644 index a2b4cdb..0000000 --- a/deployments/helm/shared-sqs/templates/secret-admin.yaml +++ /dev/null @@ -1,12 +0,0 @@ -# secret-admin.yaml — Secret с admin токеном -# Created: 2026-04-11 -apiVersion: v1 -kind: Secret -metadata: - name: shared-sqs-admin - namespace: {{ .Values.namespace }} - labels: - {{- include "shared-sqs.labels" . | nindent 4 }} -type: Opaque -stringData: - token: {{ .Values.admin.token | quote }} diff --git a/deployments/helm/shared-sqs/templates/secret-billing.yaml b/deployments/helm/shared-sqs/templates/secret-billing.yaml deleted file mode 100644 index 884831d..0000000 --- a/deployments/helm/shared-sqs/templates/secret-billing.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# secret-billing.yaml — Secret с PostgreSQL credentials для billing -# Создаётся только если billing.enabled=true и existingSecret не указан -# Created: 2026-04-12 -{{- if and .Values.billing.enabled (not .Values.billing.postgres.existingSecret) }} -apiVersion: v1 -kind: Secret -metadata: - name: shared-sqs-billing-pg - namespace: {{ .Values.namespace }} - labels: - {{- include "shared-sqs.labels" . | nindent 4 }} -type: Opaque -stringData: - password: {{ required "billing.postgres.password is required when billing is enabled" .Values.billing.postgres.password | quote }} -{{- end }} diff --git a/deployments/helm/shared-sqs/templates/secret-redis.yaml b/deployments/helm/shared-sqs/templates/secret-redis.yaml deleted file mode 100644 index 04035b7..0000000 --- a/deployments/helm/shared-sqs/templates/secret-redis.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# secret-redis.yaml — Secret с Redis credentials (addr + user + password) -# Created: 2026-04-11 -apiVersion: v1 -kind: Secret -metadata: - name: shared-sqs-redis - namespace: {{ .Values.namespace }} - labels: - {{- include "shared-sqs.labels" . | nindent 4 }} -type: Opaque -stringData: - addr: {{ .Values.redis.addr | quote }} - user: {{ .Values.redis.user | quote }} - password: {{ .Values.redis.password | quote }} diff --git a/deployments/helm/shared-sqs/templates/service.yaml b/deployments/helm/shared-sqs/templates/service.yaml deleted file mode 100644 index 830eeaa..0000000 --- a/deployments/helm/shared-sqs/templates/service.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# service.yaml — Service для shared-sqs -# Created: 2026-04-11 -apiVersion: v1 -kind: Service -metadata: - name: shared-sqs - namespace: {{ .Values.namespace }} - labels: - {{- include "shared-sqs.labels" . | nindent 4 }} -spec: - type: ClusterIP - selector: - {{- include "shared-sqs.selectorLabels" . | nindent 4 }} - ports: - - name: http - port: 4100 - targetPort: 4100 - protocol: TCP diff --git a/deployments/helm/shared-sqs/values.yaml b/deployments/helm/shared-sqs/values.yaml deleted file mode 100644 index 8ae76ba..0000000 --- a/deployments/helm/shared-sqs/values.yaml +++ /dev/null @@ -1,84 +0,0 @@ -# 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 - -# Версия образа сервиса -image: - tag: "v0.1.24" - -# Redis — хранит все очереди и сообщения. -# addr: адрес в формате host:port (внутренний K8s DNS или внешний IP) -# user: Redis-пользователь (по умолчанию "default" — стандартный встроенный пользователь Redis) -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" - -# 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 - secretName: shared-sqs-tls - -# Биллинг — запись статистики по всем SQS-операциям в PostgreSQL. -# Если PostgreSQL нет — поставьте enabled: false, остальное игнорируется. -billing: - enabled: true - postgres: - host: "postgresqlk8s-master.dc5db45d-f8b4-4fd0-ad33-ec4dd017f2d5.svc.cluster.local" - port: "5432" - # База данных должна существовать заранее (CREATE DATABASE sqsdb) - database: "sqsdb" - user: "super" - password: "BQUF5ruECa1ZFlq4wYt3gPJUEmtBMkA9QNK4MM5Sd8al4ArMDlmT16DIKHYBPyif" - # disable — если PostgreSQL без SSL (например локальный) - sslmode: "require" diff --git a/deployments/k8s/LEGACY.md b/deployments/k8s/LEGACY.md deleted file mode 100644 index ac1d9ef..0000000 --- a/deployments/k8s/LEGACY.md +++ /dev/null @@ -1,5 +0,0 @@ -# ⚠️ ЛЕГАСИ — НЕ ИСПОЛЬЗОВАТЬ - -Все файлы в этой папке — устаревший k8s-деплой (до миграции на Nubes Managed). -**ЭТИМ НЕ РУКОВОДСТВОВАТЬСЯ.** Только для истории. -Помечено: 2026-08-13. diff --git a/deployments/k8s/deployment.yaml b/deployments/k8s/deployment.yaml deleted file mode 100644 index 40032a7..0000000 --- a/deployments/k8s/deployment.yaml +++ /dev/null @@ -1,77 +0,0 @@ -# deployments/k8s/deployment.yaml -# Deployment shared-sqs — strategy RollingUpdate (теперь возможен т.к. Redis хранит состояние) -# Updated: 2026-04-12 09:57 MSK — image v0.1.22 для demo UI showcase mode -apiVersion: apps/v1 -kind: Deployment -metadata: - name: shared-sqs - namespace: shared-sqs - labels: - app: shared-sqs -spec: - replicas: 1 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - selector: - matchLabels: - app: shared-sqs - template: - metadata: - labels: - app: shared-sqs - spec: - containers: - - name: shared-sqs - image: naeel/shared-sqs:v0.1.22 - ports: - - containerPort: 4100 - name: http - env: - - name: SHARED_SQS_ADMIN_TOKEN - valueFrom: - secretKeyRef: - name: shared-sqs-admin - key: token - - name: SHARED_SQS_SEED_DEMO - value: "true" - - name: REDIS_ADDR - valueFrom: - secretKeyRef: - name: shared-sqs-redis - key: addr - - name: REDIS_USER - valueFrom: - secretKeyRef: - name: shared-sqs-redis - key: user - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: shared-sqs-redis - key: password - - name: NUBES_ENDPOINT - value: "https://deck-api-test.ngcloud.ru/api/v1" - resources: - requests: - memory: "64Mi" - cpu: "50m" - limits: - memory: "256Mi" - cpu: "500m" - livenessProbe: - httpGet: - path: /health - port: 4100 - initialDelaySeconds: 5 - periodSeconds: 10 - readinessProbe: - httpGet: - path: /health - port: 4100 - initialDelaySeconds: 3 - periodSeconds: 5 - imagePullSecrets: - - name: sless-registry-auth diff --git a/deployments/k8s/ingress.yaml b/deployments/k8s/ingress.yaml deleted file mode 100644 index f900ee0..0000000 --- a/deployments/k8s/ingress.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# deployments/k8s/ingress.yaml -# Ingress для shared-sqs на домене qu.kube5s.ru -# Created: 2026-04-09, Updated: 2026-04-12 -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: shared-sqs-ingress - namespace: shared-sqs - 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" - # Fix: 64KB+ payload (boto3/urllib3 2.0 шлёт headers и body отдельными TCP write, - # botocore убирает TCP_NODELAY → последние ~16KB body не доходят за client_body_timeout). - # Решение: proxy-request-buffering=off стримит body напрямую в backend без ожидания полного тела. - nginx.ingress.kubernetes.io/client-body-buffer-size: "512k" - nginx.ingress.kubernetes.io/proxy-request-buffering: "off" - # server-snippet удалён 2026-04-12: nginx ingress controller v1.x+ блокирует - # эту аннотацию как "risky" (ServerSnippet contains risky annotation). - # client_body_timeout задаётся через ConfigMap ingress controller. -spec: - ingressClassName: nginx - rules: - - host: qu.kube5s.ru - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: shared-sqs - port: - number: 4100 - tls: - - hosts: - - qu.kube5s.ru - secretName: shared-sqs-tls diff --git a/deployments/k8s/namespace.yaml b/deployments/k8s/namespace.yaml deleted file mode 100644 index b278c9e..0000000 --- a/deployments/k8s/namespace.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# deployments/k8s/namespace.yaml -# Namespace для shared-sqs сервиса -# Created: 2026-04-09 -apiVersion: v1 -kind: Namespace -metadata: - name: shared-sqs - labels: - app: shared-sqs diff --git a/deployments/k8s/redis.yaml b/deployments/k8s/redis.yaml deleted file mode 100644 index 8ccb79d..0000000 --- a/deployments/k8s/redis.yaml +++ /dev/null @@ -1,80 +0,0 @@ -# 2026-04-10 — Redis для shared-sqs в кластере naeel-test-3 -# Single-node Redis с PVC для persistence состояния shared-sqs между рестартами. -# Namespace: shared-sqs. Пароль совпадает с managed Redis из deck.ngcloud.ru. -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: shared-sqs-redis-pvc - namespace: shared-sqs -spec: - accessModes: - - ReadWriteOnce - storageClassName: local-path - resources: - requests: - storage: 1Gi ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: shared-sqs-redis - namespace: shared-sqs - labels: - app: shared-sqs-redis -spec: - replicas: 1 - selector: - matchLabels: - app: shared-sqs-redis - strategy: - type: Recreate - template: - metadata: - labels: - app: shared-sqs-redis - spec: - containers: - - name: redis - image: redis:7.2-alpine - command: - - redis-server - - --requirepass - - $(REDIS_PASSWORD) - - --appendonly - - "yes" - - --save - - "60 1" - ports: - - containerPort: 6379 - env: - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: shared-sqs-redis - key: password - volumeMounts: - - name: redis-data - mountPath: /data - resources: - requests: - memory: 128Mi - cpu: 50m - limits: - memory: 256Mi - cpu: 200m - volumes: - - name: redis-data - persistentVolumeClaim: - claimName: shared-sqs-redis-pvc ---- -apiVersion: v1 -kind: Service -metadata: - name: shared-sqs-redis - namespace: shared-sqs -spec: - selector: - app: shared-sqs-redis - ports: - - port: 6379 - targetPort: 6379 diff --git a/deployments/k8s/secret.yaml b/deployments/k8s/secret.yaml deleted file mode 100644 index 8d78fc4..0000000 --- a/deployments/k8s/secret.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# deployments/k8s/secret.yaml -# Секреты для shared-sqs: admin token + Redis credentials -# Created: 2026-04-09 -# Updated: 2026-04-10 — добавлен shared-sqs-redis secret -# ВНИМАНИЕ: заполнить реальными значениями перед деплоем -# kubectl create secret generic shared-sqs-admin --from-literal=token=YOUR_TOKEN -n shared-sqs -# kubectl create secret generic shared-sqs-redis --from-literal=addr=HOST:6379 --from-literal=user=default --from-literal=password=PASS -n shared-sqs -apiVersion: v1 -kind: Secret -metadata: - name: shared-sqs-admin - namespace: shared-sqs -type: Opaque -stringData: - token: "REPLACE_WITH_REAL_TOKEN" ---- -apiVersion: v1 -kind: Secret -metadata: - name: shared-sqs-redis - namespace: shared-sqs -type: Opaque -stringData: - addr: "REPLACE_WITH_REDIS_ADDR" - user: "default" - password: "REPLACE_WITH_REDIS_PASSWORD" diff --git a/deployments/k8s/service.yaml b/deployments/k8s/service.yaml deleted file mode 100644 index 7041cb0..0000000 --- a/deployments/k8s/service.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# deployments/k8s/service.yaml -# Service для shared-sqs -# Created: 2026-04-09 -apiVersion: v1 -kind: Service -metadata: - name: shared-sqs - namespace: shared-sqs - labels: - app: shared-sqs -spec: - selector: - app: shared-sqs - ports: - - name: http - port: 4100 - targetPort: 4100 - protocol: TCP - type: ClusterIP diff --git a/deployments/k8s/vmservicescrape.yaml b/deployments/k8s/vmservicescrape.yaml deleted file mode 100644 index 6aeaf19..0000000 --- a/deployments/k8s/vmservicescrape.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# vmservicescrape.yaml — VMServiceScrape для Victoria Metrics -# Говорит VMAgent скрейпить /metrics с shared-sqs Service. -# Created: 2026-04-12 -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMServiceScrape -metadata: - name: shared-sqs-metrics - namespace: shared-sqs - labels: - app: shared-sqs -spec: - # Какой Service скрейпить — по label selector - selector: - matchLabels: - app: shared-sqs - # Endpoint: порт http, путь /metrics - endpoints: - - port: http - path: /metrics - interval: "30s"