Skip to content

Commit 49e578a

Browse files
author
chaodu-agent
committed
feat: no default agent, no latest tag — all images require explicit agent suffix
- _helpers.tpl: remove kiro special case, all agents use <tag>-<agent> - image-tags.md: document no-default, no-latest policy - helm unittest: update expected values (kiro → openab:<tag>-kiro) Migration: openab:beta → openab:beta-kiro
1 parent 37a0451 commit 49e578a

3 files changed

Lines changed: 32 additions & 46 deletions

File tree

charts/openab/templates/_helpers.tpl

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,8 @@ app.kubernetes.io/component: {{ .agent }}
5757
{{- end }}
5858

5959
{{/* Resolve image: agent-level string override → unified default (repository:<tag>-<agent>).
60-
When no per-agent image override is set, produces:
61-
ghcr.io/openabdev/openab:<tag>-<agent> (e.g. openab:beta-claude)
62-
ghcr.io/openabdev/openab:<tag> (for kiro, the default 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.
6362
Per-agent image override (string with ":") is used verbatim for full backward compat.
6463
Call with: dict "ctx" $ "agent" $name "cfg" $cfg */}}
6564
{{- define "openab.agentImage" -}}
@@ -71,13 +70,9 @@ app.kubernetes.io/component: {{ .agent }}
7170
{{- end }}
7271
{{- else }}
7372
{{- $tag := default .ctx.Chart.AppVersion .ctx.Values.image.tag }}
74-
{{- if eq .agent "kiro" }}
75-
{{- printf "%s:%s" .ctx.Values.image.repository $tag }}
76-
{{- else }}
7773
{{- printf "%s:%s-%s" .ctx.Values.image.repository $tag .agent }}
7874
{{- end }}
7975
{{- end }}
80-
{{- end }}
8176

8277
{{/* Resolve imagePullPolicy: global default (per-agent image string has no pullPolicy) */}}
8378
{{- define "openab.agentImagePullPolicy" -}}

charts/openab/tests/agent-image_test.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
suite: agentImage unified tag format
1+
suite: agentImage unified tag format (no default agent)
22
templates:
33
- templates/deployment.yaml
44

55
tests:
6-
- it: kiro (default) resolves to openab:<appVersion> with no agent suffix
6+
- it: kiro resolves to openab:<appVersion>-kiro (no bare tag)
77
asserts:
88
- equal:
99
path: spec.template.spec.containers[0].image
10-
value: "ghcr.io/openabdev/openab:0.9.0-beta.1"
10+
value: "ghcr.io/openabdev/openab:0.9.0-beta.1-kiro"
1111

1212
- it: non-kiro agent resolves to openab:<appVersion>-<agent>
1313
set:
@@ -18,13 +18,13 @@ tests:
1818
path: spec.template.spec.containers[0].image
1919
value: "ghcr.io/openabdev/openab:0.9.0-beta.1-claude"
2020

21-
- it: image.tag override applies to kiro
21+
- it: image.tag override applies to kiro with suffix
2222
set:
2323
image.tag: "beta"
2424
asserts:
2525
- equal:
2626
path: spec.template.spec.containers[0].image
27-
value: "ghcr.io/openabdev/openab:beta"
27+
value: "ghcr.io/openabdev/openab:beta-kiro"
2828

2929
- it: image.tag override applies to non-kiro agent with suffix
3030
set:

docs/image-tags.md

Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,39 @@
22

33
## Unified Image Repository (`ghcr.io/openabdev/openab`)
44

5-
All agent variants are published under a single image repository using tag-based variants:
5+
All agent variants are published under a single image repository using tag-based variants.
6+
**There is no default agent** — every image tag must explicitly specify the agent:
67

78
```
8-
ghcr.io/openabdev/openab:<version>-<agent> # per-agent variant
9-
ghcr.io/openabdev/openab:<version> # default (kiro)
9+
ghcr.io/openabdev/openab:<version>-<agent>
1010
```
1111

12-
### Default (kiro) tags
12+
### Tag format
1313

