# Default values for NeMo Entity Store.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

# -- The number of NeMo Entity Store replicas to deploy.
replicaCount: 1

image:
  # -- The NeMo Entity Store image repository.
  repository: nvcr.io/nvidia/nemo-microservices/entity-store
  # -- The image pull policy to pull the NeMo Entity Store image
  pullPolicy: IfNotPresent
  # -- Specifies the image tag.
  tag: ""

# -- List of image pull secrets. You can add multiple secrets to the list.
imagePullSecrets:
  - name: nvcrimagepullsecret
# -- String to partially override name on resulting Kubernetes objects when deployed.
nameOverride: ""
# -- String to fully override name on resulting Kubernetes objects when deployed.
fullnameOverride: ""

# -- Additional environment variables to pass to the NeMo Entity Store container. Format should be `NAME: value` or `NAME: valueFrom: {object}`.
env:
  {}

serviceAccount:
  # -- Whether to automatically mount the service account's API credentials.
  automount: true
  # -- Additional custom annotations for the service account.
  annotations: {}
  # -- The name of the service account to use.
  name: ""

# -- Additional annotations for the NeMo Entity Store pods.
podAnnotations: {}
# -- Additional labels for the NeMo Entity Store pods.
podLabels: {}

# -- The pod security context for the NeMo Entity Store pods.
podSecurityContext: {}

# -- The security context for the NeMo Entity Store pods.
securityContext: {}

service:
  # -- The Kubernetes service type of the NeMo Entity Store microservice.
  type: ClusterIP
  # -- The service port for the NeMo Entity Store microservice.
  port: 8000

# -- The name of the Kubernetes Service created for NeMo Entity Store.
serviceNameOverride: ""

ingress:
  # -- Whether to enable ingress.
  enabled: false
  # -- The name of the ingress class.
  className: ""
  # -- Additional ingress annotations.
  annotations: {}
  # -- The default host name for the ingress record.
  hostname: ""
  # -- (list) A list of maps, each containing the keys `host` and `paths` for the ingress resource. You must specify a list for configuring ingress for the microservice.
  # @default -- []
  hosts: {}
  #   - host: ""
  #     paths:
  #       - path: /
  #         pathType: ImplementationSpecific
  # -- The TLS configuration for the ingress.
  tls: []

openTelemetry:
  # -- Whether to enable OpenTelemetry integration.
  enabled: false

livenessProbe:
  # -- The path for the liveness probe.
  httpGet:
    path: /health
    port: http
  # -- The initial delay seconds for the Kubernetes liveness probe.
  initialDelaySeconds: 3
  # -- The period seconds for the liveness probe.
  periodSeconds: 10
  # -- The timeout seconds for the liveness probe.
  timeoutSeconds: 20
  # -- The failure threshold for the liveness probe.
  failureThreshold: 10

readinessProbe:
  # -- The path for the readiness probe.
  httpGet:
    path: /health
    port: http
  # -- The initial delay seconds for the readiness probe.
  initialDelaySeconds: 10
  # -- The period seconds for the readiness probe.
  periodSeconds: 10
  # -- The timeout seconds for the readiness probe.
  timeoutSeconds: 20
  # -- The failure threshold for the readiness probe.
  failureThreshold: 20

# -- Requests and limits for underlying Kubernetes deployment for NeMo Entity Store.
resources: {}
  # If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi

autoscaling:
  # -- Whether to enable autoscaling.
  enabled: false
  # -- The minimum number of replicas.
  minReplicas: 1
  # -- The maximum number of replicas.
  maxReplicas: 100
  # -- The target CPU utilization percentage for autoscaling.
  targetCPUUtilizationPercentage: 80
  # targetMemoryUtilizationPercentage: 80

# -- Additional volumes for the deployment.
volumes: []

# -- Additional volume mounts for the deployment.
volumeMounts: []

# -- Additional NeMo Entity Store API server specific configs.
appConfig: {}

# -- Additional node selector configuration for the deployment.
nodeSelector: {}

# -- Additional tolerations for the deployment.
tolerations: []

# -- Additional affinity for the deployment.
affinity: {}

postgresql:
  # -- Whether to install the default PostgreSQL Helm chart. If enabled, the NeMo Entity Store microservice Helm chart uses the [PostgreSQL Helm chart from Bitnami](https://github.com/bitnami/charts/blob/main/bitnami/postgresql/values.yaml) to create a PostgreSQL database.
  enabled: true
  auth:
    # -- Whether to assign a password to the "postgres" admin user. If disabled, remote access is blocked for this user.
    enablePostgresUser: true
    # -- The user name to use for the PostgreSQL database.
    username: user
    # -- The password for the PostgreSQL user.
    password: pass
    # -- The name for a custom database to create.
    database: entity-store
    # -- The name of an existing secret to use for PostgreSQL credentials.
    existingSecret: ""
  # -- The PostgreSQL architecture. Available options are `standalone` or `replication`.
  architecture: standalone

externalDatabase:
  # -- The database host.
  host: localhost
  # -- The database port number.
  port: 5432
  # -- The username for the NeMo Entity Store service.
  user: user
  # -- The password for the username.
  password: pass
  # -- The name of the database for the NeMo Entity Store service.
  database: entity-store
  # -- The name of an existing secret resource containing the database credentials.
  existingSecret: ""
  # -- The name of an existing secret key containing the database credentials.
  existingSecretPasswordKey: ""
  uriSecret:
    # -- The name of an existing secret that includes a full database URI.
    name: ""
    # -- The key within the existing secret that includes a full database URI.
    key: ""

# @ignored
demo:
  # -- Whether to enable demo mode.
  enabled: false
  # -- The name of the NGC image pull secret for demo mode.
  ngcImagePullSecret: nvcrimagepullsecret
  # -- The NGC API key for demo mode.
  ngcApiKey: ""