Skip to content

Commit 266f4a4

Browse files
authored
Merge pull request #1179 from openabdev/feat/unified-image-tags-helm-docs
feat(chart,docs): unified image tag format openab:<tag>-<agent>
2 parents 0e12195 + efef9ab commit 266f4a4

18 files changed

Lines changed: 125 additions & 55 deletions

charts/openab/templates/_helpers.tpl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,11 @@ app.kubernetes.io/component: {{ .agent }}
5656
{{- end -}}
5757
{{- end }}
5858

59-
{{/* Resolve image: agent-level string override → global default (repository:tag, tag defaults to appVersion).
60-
Caveat: "contains :" treats registry ports (e.g. my-registry:5000/img) as tagged.
61-
Not an issue for ghcr.io / Docker Hub; revisit if custom registries with ports are needed. */}}
59+
{{/* Resolve image: agent-level string override → unified default (repository:<tag>-<agent>).
60+
All agents use the same format: ghcr.io/openabdev/openab:<tag>-<agent>
61+
There is no "default" agent — every agent must be explicitly identified in the tag.
62+
Per-agent image override (string with ":") is used verbatim for full backward compat.
63+
Call with: dict "ctx" $ "agent" $name "cfg" $cfg */}}
6264
{{- define "openab.agentImage" -}}
6365
{{- if and .cfg.image (kindIs "string" .cfg.image) (ne .cfg.image "") }}
6466
{{- if contains ":" .cfg.image }}
@@ -68,7 +70,7 @@ app.kubernetes.io/component: {{ .agent }}
6870
{{- end }}
6971
{{- else }}
7072
{{- $tag := default .ctx.Chart.AppVersion .ctx.Values.image.tag }}
71-
{{- printf "%s:%s" .ctx.Values.image.repository $tag }}
73+
{{- printf "%s:%s-%s" .ctx.Values.image.repository $tag .agent }}
7274
{{- end }}
7375
{{- end }}
7476

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
suite: agentImage unified tag format (no default agent)
2+
templates:
3+
- templates/deployment.yaml
4+
5+
tests:
6+
- it: kiro resolves to openab:<appVersion>-kiro (no bare tag)
7+
asserts:
8+
- equal:
9+
path: spec.template.spec.containers[0].image
10+
value: "ghcr.io/openabdev/openab:0.9.0-beta.1-kiro"
11+
12+
- it: non-kiro agent resolves to openab:<appVersion>-<agent>
13+
set:
14+
agents.kiro.enabled: false
15+
agents.claude.command: claude-agent-acp
16+
asserts:
17+
- equal:
18+
path: spec.template.spec.containers[0].image
19+
value: "ghcr.io/openabdev/openab:0.9.0-beta.1-claude"
20+
21+
- it: image.tag override applies to kiro with suffix
22+
set:
23+
image.tag: "beta"
24+
asserts:
25+
- equal:
26+
path: spec.template.spec.containers[0].image
27+
value: "ghcr.io/openabdev/openab:beta-kiro"
28+
29+
- it: image.tag override applies to non-kiro agent with suffix
30+
set:
31+
image.tag: "beta"
32+
agents.kiro.enabled: false
33+
agents.codex.command: codex-acp
34+
asserts:
35+
- equal:
36+
path: spec.template.spec.containers[0].image
37+
value: "ghcr.io/openabdev/openab:beta-codex"
38+
39+
- it: explicit per-agent image string with tag is used verbatim
40+
set:
41+
agents.kiro.image: "ghcr.io/custom/image:v1.0"
42+
asserts:
43+
- equal:
44+
path: spec.template.spec.containers[0].image
45+
value: "ghcr.io/custom/image:v1.0"
46+
47+
- it: explicit per-agent image string without tag gets appVersion appended
48+
set:
49+
agents.kiro.image: "ghcr.io/custom/image"
50+
asserts:
51+
- equal:
52+
path: spec.template.spec.containers[0].image
53+
value: "ghcr.io/custom/image:0.9.0-beta.1"

charts/openab/values.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ agents:
9595
# nodeSelector: {}
9696
# tolerations: []
9797
# affinity: {}
98-
# image: "ghcr.io/openabdev/openab-claude" # tag omitted → auto-appends appVersion
98+
# image: "" # leave empty → auto-resolves to openab:<tag>-claude (unified format)
9999
# opencode:
100100
# command: opencode
101101
# args:
@@ -125,7 +125,7 @@ agents:
125125
# size: 1Gi
126126
# agentsMd: ""
127127
# resources: {}
128-
# image: "ghcr.io/openabdev/openab-opencode:latest"
128+
# image: "" # leave empty → auto-resolves to openab:<tag>-opencode
129129
# pi:
130130
# command: pi-acp
131131
# discord:
@@ -152,7 +152,7 @@ agents:
152152
# enabled: true
153153
# storageClass: ""
154154
# size: 1Gi
155-
# image: "ghcr.io/openabdev/openab-pi:latest"
155+
# image: "" # leave empty → auto-resolves to openab:<tag>-pi
156156
# cursor:
157157
# command: cursor-agent
158158
# args:
@@ -183,7 +183,7 @@ agents:
183183
# existingClaim: "" # set to reuse an existing PVC (skips PVC creation)
184184
# storageClass: ""
185185
# size: 1Gi
186-
# image: "ghcr.io/openabdev/openab-cursor:latest"
186+
# image: "" # leave empty → auto-resolves to openab:<tag>-cursor
187187
# hermes:
188188
# command: hermes-acp
189189
# discord:
@@ -204,7 +204,7 @@ agents:
204204
# enabled: true
205205
# storageClass: ""
206206
# size: 1Gi
207-
# image: "ghcr.io/openabdev/openab-hermes"
207+
# image: "" # leave empty → auto-resolves to openab:<tag>-hermes
208208
# grok:
209209
# command: grok
210210
# args:
@@ -232,7 +232,7 @@ agents:
232232
# enabled: true
233233
# storageClass: ""
234234
# size: 1Gi
235-
# image: "ghcr.io/openabdev/openab-grok"
235+
# image: "" # leave empty → auto-resolves to openab:<tag>-grok
236236
image: ""
237237
# configUrl: when set, openab uses `-c <URL>` to fetch config remotely
238238
# instead of mounting the chart-generated ConfigMap. The ConfigMap and its

