Summary
Create thin, purpose-built Helm wrapper charts for each messaging platform so users can install a fully working OAB bot with minimal configuration:
helm install my-bot openab-telegram --set telegramBotToken="123:ABC"
helm install my-bot openab-line --set lineChannelSecret="xxx" --set lineChannelAccessToken="yyy"
Problem
The current openab chart is powerful but exposes too much surface area for users who just want "OAB on Telegram". A new user must understand:
- Discord vs gateway adapter distinction
- Gateway as a separate Deployment (no shared filesystem without PVC)
- Which
values.yaml knobs to set and which to disable
- Compatible OAB + Gateway version pairs (
v* vs gateway-v*)
Proposal
1. Add gateway.colocate mode to core chart
When gateway.colocate: true, the gateway runs as a sidecar container in the same pod as OAB with a shared emptyDir volume. This eliminates the need for PVC just for auth/state sharing between OAB and gateway.
containers:
- name: oab
volumeMounts:
- name: shared-state
mountPath: /home/node/.openab
- name: gateway
volumeMounts:
- name: shared-state
mountPath: /home/node/.openab
volumes:
- name: shared-state
emptyDir: {}
2. Create wrapper charts per platform
Each wrapper chart depends on the core openab chart as a subchart and pre-configures platform-specific defaults:
charts/
├── openab/ # existing core chart (source of truth)
├── openab-telegram/
│ ├── Chart.yaml # dependency: openab ^0.8.x
│ └── values.yaml # gateway.enabled=true, colocate=true, platform=telegram, discord.enabled=false
├── openab-line/
│ ├── Chart.yaml
│ └── values.yaml
├── openab-googlechat/
├── openab-feishu/
├── openab-wecom/
└── openab-msteams/
Each wrapper:
- Disables Discord adapter (not needed for gateway-based platforms)
- Enables gateway in colocate mode
- Exposes only the 1-3 required
--set values for that platform
- Pins compatible OAB + Gateway versions via dependency version constraint
Target UX
| Platform |
Required --set flags |
| Telegram |
telegramBotToken |
| LINE |
lineChannelSecret, lineChannelAccessToken |
| Google Chat |
googleChatAudience, googleChatSaKeyJson |
| Feishu |
feishuAppId, feishuAppSecret |
| WeCom |
wecomCorpId, wecomSecret, wecomToken, wecomEncodingAesKey, wecomAgentId |
| MS Teams |
teamsAppId, teamsAppSecret |
Optional common flags: agentImage (defaults to kiro), persistence.enabled, nodeSelector.
Benefits
- One command install — no scaffolding knowledge required
- Version safety — chart pins tested OAB + Gateway combos
- Shared filesystem — colocate mode eliminates PVC requirement for simple deployments
- No template duplication — wrappers reuse core chart templates via subchart dependency
- Discoverable —
helm search repo openab- shows all platform options
Alternatives Considered
- Documentation only — still requires users to understand the full values.yaml
- Separate monolithic charts per platform — template duplication, maintenance burden
- Kustomize overlays — less discoverable than Helm for the target audience
Summary
Create thin, purpose-built Helm wrapper charts for each messaging platform so users can install a fully working OAB bot with minimal configuration:
Problem
The current
openabchart is powerful but exposes too much surface area for users who just want "OAB on Telegram". A new user must understand:values.yamlknobs to set and which to disablev*vsgateway-v*)Proposal
1. Add
gateway.colocatemode to core chartWhen
gateway.colocate: true, the gateway runs as a sidecar container in the same pod as OAB with a sharedemptyDirvolume. This eliminates the need for PVC just for auth/state sharing between OAB and gateway.2. Create wrapper charts per platform
Each wrapper chart depends on the core
openabchart as a subchart and pre-configures platform-specific defaults:Each wrapper:
--setvalues for that platformTarget UX
--setflagstelegramBotTokenlineChannelSecret,lineChannelAccessTokengoogleChatAudience,googleChatSaKeyJsonfeishuAppId,feishuAppSecretwecomCorpId,wecomSecret,wecomToken,wecomEncodingAesKey,wecomAgentIdteamsAppId,teamsAppSecretOptional common flags:
agentImage(defaults to kiro),persistence.enabled,nodeSelector.Benefits
helm search repo openab-shows all platform optionsAlternatives Considered