#10128·skaffold

为执行自定义操作设置 Surface 部署参数(--set / --set-value-file),并验证 Cloud Deploy 容器的同步性

作者: bogdannazarenko创建于 2026年6月26日更新于 2026年6月26日

□ 问题

Google Cloud 部署通行证部署参数作为环境变量进入其执行环境,并铺出它们来制作,海关行动验证容器。 Skaffold已经通过-set'/-set-value-file'接受部署参数,但从历史上看,这些参数只用于明显诱导,而且只在一组命令(提交'、过滤'、`删除')上暴露出。 结果:

  • `skaffold exec'(海关行动)没有将部署参数作为环境变量输入行动容器。
  • " 扫描仪核查 " **** 根本不接受-set ' /-set-value-file ' ,从未将部署参数输入核查容器。

这打破了云部署平等。 自定义动作(如Alembic数据库迁移)不能读取作为部署参数通过的Cloud SQL连接URL,部署后`核实'烟雾测试不能读取Cloud部署自动注入的已部署Cloud Run服务URL.

□ 预期行为

-set ' /-set-value-file'应在部署'、dev'、run'、exec'和核实'(除现有的提交 ' /过滤 ' /删除 ' 之外)。 在 " 执行 " 和 " 核查 " 方面,所提供的钥匙/价值对应作为环境变量再注入每个定制操作/核查容器,优先(最低)-最高):

  1. `-env-file ' (基地)
  2. " 定值文件 "
  3. " 定点 "

□ 当前的行为

  • 扫描器核实 ' 拒绝-set ' /`-set-value-file ' (旗子不在指挥部登记)。
  • 执行 ' /核实 ' 集装箱没有作为环境变量的部署参数。

□再现.

** 验证(Cloud Run Services URL ~ Playwright smoke test):**

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

skaffold.yaml (英语).

apiVersion: skaffold/v4beta14 (英语). 类型:配置 元数据 : 名称: repro 验证 :

  • 名称:烟雾测试 容器 : 名称:烟雾 图像:高山:3.15.4 命令:["/bin/sh","-c"] 参数: ['echo's smoke test for ${service URL}}']

控制台
$ skafdold 校验 -- service URL=https://my-service-abc-uc.a.run.app
错误: 未知的旗帜: -- set # today
# 期望:容器打印出“针对https://my-service-abc-uc.

** Exec (Cloud SQL URL ~ Alembic 迁移):**

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

skaffold.yaml (英语).

apiVersion: skaffold/v4beta14 (英语). 类型:配置 元数据 : 名称: repro 自定义动作 :

  • 名称: db- migrate 容器:
  • 名称: alembic 图像:高山:3.15.4 命令:["/bin/sh","-c"] 参数: ["echo"alembic 升级头 - > ${DATABASE URL}"]

控制台
$skaftold exec db-migrate -- set DATABASE URL=PostgreSQL+pg8000: user: pass@/app?unix sock=/cloudsql/PROJECT:REGION:INSTANCE/.s.PGSQL.5432
{\fn方正粗倩简体\fs12\an8\1cHFFFF00\b0}今天 集装箱里面空了
# 需要: 容器打印完整的连接 URL

□ 建议的解决办法/范围

  • 部署'、德夫'、跑'、执行'和核查 ' 上公布-set'/`-set-value-file'。
  • 将合并部署参数输入 . . . . . . .

内容来源: GoogleContainerTools/skaffold