| # MnemoCore Helm Chart - Default Values | |
| # ====================================== | |
| # Override these values in your own values file or via --set flags | |
| # Global settings | |
| global: | |
| imageRegistry: "" | |
| imagePullSecrets: [] | |
| storageClass: "" | |
| namespace: mnemocore | |
| # MnemoCore API Configuration | |
| mnemocore: | |
| # Number of replicas (ignored if autoscaling.enabled is true) | |
| replicaCount: 2 | |
| # Container image | |
| image: | |
| repository: mnemocore | |
| tag: "latest" | |
| pullPolicy: IfNotPresent | |
| # Container ports | |
| ports: | |
| api: 8100 | |
| metrics: 9090 | |
| # Resource limits and requests | |
| resources: | |
| limits: | |
| cpu: "2" | |
| memory: "2Gi" | |
| requests: | |
| cpu: "500m" | |
| memory: "512Mi" | |
| # Probes configuration | |
| probes: | |
| liveness: | |
| enabled: true | |
| initialDelaySeconds: 40 | |
| periodSeconds: 30 | |
| timeoutSeconds: 10 | |
| failureThreshold: 3 | |
| successThreshold: 1 | |
| readiness: | |
| enabled: true | |
| initialDelaySeconds: 20 | |
| periodSeconds: 10 | |
| timeoutSeconds: 5 | |
| failureThreshold: 3 | |
| successThreshold: 1 | |
| startup: | |
| enabled: true | |
| initialDelaySeconds: 10 | |
| periodSeconds: 10 | |
| timeoutSeconds: 5 | |
| failureThreshold: 30 | |
| successThreshold: 1 | |
| # HAIM Configuration (mounted as config.yaml) | |
| config: | |
| version: "3.0" | |
| dimensionality: 16384 | |
| encoding: | |
| mode: "binary" | |
| token_method: "bundle" | |
| tiers: | |
| hot: | |
| max_memories: 2000 | |
| ltp_threshold_min: 0.7 | |
| eviction_policy: "lru" | |
| warm: | |
| max_memories: 100000 | |
| ltp_threshold_min: 0.3 | |
| consolidation_interval_hours: 1 | |
| storage_backend: "mmap" | |
| cold: | |
| storage_backend: "filesystem" | |
| compression: "gzip" | |
| archive_threshold_days: 30 | |
| ltp: | |
| initial_importance: 0.5 | |
| decay_lambda: 0.01 | |
| permanence_threshold: 0.95 | |
| half_life_days: 30.0 | |
| hysteresis: | |
| promote_delta: 0.15 | |
| demote_delta: 0.10 | |
| gpu: | |
| enabled: false | |
| device: "cuda:0" | |
| batch_size: 1000 | |
| fallback_to_cpu: true | |
| observability: | |
| metrics_port: 9090 | |
| log_level: "INFO" | |
| structured_logging: true | |
| paths: | |
| data_dir: "/app/data" | |
| memory_file: "/app/data/memory.jsonl" | |
| codebook_file: "/app/data/codebook.json" | |
| concepts_file: "/app/data/concepts.json" | |
| synapses_file: "/app/data/synapses.json" | |
| warm_mmap_dir: "/app/data/warm_tier" | |
| cold_archive_dir: "/app/data/cold_archive" | |
| mcp: | |
| enabled: false | |
| transport: "stdio" | |
| host: "127.0.0.1" | |
| port: 8110 | |
| api_base_url: "http://localhost:8100" | |
| timeout_seconds: 15 | |
| allow_tools: | |
| - "memory_store" | |
| - "memory_query" | |
| - "memory_get" | |
| - "memory_delete" | |
| - "memory_stats" | |
| - "memory_health" | |
| # Environment variables | |
| env: | |
| logLevel: "INFO" | |
| host: "0.0.0.0" | |
| port: 8100 | |
| # API Key (set via secret) | |
| apiKey: | |
| # Use existing secret | |
| existingSecret: "" | |
| # Key in the secret containing the API key | |
| key: "HAIM_API_KEY" | |
| # If not using existing secret, set value here (NOT RECOMMENDED for production) | |
| value: "" | |
| # Persistence | |
| persistence: | |
| enabled: true | |
| accessModes: | |
| - ReadWriteOnce | |
| size: 10Gi | |
| # storageClass: "" | |
| annotations: {} | |
| # Service configuration | |
| service: | |
| type: ClusterIP | |
| port: 8100 | |
| targetPort: 8100 | |
| metricsPort: 9090 | |
| annotations: {} | |
| labels: {} | |
| # Ingress configuration | |
| ingress: | |
| enabled: false | |
| className: "" | |
| annotations: {} | |
| # kubernetes.io/ingress.class: nginx | |
| # kubernetes.io/tls-acme: "true" | |
| hosts: | |
| - host: mnemocore.local | |
| paths: | |
| - path: / | |
| pathType: Prefix | |
| tls: [] | |
| # - secretName: mnemocore-tls | |
| # hosts: | |
| # - mnemocore.local | |
| # Autoscaling configuration | |
| autoscaling: | |
| enabled: true | |
| minReplicas: 2 | |
| maxReplicas: 10 | |
| targetCPUUtilizationPercentage: 70 | |
| targetMemoryUtilizationPercentage: 80 | |
| # Custom metrics | |
| metrics: [] | |
| behavior: {} | |
| # Pod Disruption Budget | |
| podDisruptionBudget: | |
| enabled: true | |
| minAvailable: 1 | |
| # maxUnavailable: 1 | |
| # Pod security context | |
| podSecurityContext: | |
| runAsNonRoot: true | |
| runAsUser: 1000 | |
| runAsGroup: 1000 | |
| fsGroup: 1000 | |
| # Container security context | |
| securityContext: | |
| allowPrivilegeEscalation: false | |
| capabilities: | |
| drop: | |
| - ALL | |
| readOnlyRootFilesystem: true | |
| runAsNonRoot: true | |
| # Node selector | |
| nodeSelector: {} | |
| # Tolerations | |
| tolerations: [] | |
| # Affinity | |
| affinity: {} | |
| # Pod annotations | |
| podAnnotations: | |
| prometheus.io/scrape: "true" | |
| prometheus.io/port: "9090" | |
| prometheus.io/path: "/metrics" | |
| # Pod labels | |
| podLabels: {} | |
| # Priority class name | |
| priorityClassName: "" | |
| # Termination grace period | |
| terminationGracePeriodSeconds: 30 | |
| # Service account | |
| serviceAccount: | |
| create: true | |
| name: "" | |
| annotations: {} | |
| # Init containers | |
| initContainers: [] | |
| # Extra volumes | |
| extraVolumes: [] | |
| # Extra volume mounts | |
| extraVolumeMounts: [] | |
| # Redis Configuration | |
| redis: | |
| # Enable Redis as part of this chart | |
| enabled: true | |
| # Use Bitnami Redis chart or embedded config | |
| embedded: | |
| enabled: false | |
| # When not using Bitnami chart | |
| image: | |
| repository: redis | |
| tag: "7.2-alpine" | |
| pullPolicy: IfNotPresent | |
| # Redis configuration | |
| config: | |
| maxmemory: "512mb" | |
| maxmemoryPolicy: "allkeys-lru" | |
| save: "60 1" | |
| logLevel: "warning" | |
| # Resource limits | |
| resources: | |
| limits: | |
| cpu: "1" | |
| memory: "512Mi" | |
| requests: | |
| cpu: "100m" | |
| memory: "128Mi" | |
| # Probes | |
| probes: | |
| liveness: | |
| enabled: true | |
| initialDelaySeconds: 10 | |
| periodSeconds: 10 | |
| timeoutSeconds: 5 | |
| failureThreshold: 5 | |
| readiness: | |
| enabled: true | |
| initialDelaySeconds: 5 | |
| periodSeconds: 5 | |
| timeoutSeconds: 3 | |
| failureThreshold: 5 | |
| # Service | |
| service: | |
| type: ClusterIP | |
| port: 6379 | |
| # Persistence | |
| persistence: | |
| enabled: true | |
| accessModes: | |
| - ReadWriteOnce | |
| size: 5Gi | |
| # storageClass: "" | |
| # URL override (if using external Redis) | |
| url: "" | |
| existingSecret: "" | |
| # Qdrant Configuration | |
| qdrant: | |
| # Enable Qdrant as part of this chart | |
| enabled: true | |
| # Use official Qdrant chart or embedded config | |
| embedded: | |
| enabled: false | |
| # When not using official chart | |
| image: | |
| repository: qdrant/qdrant | |
| tag: "latest" | |
| pullPolicy: IfNotPresent | |
| # Qdrant configuration | |
| config: | |
| grpcPort: 6334 | |
| logLevel: "INFO" | |
| # HAIM-specific collection settings | |
| collections: | |
| hot: | |
| name: "haim_hot" | |
| binaryQuantization: true | |
| alwaysRam: true | |
| hnswM: 16 | |
| hnswEfConstruct: 100 | |
| warm: | |
| name: "haim_warm" | |
| binaryQuantization: true | |
| alwaysRam: true | |
| hnswM: 16 | |
| hnswEfConstruct: 100 | |
| # Resource limits | |
| resources: | |
| limits: | |
| cpu: "2" | |
| memory: "4Gi" | |
| requests: | |
| cpu: "500m" | |
| memory: "1Gi" | |
| # Probes | |
| probes: | |
| liveness: | |
| enabled: true | |
| initialDelaySeconds: 15 | |
| periodSeconds: 10 | |
| timeoutSeconds: 5 | |
| failureThreshold: 5 | |
| readiness: | |
| enabled: true | |
| initialDelaySeconds: 10 | |
| periodSeconds: 5 | |
| timeoutSeconds: 3 | |
| failureThreshold: 5 | |
| # Services | |
| service: | |
| type: ClusterIP | |
| httpPort: 6333 | |
| grpcPort: 6334 | |
| # Persistence | |
| persistence: | |
| enabled: true | |
| accessModes: | |
| - ReadWriteOnce | |
| size: 20Gi | |
| # storageClass: "" | |
| # URL override (if using external Qdrant) | |
| url: "" | |
| existingSecret: "" | |
| # Network Policies | |
| networkPolicy: | |
| enabled: false | |
| ingress: | |
| - from: | |
| - namespaceSelector: | |
| matchLabels: | |
| name: mnemocore | |
| ports: | |
| - protocol: TCP | |
| port: 8100 | |
| - protocol: TCP | |
| port: 9090 | |
| # Service Monitor (Prometheus Operator) | |
| serviceMonitor: | |
| enabled: false | |
| namespace: "" | |
| interval: 30s | |
| scrapeTimeout: 10s | |
| labels: {} | |
| annotations: {} | |
| relabelings: [] | |
| metricRelabelings: [] | |
| # Grafana Dashboard | |
| grafana: | |
| dashboard: | |
| enabled: false | |
| namespace: "" | |
| labels: | |
| grafana_dashboard: "1" | |
| annotations: {} | |
| # Prometheus Rules | |
| prometheusRule: | |
| enabled: false | |
| namespace: "" | |
| additionalLabels: {} | |
| rules: [] | |
| # Test configuration | |
| test: | |
| enabled: false | |
| image: | |
| repository: busybox | |
| tag: "latest" | |