5.4.6. 在 Operator 中使用 Ansible
熟悉在本地使用 Kubernetes Collection for Ansible 后,当自定义资源(CR)发生变化时,您可以在 Operator 内部触发相同的 Ansible 逻辑。本示例将 Ansible 角色映射到 Operator 所监视的特定 Kubernetes 资源。该映射在 watches.yaml
文件中完成。
5.4.6.1. 自定义资源文件
Operator 会使用 Kubernetes 的扩展机制,即自定义资源定义 (CRD),这样您的自定义资源 (CR) 的外观和行为均类似于内置的原生 Kubernetes 对象。
CR 文件格式是一个 Kubernetes 资源文件。该对象具有必填和选填字段:
字段 | 描述 |
---|---|
| 要创建 CR 的版本。 |
| 要创建 CR 的类型。 |
| 要创建的 Kubernetes 特定元数据。 |
| 传输至 Ansible 的变量键值列表。本字段默认为空。 |
|
总结对象的当前状态。对于基于 Ansible 的 Operator, |
| 要附于 CR 的 Kubernetes 特定注解。 |
以下 CR 注解列表会修改 Operator 的行为:
注解 | 描述 |
---|---|
|
为 CR 指定协调间隔。该值将通过标准 Golang 软件包 |
基于 Ansible 的 Operator 注解示例
apiVersion: "test1.example.com/v1alpha1" kind: "Test1" metadata: name: "example" annotations: ansible.operator-sdk/reconcile-period: "30s"