用途:构建并推送自定义 hypershift-operator(HO)容器镜像,用于在真实 HyperShift 环境中测试代码变更。当修改 hypershift-operator/ 代码、需针对活动集群测试 HO 变更、用户要求构建/推送 HO 镜像,或需用 e2e 测试迭代 HO 修复时,该技能自动应用。
前提:使用前先加载环境文件 source dev/claude-env.sh。该文件提供环境变量 HO_IMAGE_REPO(HO 镜像的容器仓库)与 RUNTIME(容器运行时 podman/docker)。
用法:先基于分支名、短提交哈希或描述性名称生成唯一标签,例如 TAG=$(git rev-parse --short HEAD) 或 TAG="feature-name-1"。然后构建镜像:$RUNTIME build -f Dockerfile --platform linux/amd64 -t $HO_IMAGE_REPO:$TAG .。再推送:$RUNTIME push $HO_IMAGE_REPO:$TAG。也可用一行命令合并构建与推送。构建在容器内会运行 make hypershift、make hypershift-operator、make karpenter-operator 与 make product-cli。
构建产物:主 Dockerfile 生成 hypershift CLI、hypershift-no-cgo、hypershift-operator、karpenter-operator 与 hcp(产品 CLI)等二进制,均包含在最终镜像中。
迭代流程:修改 hypershift-operator/ 代码,构建并推送递增标签(如 fix-1、fix-2、fix-3),用新镜像重装 HyperShift,运行 e2e 或手动验证,分析结果,直至测试通过。
限制与排错:构建失败时检查 vendored 依赖(go mod vendor)、本地编译(make hypershift-operator)及 API 生成(make api);推送失败时验证仓库登录($RUNTIME login quay.io)与权限;安装后 Operator 未运行,查看 kubectl logs -n hypershift deployment/operator 并确认镜像拉取成功、集群可访问仓库;变更未生效时核对镜像标签、旧 Pod 情况,必要时执行 kubectl rollout restart deployment/operator -n hypershift。具体平台、收费等信息资料未提供。