#!/bin/bash # Ініціалізація NATS JetStream streams через kubectl exec # Використання: ./init-streams-kubectl.sh set -e echo "🚀 Ініціалізація NATS JetStream streams через kubectl..." # Встановлюємо NATS CLI в pod (якщо потрібно) echo "=== Встановлення NATS CLI в pod ===" kubectl exec -n nats nats-0 -- sh -c 'apk add --no-cache curl && curl -L https://github.com/nats-io/natscli/releases/latest/download/nats-linux-amd64.zip -o /tmp/nats.zip && unzip -o /tmp/nats.zip -d /tmp && chmod +x /tmp/nats' || echo "NATS CLI встановлення..." NATS_URL="nats://nats-client.nats:4222" echo "" echo "=== Створення Stream MM_ONLINE ===" kubectl exec -n nats nats-0 -- /tmp/nats stream add MM_ONLINE \ --server="$NATS_URL" \ --subjects="mm.embed.online,mm.retrieve.online,mm.summarize.online" \ --storage=file \ --replicas=2 \ --max-age=30m \ --max-deliver=3 \ --ack \ --discard=old \ --duplicate-window=5m \ --retention=limits \ --yes || echo "Stream вже існує або помилка" echo "" echo "=== Створення Stream MM_OFFLINE ===" kubectl exec -n nats nats-0 -- /tmp/nats stream add MM_OFFLINE \ --server="$NATS_URL" \ --subjects="mm.embed.offline,mm.index.offline,mm.backfill.offline" \ --storage=file \ --replicas=2 \ --max-age=7d \ --max-deliver=10 \ --ack \ --discard=old \ --retention=limits \ --yes || echo "Stream вже існує або помилка" echo "" echo "=== Створення Stream MM_WRITE ===" kubectl exec -n nats nats-0 -- /tmp/nats stream add MM_WRITE \ --server="$NATS_URL" \ --subjects="mm.qdrant.upsert,mm.pg.write,mm.neo4j.write" \ --storage=file \ --replicas=2 \ --max-age=7d \ --max-deliver=10 \ --ack \ --discard=old \ --retention=limits \ --yes || echo "Stream вже існує або помилка" echo "" echo "=== Створення Stream MM_EVENTS ===" kubectl exec -n nats nats-0 -- /tmp/nats stream add MM_EVENTS \ --server="$NATS_URL" \ --subjects="mm.event.audit,mm.event.status" \ --storage=file \ --replicas=2 \ --max-age=30d \ --ack \ --discard=old \ --retention=limits \ --yes || echo "Stream вже існує або помилка" echo "" echo "=== Перевірка streams ===" kubectl exec -n nats nats-0 -- /tmp/nats stream ls --server="$NATS_URL" || echo "Помилка перевірки" echo "" echo "✅ Streams створено!"