背景
PR #267 已在初始部署入口校验普通 env_vars 与 Agent Bundle 鉴权 SecretRef 的环境变量名冲突,但实例后续配置更新路径还没有复用同一规则。
当前问题
- 初始部署会在 deploy_service.py 中调用 _reject_secret_ref_env_var_collisions()。
- save_config() 会直接把 req.env_vars 保存进 pending_config。
- _execute_config_update() 会直接写 instance.env_vars。
- _merge_reserved_advanced_config() 会保留已有 advanced_config.secret_env_refs。
- resource_builder.build_deployment() 会先加入 ConfigMap env,再追加 secretKeyRef env。
因此用户后续仍可能写入与 secret_env_refs 同名的普通 env,例如 OAUTH_ACCESS_TOKEN,造成 Deployment 中重复 env,并弱化 SecretRef 边界。
建议修复
在 save_config() / update_config() / _execute_config_update() 应用 env_vars 前,基于实例现有或合并后的 advanced_config.secret_env_refs 执行同 deploy_service._reject_secret_ref_env_var_collisions() 等价校验。
验收
- 带 secret_env_refs 的实例后续更新 env_vars.OAUTH_ACCESS_TOKEN 时返回 400。
- 不修改 env_vars 或不冲突时保持原行为。
- pending_config 和直接更新路径都覆盖测试。
来自 PR #267 维护者 review follow-up;非 P0/P1 blocker。
背景
PR #267 已在初始部署入口校验普通 env_vars 与 Agent Bundle 鉴权 SecretRef 的环境变量名冲突,但实例后续配置更新路径还没有复用同一规则。
当前问题
因此用户后续仍可能写入与 secret_env_refs 同名的普通 env,例如 OAUTH_ACCESS_TOKEN,造成 Deployment 中重复 env,并弱化 SecretRef 边界。
建议修复
在 save_config() / update_config() / _execute_config_update() 应用 env_vars 前,基于实例现有或合并后的 advanced_config.secret_env_refs 执行同 deploy_service._reject_secret_ref_env_var_collisions() 等价校验。
验收
来自 PR #267 维护者 review follow-up;非 P0/P1 blocker。