コンテンツにスキップ

NVIDIA NIM + Discord

Required secret Overlay
NVIDIA_API_KEY, DISCORD_BOT_TOKEN values-nvidia-nim-and-discord.yaml

When to use it

NVIDIA API credentials, a Discord bot token, a channel, and allowed user IDs are required.

Install

helm upgrade --install hermes-agent ./charts/hermes-agent \
  --namespace hermes-agent --create-namespace \
  -f charts/hermes-agent/values-nvidia-nim-and-discord.yaml \
  --set-string env.NVIDIA_API_KEY='<real-value>' --wait

When an example requires more than one credential, pass every listed value with --set-string or use extraEnvFrom to reference an existing Secret.

Adapt before deploying

This provider-and-messenger combination can also run on ARM64 clusters.

Open Raw YAML

Complete overlay

charts/hermes-agent/values-nvidia-nim-and-discord.yaml
# values-nvidia-nim-and-discord.yaml
#
# Hermes Agent on a Raspberry Pi cluster (arm64), talking to NVIDIA NIM for the
# model AND running as a Discord bot: both wired in one file.
#
# All secrets below are DUMMY placeholders. Do NOT commit real keys: override
# them at install time (--set-string) or inject via a SealedSecret + extraEnvFrom
# (see examples/argocd/).
#
#   helm upgrade --install hermes-agent ./charts/hermes-agent \
#     --namespace hermes-agent --create-namespace \
#     -f charts/hermes-agent/values-nvidia-nim-and-discord.yaml \
#     --set-string env.NVIDIA_API_KEY='nvapi-<real>' \
#     --set-string env.DISCORD_BOT_TOKEN='<real-bot-token>' --wait

config:
  model:
    # Built-in provider key for NVIDIA NIM (build.nvidia.com).
    provider: nvidia
    # NIM model id: pick one your account can reach from build.nvidia.com.
    default: nvidia/nemotron-3-nano-omni-30b-a3b-reasoning
  terminal:
    backend: local

env:
  # --- Model provider (NVIDIA NIM) ----------------------------------------
  NVIDIA_API_KEY: "nvapi-DUMMY_replace_me_0000000000000000000000"
  # The chart's default placeholder is for OpenAI; this deployment doesn't use
  # it. Set to a clear sentinel so no real OpenAI key is implied.
  OPENAI_API_KEY: "unused"

  # --- Discord bot (secret bits) ------------------------------------------
  # Setting the token is enough to auto-enable Discord: no config.yaml change.
  # Create the bot at https://discord.com/developers/applications, enable the
  # "Message Content Intent", and invite it to your server.
  DISCORD_BOT_TOKEN: "MTA0DUMMYtoken000000000000.DUMMY.replace_me_with_a_real_token"

# Non-secret Discord knobs go here (plain env, not the Secret).
extraEnv:
  - name: DISCORD_HOME_CHANNEL        # channel id for cron / notification delivery
    value: "000000000000000000"       # DUMMY - your channel id (18 digits)
  - name: DISCORD_ALLOWED_USERS       # comma-separated user ids allowed to talk
    value: "111111111111111111"       # DUMMY - your Discord user id
  - name: DISCORD_ALLOW_ALL_USERS     # true only for throwaway/dev bots
    value: "false"

# Persistence: empty storageClass = cluster default. On a Raspberry Pi cluster
# that is typically local-path (k3s) or microk8s-hostpath: both ReadWriteOnce,
# which is exactly what this single-writer workload wants.
persistence:
  enabled: true
  storageClass: ""
  accessModes:
    - ReadWriteOnce
  size: 5Gi

# Defaults are already tuned for small arm64 nodes; shown here for visibility.
resources:
  requests:
    cpu: 100m
    memory: 256Mi
  limits:
    cpu: "1"
    memory: 1Gi