用途:该技能用于构建并推送自定义 control-plane-operator(CPO)镜像,以便在真实 HyperShift 环境中测试改动。当 control-plane-operator/ 下的代码发生变化、需要针对真实集群测试 CPO 改动、用户要求构建或推送 CPO 镜像,或用 e2e 测试迭代修复时自动应用。
主要能力:使用 Dockerfile.control-plane 构建镜像,容器内会运行 make control-plane-operator 和 make control-plane-pki-operator,最终镜像包含 control-plane-operator 与 control-plane-pki-operator 两个二进制;镜像带有 HyperShift 使用的能力标签,如 io.openshift.hypershift.control-plane-operator-subcommands=true 和 io.openshift.hypershift.control-plane-operator.v2-isdefault=true。
使用方式:先执行 source dev/claude-env.sh 加载环境,其中包含 CPO_IMAGE_REPO(CPO 镜像仓库)和 RUNTIME(容器运行时,podman/docker)等变量。生成唯一标签,如 TAG=$(git rev-parse --abbrev-ref HEAD | tr '/' '-')。构建命令:$RUNTIME build -f Dockerfile.control-plane --platform linux/amd64 -t $CPO_IMAGE_REPO:$TAG . ;推送命令:$RUNTIME push $CPO_IMAGE_REPO:$TAG。可合并为一条命令完成构建与推送。迭代时递增标签(如 fix-1、fix-2),再用新镜像跑 e2e 测试并分析结果。
限制与排查:构建失败可检查 vendored 依赖(go mod vendor)并确认本地可编译(make control-plane-operator);推送失败需确认已登录仓库($RUNTIME login quay.io)及权限;集群未使用镜像时,检查 e2e 参数中的标签是否正确、镜像是否推送成功、集群能否拉取该仓库镜像。其他细节资料暂未提供。