Ctrl K
ComunidadGuías…

helm/values.yaml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Default values for the GoModel Helm chart.
#
# GoModel is configured through environment variables. Every variable from
# https://github.com/ENTERPILOT/GoModel/blob/main/.env.template can be set
# with `env` (plain values) or `secretEnv` (API keys and other secrets).

# -- Number of gateway pods. SQLite storage (the default) is per pod, so more
# than one replica requires storage.type postgresql or mongodb.
replicaCount: 1

image:
  repository: enterpilot/gomodel
  # -- Image tag. Defaults to the chart appVersion.
  tag: ""
  pullPolicy: IfNotPresent

imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""

# -- Plain environment variables, stored in a ConfigMap.
# PORT, STORAGE_TYPE, and METRICS_ENABLED are owned by the chart and rejected here.
env: {}
#  LOG_LEVEL: info
#  OPENAI_BASE_URL: https://my-proxy.example.com/v1
#  REDIS_URL: redis://redis.cache.svc:6379

# -- Sensitive environment variables, stored in a chart-managed Secret.
# Set GOMODEL_MASTER_KEY here; without it the gateway runs without authentication.
secretEnv: {}
#  GOMODEL_MASTER_KEY: change-me
#  OPENAI_API_KEY: sk-...
#  ANTHROPIC_API_KEY: sk-ant-...

# -- Existing Secrets or ConfigMaps whose keys become environment variables.
# Use this to keep API keys out of Helm values (GitOps, external-secrets, ...).
extraEnvFrom: []
#  - secretRef:
#      name: gomodel-provider-keys

# -- Additional container env entries in Kubernetes form, for valueFrom lookups.
extraEnv: []
#  - name: POD_IP
#    valueFrom:
#      fieldRef:
#        fieldPath: status.podIP

# -- Optional config.yaml content, mounted at /app/config/config.yaml.
# Environment variables always override values in this file.
config: ""
#  config: |
#    providers:
#      openai:
#        api_key: ${OPENAI_API_KEY}

# -- Name of an existing ConfigMap with a `config.yaml` key, used instead of `config`.
existingConfigMap: ""

storage:
  # -- Storage backend: sqlite, postgresql, or mongodb.
  # SQLite works for a single pod; use postgresql or mongodb for several replicas.
  type: sqlite
  # -- Connection URL for postgresql or mongodb, stored in the chart Secret.
  # Alternatively supply POSTGRES_URL or MONGODB_URL through extraEnv or extraEnvFrom.
  url: ""

# Persistent volume for /app/data (SQLite database, install identity).
# Only used with storage.type sqlite; other backends keep nothing on disk.
persistence:
  enabled: true
  # -- Use an existing PersistentVolumeClaim instead of creating one.
  existingClaim: ""
  # -- StorageClass name. Empty uses the cluster default; "-" disables dynamic provisioning.
  storageClass: ""
  accessModes:
    - ReadWriteOnce
  size: 1Gi
  annotations: {}

# -- Deployment update strategy. Defaults to Recreate when SQLite data lives on a
# ReadWriteOnce volume (two pods cannot share it), RollingUpdate otherwise.
updateStrategy: {}

metrics:
  # -- Expose Prometheus metrics at /metrics (unauthenticated).
  enabled: true
  serviceMonitor:
    # -- Create a ServiceMonitor for the Prometheus Operator.
    enabled: false
    interval: 30s
    # -- Namespace for the ServiceMonitor. Empty uses the release namespace.
    namespace: ""
    labels: {}

service:
  type: ClusterIP
  port: 8080
  annotations: {}

ingress:
  enabled: false
  className: ""
  annotations: {}
  hosts:
    - host: gomodel.example.com
      paths:
        - path: /
          pathType: Prefix
  tls: []
  #  - secretName: gomodel-tls
  #    hosts:
  #      - gomodel.example.com

# Gateway API HTTPRoute, an alternative to Ingress.
httpRoute:
  enabled: false
  parentRefs: []
  #  - name: my-gateway
  #    namespace: gateway-system
  hostnames: []
  #  - gomodel.example.com

serviceAccount:
  create: true
  # -- Annotations, for example cloud IAM bindings (AWS Bedrock, Google Vertex AI).
  annotations: {}
  name: ""
  automountServiceAccountToken: false

resources:
  requests:
    cpu: 100m
    memory: 128Mi
  limits:
    memory: 512Mi

autoscaling:
  enabled: false
  minReplicas: 2
  maxReplicas: 10
  targetCPUUtilizationPercentage: 70
  targetMemoryUtilizationPercentage: null

# Created only when more than one replica can run, so a single pod never blocks node drains.
podDisruptionBudget:
  enabled: true
  minAvailable: 1
  maxUnavailable: null

# Probe paths are prefixed with env.BASE_PATH automatically.
livenessProbe:
  httpGet:
    path: /health
    port: http
  initialDelaySeconds: 5
  periodSeconds: 10
  timeoutSeconds: 5
  failureThreshold: 3

# /health/ready returns 503 while storage is unreachable.
readinessProbe:
  httpGet:
    path: /health/ready
    port: http
  periodSeconds: 5
  timeoutSeconds: 5
  failureThreshold: 3

# -- GoModel drains requests for 10s and finishes teardown within 30s after SIGTERM.
terminationGracePeriodSeconds: 45

# The image runs as the distroless nonroot user (UID 65532).
podSecurityContext:
  runAsNonRoot: true
  runAsUser: 65532
  runAsGroup: 65532
  fsGroup: 65532
  seccompProfile:
    type: RuntimeDefault

securityContext:
  allowPrivilegeEscalation: false
  readOnlyRootFilesystem: true
  capabilities:
    drop:
      - ALL

podAnnotations: {}
podLabels: {}
priorityClassName: ""
nodeSelector: {}
tolerations: []
affinity: {}
topologySpreadConstraints: []

# -- Extra volumes and mounts, for example a CA bundle or a local model catalog file.
extraVolumes: []
extraVolumeMounts: []