Commit d9823e0
config_generator: deep-merge sibling deploy.yml into destination file
When the consumer points base-deploy-file at a destination override
(e.g. config/deploy.staging.yml) and the shared config (deploy.yml)
defines `env: { secret: [RAILS_MASTER_KEY, ...] }` while the destination
defines `env: { clear: { RAILS_ENV: staging } }`, the previous shallow
merge replaced the entire env block with the destination's version —
dropping env.secret entirely. That left the per-PR deploy file with
no secrets list, so Kamal didn't surface RAILS_MASTER_KEY into
.kamal/apps/.../env/roles/web.env, and Rails booted with no
secret_key_base.
Deep-merge instead: hashes recurse, arrays/scalars override wins.
Matches Kamal's own merge behavior at deploy time.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent a05d0fc commit d9823e0
1 file changed
Lines changed: 15 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
243 | | - | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
244 | 247 | | |
245 | 248 | | |
246 | 249 | | |
247 | 250 | | |
248 | 251 | | |
249 | 252 | | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
250 | 263 | | |
251 | 264 | | |
252 | 265 | | |
| |||
0 commit comments