5.4.7.2. 手动跟踪自定义资源状态
您可以使用 operator_sdk.util
集合来修改基于 Ansible 的 Operator,以手动从应用程序跟踪自定义资源(CR)状态。
先决条件
- 使用 Operator SDK 创建基于 Ansible 的 Operator 项目
流程
更新
watches.yaml
文件,把一个manageStatus
项设置为false
:- version: v1 group: api.example.com kind: <kind> role: <role> manageStatus: false
使用
operator_sdk.util.k8s_status
Ansible 模块来更新子资源。例如,使用键test
和值data
更新,operator_sdk.util
可以按以下方式使用:- operator_sdk.util.k8s_status: api_version: app.example.com/v1 kind: <kind> name: "{{ ansible_operator_meta.name }}" namespace: "{{ ansible_operator_meta.namespace }}" status: test: data
您可以为角色在
meta/main.yml
文件中声明集合,用于构建基于 Ansible 的 Operator:collections: - operator_sdk.util
在角色 meta 中声明集合后,您可以直接调用
k8s_status
模块:k8s_status: ... status: key1: value1