Commit ecf00a4
authored
fix(helm/intel): scope AI resources per-release to avoid cross-release Secret conflicts (#164)
Fixes: #163
Problem
- Deploying multiple `codetogether-intel` releases in the same namespace caused
a collision on statically named resources (e.g., `ai-secrets` / `ai-config`),
producing Helm ownership errors.
What changed
- templates/ai-config.yaml
- Create ConfigMap only when `ai.enabled=true` and `ai.mode=external`.
- Name is now release-scoped: `{{ .Release.Name }}-ai-config`.
- templates/ai-external-secret.yaml
- Respect `ai.externalSecret.create` and `ai.externalSecret.name`.
- Default Secret name is release-scoped:
`{{ include "codetogether.fullname" . }}-ai-external-secret`.
- Store API key under `stringData.apiKey`.
- templates/deployment.yaml
- Read `AI_PROVIDER` / `AI_EXTERNAL_URL` from `{{ .Release.Name }}-ai-config`.
- Read `AI_EXTERNAL_API_KEY` from the default or user-specified Secret:
`{{ default (printf "%s-ai-external-secret" (include "codetogether.fullname" .)) .Values.ai.externalSecret.name }}`.
- Bundled mode unchanged; external resources are not created in bundled mode.
Why
- Ensures two or more releases (e.g., `qa-intel` and `demo-staging-intel`)
can coexist in the same namespace without Helm ownership clashes.
How to test
- External (chart-managed Secret):
`helm template demo-staging-intel ./charts/intel -n default \
--set ai.enabled=true --set ai.mode=external \
--set ai.provider=openai --set ai.url=https://api.openai.com \
--set ai.externalSecret.create=true --set ai.externalSecret.apiKey=TESTKEY`
→ renders `demo-staging-intel-ai-config` and `demo-staging-intel-ai-external-secret`.
- External (existing Secret):
`kubectl create secret generic my-custom-ai-secret -n default \
--from-literal=apiKey=TESTKEY`
`helm template qa-intel ./charts/intel -n default \
--set ai.enabled=true --set ai.mode=external \
--set ai.provider=openai --set ai.url=https://api.openai.com \
--set ai.externalSecret.create=false --set ai.externalSecret.name=my-custom-ai-secret`
→ renders only the release-scoped ConfigMap; Deployment references the existing Secret.
- Bundled:
`helm template demo ./charts/intel -n default --set ai.enabled=true --set ai.mode=bundled`
→ no AI ConfigMap/Secret rendered; sidecar included.1 parent 264c8e4 commit ecf00a4
3 files changed
Lines changed: 13 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
147 | | - | |
148 | | - | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
149 | 153 | | |
150 | 154 | | |
151 | 155 | | |
| |||
0 commit comments