docs/agentcore.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,10 @@ args = ["agentcore-bridge", "--runtime-arn", "arn:aws:...", "--region", "us-east
8484

8585
## Docker Image
8686

87-
Use `ghcr.io/openabdev/openab-agentcore` — a minimal image (~20MB) with only the OAB binary. No Python, no coding CLI bundled.
87+
Use `ghcr.io/openabdev/openab:beta-agentcore` — a minimal image (~20MB) with only the OAB binary. No Python, no coding CLI bundled.
8888

8989
```bash
90-
docker pull ghcr.io/openabdev/openab-agentcore:latest
90+
docker pull ghcr.io/openabdev/openab:beta-agentcore
9191
```
9292

9393
## Deploying a Kiro Runtime

docs/antigravity.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,7 @@ agents:
6868
command: "agy-acp"
6969
args: []
7070
workingDir: "/home/agent"
71-
image:
72-
repository: ghcr.io/openabdev/openab-antigravity
73-
tag: "latest"
71+
# image: leave empty — chart auto-resolves to openab:<tag>-antigravity
7472
```
7573

7674
## Limitations

docs/claude-code.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ helm install openab openab/openab \
1717
--set agents.kiro.enabled=false \
1818
--set agents.claude.discord.botToken="$DISCORD_BOT_TOKEN" \
1919
--set-string 'agents.claude.discord.allowedChannels[0]=YOUR_CHANNEL_ID' \
20-
--set agents.claude.image=ghcr.io/openabdev/openab-claude:latest \
2120
--set agents.claude.command=claude-agent-acp \
2221
--set agents.claude.workingDir=/home/node
2322
```

docs/codex.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ helm install openab openab/openab \
2121
--set agents.codex.discord.enabled=true \
2222
--set agents.codex.discord.botToken="$DISCORD_BOT_TOKEN" \
2323
--set-string 'agents.codex.discord.allowedChannels[0]=YOUR_CHANNEL_ID' \
24-
--set agents.codex.image=ghcr.io/openabdev/openab-codex:latest \
2524
--set agents.codex.command=codex-acp \
2625
--set agents.codex.workingDir=/home/node
2726
```

docs/copilot.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ helm install openab-copilot openab/openab \
5959
--set agents.copilot.discord.botToken="$DISCORD_BOT_TOKEN" \
6060
--set-string 'agents.copilot.discord.allowedChannels[0]=YOUR_CHANNEL_ID' \
6161
--set agents.copilot.discord.enabled=true \
62-
--set agents.copilot.image=ghcr.io/openabdev/openab-copilot \
6362
--set agents.copilot.command=copilot \
6463
--set 'agents.copilot.args={--acp,--stdio}' \
6564
--set agents.copilot.persistence.enabled=true \
@@ -129,7 +128,6 @@ helm install openab-copilot openab/openab \
129128
--set agents.copilot.discord.enabled=true \
130129
--set agents.copilot.discord.botToken="$DISCORD_BOT_TOKEN" \
131130
--set-string 'agents.copilot.discord.allowedChannels[0]=YOUR_CHANNEL_ID' \
132-
--set agents.copilot.image=ghcr.io/openabdev/openab-copilot \
133131
--set agents.copilot.command=copilot \
134132
--set 'agents.copilot.args={--acp,--stdio}' \
135133
--set agents.copilot.persistence.enabled=true \

docs/cursor.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ helm install openab openab/openab \
6363
--set agents.kiro.enabled=false \
6464
--set agents.cursor.discord.botToken="$DISCORD_BOT_TOKEN" \
6565
--set-string 'agents.cursor.discord.allowedChannels[0]=YOUR_CHANNEL_ID' \
66-
--set agents.cursor.image=ghcr.io/openabdev/openab-cursor:latest \
6766
--set agents.cursor.command=cursor-agent \
6867
--set 'agents.cursor.args={acp}' \
6968
--set agents.cursor.persistence.enabled=true \

docs/gemini.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ helm install openab openab/openab \
1818
--set agents.gemini.discord.enabled=true \
1919
--set agents.gemini.discord.botToken="$DISCORD_BOT_TOKEN" \
2020
--set-string 'agents.gemini.discord.allowedChannels[0]=YOUR_CHANNEL_ID' \
21-
--set agents.gemini.image=ghcr.io/openabdev/openab-gemini:latest \
2221
--set agents.gemini.command=gemini \
2322
--set agents.gemini.args='{--acp}' \
2423
--set agents.gemini.workingDir=/home/node

0 commit comments

Comments
 (0)