You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除VmCreate CR对象时finalizer未执行无法创建VmGetInfo CR求助

问题排查与修复方案

核心根因

你在vmcreate角色的任务中主动执行了删除VmCreateCR的操作,跳过了Ansible Operator的finalizer处理流程:
Ansible Operator的finalizer触发逻辑为:用户/程序发起CR删除请求后,operator会先检测CR上是否存在对应finalizer标识,若存在则先执行配置的finalizer playbook,执行完成后才会自动移除finalizer标识,真正完成CR删除。你直接在业务任务中删除CR,operator没有机会触发配置的crobjcreate.yml执行。

其他需要排查的配置问题

  • 路径匹配问题:crobjcreate.yml中导入任务的路径roles/tasks/providers/azure/cr-create.yml需要和operator容器内的实际文件路径一致,你配置的finalizer playbook绝对路径为/opt/ansible/playbooks/crobjcreate.yml,需要确认任务文件的相对/绝对路径配置正确。
  • CRD与权限问题:需要提前将VmGetInfo对应的CRD部署到集群中,同时operator关联的ServiceAccount需要有VmGetInfo资源的create权限,否则创建请求会直接失败。
  • 任务执行报错:可以在crobjcreate.yml和cr-create.yml中增加更多debug日志,同时查看operator Pod的运行日志,确认finalizer playbook是否被触发、执行时是否有参数缺失、权限不足等报错。

修复步骤

  1. 移除vmcreate角色中Remove the VM create CR的主动删除CR任务,CR的删除逻辑完全交给operator的finalizer流程接管。
  2. 核对crobjcreate.yml中任务导入路径的正确性,建议使用绝对路径避免相对路径匹配错误。
  3. 检查operator的RBAC配置,确认ServiceAccount拥有vmgetinfo资源的create权限。
  4. 部署测试时观察operator Pod日志,确认finalizer playbook正常执行,VmGetInfoCR正常创建。

内容的提问来源于stack exchange,提问作者Prasanna Hinge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:54:01