chore: удалить легаси — k8s/helm манифесты (уходим на Nubes Managed)
This commit is contained in:
@@ -1,5 +0,0 @@
|
|||||||
# ⚠️ ЛЕГАСИ — НЕ ИСПОЛЬЗОВАТЬ
|
|
||||||
|
|
||||||
Все файлы в этой папке — устаревший Helm chart (до миграции на Nubes Managed).
|
|
||||||
**ЭТИМ НЕ РУКОВОДСТВОВАТЬСЯ.** Только для истории.
|
|
||||||
Помечено: 2026-08-13.
|
|
||||||
@@ -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"
|
|
||||||
@@ -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 }}
|
|
||||||
@@ -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
|
|
||||||
@@ -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 }}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{{/*
|
|
||||||
namespace.yaml — не создаём namespace из чарта,
|
|
||||||
т.к. он может уже существовать (managed платформой или вручную).
|
|
||||||
Создавать namespace перед helm install:
|
|
||||||
kubectl create namespace {{ .Values.namespace }}
|
|
||||||
Created: 2026-04-11
|
|
||||||
*/}}
|
|
||||||
@@ -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 }}
|
|
||||||
@@ -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 }}
|
|
||||||
@@ -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 }}
|
|
||||||
@@ -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
|
|
||||||
@@ -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"
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# ⚠️ ЛЕГАСИ — НЕ ИСПОЛЬЗОВАТЬ
|
|
||||||
|
|
||||||
Все файлы в этой папке — устаревший k8s-деплой (до миграции на Nubes Managed).
|
|
||||||
**ЭТИМ НЕ РУКОВОДСТВОВАТЬСЯ.** Только для истории.
|
|
||||||
Помечено: 2026-08-13.
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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"
|
|
||||||
@@ -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
|
|
||||||
@@ -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"
|
|
||||||
Reference in New Issue
Block a user