# CleverAgents Server Helm Chart - Default Values # See k8s/README.md for deployment instructions. # -- Number of server pod replicas replicaCount: 1 image: # -- Container image repository repository: cleveragents/server # -- Image pull policy pullPolicy: IfNotPresent # -- Image tag (defaults to Chart appVersion) tag: "" # -- Image pull secrets for private registries imagePullSecrets: [] # -- Override the chart name nameOverride: "" # -- Override the full release name fullnameOverride: "" serviceAccount: # -- Create a ServiceAccount create: true # -- Annotations for the ServiceAccount annotations: {} # -- ServiceAccount name (generated if not set) name: "" # -- Pod-level annotations podAnnotations: {} # -- Pod-level security context podSecurityContext: runAsNonRoot: true runAsUser: 1000 fsGroup: 1000 # -- Container-level security context securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true seccompProfile: type: RuntimeDefault capabilities: drop: - ALL service: # -- Kubernetes Service type type: ClusterIP # -- Service port port: 8000 ingress: # -- Enable Ingress resource enabled: false # -- Allow insecure HTTP ingress without TLS (dev-only opt-out) # When false (default), enabling ingress without tls causes template failure. allowInsecure: false # -- Ingress class name (e.g. nginx, traefik) className: "" # -- Ingress annotations # When TLS is configured, ssl-redirect is automatically enabled. # Add additional annotations here as needed. annotations: {} # cert-manager.io/cluster-issuer: "letsencrypt-prod" hosts: - host: cleveragents.example.com paths: - path: / pathType: Prefix # -- TLS configuration for Ingress # HTTPS is required for all production deployments (spec requirement). # Each entry specifies a TLS certificate and the hosts it covers. # TLS termination happens at the Ingress controller level. tls: [] # - secretName: cleveragents-tls # hosts: # - cleveragents.example.com resources: # -- Resource limits for the server container limits: cpu: 500m memory: 512Mi # -- Resource requests for the server container requests: cpu: 100m memory: 128Mi # -- Node selector constraints nodeSelector: {} # -- Pod tolerations tolerations: [] # -- Pod affinity rules affinity: {} # -- Liveness probe configuration livenessProbe: httpGet: path: /live port: http initialDelaySeconds: 15 periodSeconds: 20 timeoutSeconds: 5 failureThreshold: 3 # -- Readiness probe configuration readinessProbe: httpGet: path: /ready port: http initialDelaySeconds: 5 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 3 # -- Server configuration # NOTE: The default port (8000) differs from the settings.py default # (8080). This is intentional: Kubernetes deployments use 8000 as a # common convention, and the Deployment template passes the port via # CLI args which override the Settings model default. server: # -- ASGI server host binding host: "0.0.0.0" # -- ASGI server port port: 8000 # -- Number of uvicorn worker processes workers: 1 # -- Log level for the server logLevel: "info" # -- Database configuration (PostgreSQL) database: # -- PostgreSQL connection URL # Uses the format: postgresql+asyncpg://user:password@host:port/dbname # WARNING: For production, use existingSecret instead of url to avoid # storing credentials in Helm values. When url is set without # existingSecret, a Kubernetes Secret is auto-generated. url: "" # -- Use existing secret for database URL existingSecret: "" # -- Key in existing secret containing the database URL existingSecretKey: "database-url" # -- Redis configuration (optional, for multi-instance session affinity) redis: # -- Enable Redis for session affinity and rate limiting enabled: false # -- Redis architecture (standalone or replication) architecture: standalone auth: # -- Enable Redis authentication enabled: true # -- Redis password (use existingSecret in production) # WARNING: For production, use existingSecret instead of password to # avoid storing credentials in Helm values. When password is set # without existingSecret, a Kubernetes Secret is auto-generated. password: "" # -- Use existing secret for Redis password existingSecret: "" existingSecretPasswordKey: "redis-password" master: persistence: # -- Enable Redis persistence enabled: false # -- Redis persistence storage size size: 1Gi # -- Extra environment variables for the server container extraEnv: [] # - name: CLEVERAGENTS_LOG_FORMAT # value: "json" # -- Extra volume mounts for the server container extraVolumeMounts: [] # -- Extra volumes for the pod extraVolumes: []