MATIH Platform is in active MVP development. Documentation reflects current implementation status.
17. Kubernetes & Helm
Data Plane Charts
Embeddings Service

Embeddings Service Chart

The Embeddings Service provides centralized vector embedding operations over Qdrant with per-user RBAC, tenant isolation, and audit logging. All Python AI services connect through this Java service rather than directly to Qdrant.


Chart Configuration

# From infrastructure/helm/data-plane/embeddings-service/values.yaml
billing:
  costCenter: "CC-DATA-PLANE"
  application: "data-plane"
  team: "platform"
  workloadType: "api"
  costType: "dynamic"
 
replicaCount: 1
 
image:
  registry: matihlabsacr.azurecr.io
  repository: matih/embeddings-service
  tag: "latest"
  pullPolicy: IfNotPresent
 
service:
  type: ClusterIP
  port: 8213
 
resources:
  requests:
    cpu: 250m
    memory: 512Mi
  limits:
    cpu: 1000m
    memory: 1024Mi

Dependencies

DependencyConnectionPurpose
PostgreSQLJDBC (5432)Embedding collection metadata, records, usage tracking
QdrantREST (6333)Vector storage and similarity search
RedisTCP (6379)Response caching
KafkaTCP (9092/9093)Event publishing (matih.embeddings.events)

Secrets

Secret NameKeysSource
embeddings-service-db-secretusername, passwordPostgreSQL credentials
redis-credentialsredis-passwordShared Redis password
qdrant-credentialsapi-keyQdrant API key (optional in dev)
matih-jwt-secretjwt-secretJWT validation (shared)

Environment Variables

Injected automatically by matih.deployment.spring base template:

VariableSourceDescription
SPRING_DATASOURCE_URLHelm valuesJDBC connection to PostgreSQL
DB_HOST, DB_PORT, DB_NAMEHelm valuesDatabase connection details
REDIS_HOST, REDIS_PORTHelm valuesRedis connection
JWT_SECRETSecret refJWT validation key
SPRING_KAFKA_BOOTSTRAP_SERVERSAutoKafka connection

Additional service-specific variables via extraEnv:

VariableSourceDescription
QDRANT_URLHelm valuesQdrant REST endpoint
QDRANT_API_KEYSecret refQdrant authentication (optional)
QDRANT_TIMEOUT_MSHelm valuesRequest timeout (default: 30000)

Network Policy

Ingress allows traffic from:

  • Data plane services (matih-data-plane namespace)
  • NGINX Ingress Controller (matih-ingress namespace)
  • Prometheus scraping (matih-monitoring namespace)

Egress allows connections to:

  • DNS (53)
  • PostgreSQL (5432)
  • Redis (6379)
  • Qdrant (6333, 6334)
  • Kafka (9092, 9093)
  • OpenTelemetry Collector (4317)

Health Probes

ProbePathInitial DelayPeriod
Startup/actuator/health/liveness10s10s (30 retries)
Liveness/actuator/health/liveness60s30s
Readiness/actuator/health/readiness30s10s

Monitoring

ServiceMonitor scrapes /actuator/prometheus every 30 seconds.

Key metrics:

  • embeddings_search_duration_seconds -- Search latency histogram
  • embeddings_upsert_count_total -- Vectors upserted counter
  • embeddings_collection_count -- Active collections gauge

Dev Overrides

# From values-dev.yaml
replicaCount: 1
resources:
  requests:
    cpu: 100m
    memory: 256Mi
  limits:
    cpu: 500m
    memory: 1Gi
autoscaling:
  enabled: false
podDisruptionBudget:
  enabled: false