Problem
Enabling STT (Speech-to-Text) in the Helm chart requires manually patching the configmap after helm upgrade because the chart template has no [stt] section. The API key also ends up in plaintext in the configmap via agents.kiro.env.
Current workaround:
helm upgrade with --set agents.kiro.env.GROQ_API_KEY=...
- Manually patch configmap to add
[stt] block
kubectl rollout restart
This is error-prone and breaks the single-command install/upgrade experience.
Proposed Solution
Add stt as a first-class config block under each agent in the Helm chart.
User experience (after fix)
helm upgrade openab openab/openab \
--set agents.kiro.stt.enabled=true \
--set agents.kiro.stt.apiKey="gsk_xxx"
No manual patching, no extra restart.
Implementation
-
values.yaml — add stt defaults under each agent:
stt:
enabled: false
apiKey: ""
model: "whisper-large-v3-turbo"
baseUrl: "https://api.groq.com/openai/v1"
-
configmap.yaml — render [stt] section when enabled, referencing env var (not plaintext):
[stt]
enabled = true
api_key = "${STT_API_KEY}"
model = "whisper-large-v3-turbo"
-
Secret template — store stt.apiKey in the K8s Secret (same pattern as discord.botToken)
-
Deployment template — inject STT_API_KEY from Secret as env var
This keeps the API key out of the configmap and follows the existing pattern used for DISCORD_BOT_TOKEN.
Problem
Enabling STT (Speech-to-Text) in the Helm chart requires manually patching the configmap after
helm upgradebecause the chart template has no[stt]section. The API key also ends up in plaintext in the configmap viaagents.kiro.env.Current workaround:
helm upgradewith--set agents.kiro.env.GROQ_API_KEY=...[stt]blockkubectl rollout restartThis is error-prone and breaks the single-command install/upgrade experience.
Proposed Solution
Add
sttas a first-class config block under each agent in the Helm chart.User experience (after fix)
helm upgrade openab openab/openab \ --set agents.kiro.stt.enabled=true \ --set agents.kiro.stt.apiKey="gsk_xxx"No manual patching, no extra restart.
Implementation
values.yaml— addsttdefaults under each agent:configmap.yaml— render[stt]section when enabled, referencing env var (not plaintext):Secret template — store
stt.apiKeyin the K8s Secret (same pattern asdiscord.botToken)Deployment template — inject
STT_API_KEYfrom Secret as env varThis keeps the API key out of the configmap and follows the existing pattern used for
DISCORD_BOT_TOKEN.