Story Crater Bot
630a125778
deploy: OpenSearch + Dashboards StatefulSet
OpenSearch Cluster (k8s/infra/databases/opensearch.yaml):
✅ StatefulSet: 2 replicas (opensearch-0, opensearch-1) for HA
✅ Image: opensearchproject/opensearch:2.11.0
✅ Services: opensearch (headless), opensearch-internal (ClusterIP:9200)
✅ ConfigMap: opensearch.yml with cluster discovery
✅ PVC: 30Gi per pod using Longhorn storage class
✅ Init container: sysctl vm.max_map_count=262144
✅ Probes: liveness (60s), readiness (30s)
✅ Resources: 512Mi-1Gi memory, 250m-500m CPU
✅ Security: plugins.security.disabled=true (K8s network isolation)
✅ NetworkPolicy: Memory Service + Dashboards access only
OpenSearch Dashboards (UI):
✅ Deployment: 1 replica opensearch-dashboards
✅ Image: opensearchproject/opensearch-dashboards:2.11.0
✅ Service: opensearch-dashboards:5601 (ClusterIP)
✅ Config: connects to opensearch-internal:9200
✅ Auth: admin/admin (production: change in secret)
✅ Port-forward: kubectl port-forward svc/opensearch-dashboards 5601:5601
✅ Access: http://localhost:5601 (dev) or ingress (prod)
Deployment Status:
kubectl get pods -n poimen -l app.kubernetes.io/name=opensearch
kubectl get pods -n poimen -l app.kubernetes.io/name=opensearch-dashboards
Verify Cluster Health:
kubectl port-forward -n poimen svc/opensearch-internal 9200:9200
curl http://localhost:9200/_cluster/health
Next Steps:
1. Configure Memory Service: OPENSEARCH_HOSTS env var
2. Restart Memory Service pods
3. Test vault endpoints
4. Test hybrid search (with OpenSearch fallback)