14-
| Tag | Points to | Updated when |
15-
|-----|-----------|--------------|
16-
| `0.9.0-beta.1` | Exact pre-release build | Pre-release tag pushed |
17-
| `beta` | Latest pre-release | Every pre-release build |
18-
| `0.9.0` | Promoted stable build | Stable tag pushed |
19-
| `0.9` | Latest patch in minor | Stable promotion |
20-
| `stable` | Latest stable | Stable promotion |
21-
| `latest` | Latest stable (= `stable`) | Stable promotion |
22-
23-
### Per-agent variant tags
24-
25-
Agent variants use the format `<version>-<agent>`:
14+
| Tag | Example | Points to | Updated when |
15+
|-----|---------|-----------|--------------|
16+
| `<version>-<agent>` | `0.9.0-beta.1-kiro` | Exact pre-release build | Pre-release tag pushed |
17+
| `beta-<agent>` | `beta-claude` | Latest pre-release | Every pre-release build |
18+
| `<version>-<agent>` | `0.9.0-codex` | Promoted stable build | Stable tag pushed |
19+
| `<major.minor>-<agent>` | `0.9-gemini` | Latest patch in minor | Stable promotion |
20+
| `stable-<agent>` | `stable-grok` | Latest stable | Stable promotion |
2621

27-
| Tag | Example | Points to |
28-
|-----|---------|-----------|
29-
| `<version>-<agent>` | `0.9.0-beta.1-claude` | Exact pre-release build for claude |
30-
| `beta-<agent>` | `beta-codex` | Latest pre-release for codex |
31-
| `<version>-<agent>` | `0.9.0-gemini` | Promoted stable for gemini |
32-
| `stable-<agent>` | `stable-grok` | Latest stable for grok |
22+
> **No `latest` tag.** Use `beta-<agent>` or `stable-<agent>` for floating tags,
23+
> or pin to an exact version like `0.9.0-beta.1-kiro`.
3324
3425
Available agents: `kiro`, `claude`, `codex`, `copilot`, `cursor`, `gemini`, `grok`, `hermes`, `mimocode`, `opencode`, `antigravity`, `pi`, `native`, `agentcore`
3526

3627
### Migration from per-repo images (deprecated)
3728

3829
Previously, each agent had its own image repository (`ghcr.io/openabdev/openab-codex:beta`).
39-
These are now replaced by the unified tag format (`ghcr.io/openabdev/openab:beta-codex`).
30+
These are now replaced by the unified tag format.
4031

4132
| Old (deprecated) | New |
4233
|------------------|-----|
34+
| `ghcr.io/openabdev/openab:beta` | `ghcr.io/openabdev/openab:beta-kiro` |
35+
| `ghcr.io/openabdev/openab:latest` | `ghcr.io/openabdev/openab:stable-kiro` (no more `latest`) |
4336
| `ghcr.io/openabdev/openab-claude:beta` | `ghcr.io/openabdev/openab:beta-claude` |
4437
| `ghcr.io/openabdev/openab-codex:0.8.5-beta.13` | `ghcr.io/openabdev/openab:0.8.5-beta.13-codex` |
45-
| `ghcr.io/openabdev/openab:beta` | `ghcr.io/openabdev/openab:beta` (unchanged, kiro is default) |
4638

4739
## Gateway (`ghcr.io/openabdev/openab-gateway`)
4840

@@ -57,9 +49,9 @@ These are now replaced by the unified tag format (`ghcr.io/openabdev/openab:beta
5749
| Use case | Recommended tag |
5850
|----------|----------------|
5951
| Production (pinned) | Exact version (`0.9.0-beta.1-claude`) |
60-
| Helm chart default | `stable` or `beta` (channel-based) — chart auto-appends `-<agent>` |
61-
| Local dev / quick test | `beta` or `beta-<agent>` |
62-
| CI | Exact version or SHA |
52+
| Helm chart default | `beta` or `stable` — chart auto-appends `-<agent>` |
53+
| Local dev / quick test | `beta-<agent>` |
54+
| CI | Exact version or `<sha>-<agent>` |
6355

6456
## Release flow
6557

@@ -72,10 +64,10 @@ release PR merged → tag-on-merge → v0.9.0-beta.1
7264
┌──────────┴──────────┐
7365
│ is_prerelease=true │
7466
▼ │
75-
openab:0.9.0-beta.1
67+
openab:0.9.0-beta.1-kiro
7668
openab:0.9.0-beta.1-claude │
7769
openab:0.9.0-beta.1-codex │
78-
openab:beta
70+
openab:beta-kiro
7971
openab:beta-claude │
8072
openab:beta-codex │
8173
... (all agents) │
@@ -84,12 +76,11 @@ release PR merged → tag-on-merge → v0.9.0-beta.1
8476
│ is_prerelease=false (stable)
8577
8678
promote latest beta images →
87-
openab:0.9.0
79+
openab:0.9.0-kiro
8880
openab:0.9.0-claude
89-
openab:0.9
81+
openab:0.9-kiro
9082
openab:0.9-claude
91-
openab:stable
83+
openab:stable-kiro
9284
openab:stable-claude
93-
openab:latest
94-
... (all agents)
85+
... (all agents, no `latest`)
9586
```

0 commit comments

Comments
 (0)