This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.4.6.2. 本地测试基于 Ansible 的 Operator
您可以使用 Operator 项目的顶层目录中的 make run
命令,测试本地运行的基于 Ansible 的 Operator 内部的逻辑。make run
Makefile 目标在本地运行 ansible-operator
二进制文件,从 watches.yaml
文件中读取并使用 ~/.kube/config
文件与 Kubernetes 集群通信,就像 k8s
模块一样。
您可以通过设置环境变量 ANSIBLE_ROLES_PATH
或者使用 ansible-roles-path
标记来自定义角色路径。如果在 ANSIBLE_ROLES_PATH
值中没有找到该角色,Operator 会在 {{current directory}}/roles
中查找它。
先决条件
- Ansible Runner 版本 v1.1.0+
- Ansible Runner HTTP Event Emitter plug-in 版本 v1.0.0+
- 执行前面的步骤在本地测试 Kubernetes Collection
流程
为自定义资源(CR)安装自定义资源定义(CRD)和正确的基于角色的访问控制(RBAC)定义:
make install
$ make install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
/usr/bin/kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/memcacheds.cache.example.com created
/usr/bin/kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/memcacheds.cache.example.com created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
make run
命令:make run
$ make run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,Operator 会监控 CR 的事件,创建 CR 将触发您的 Ansible 角色运行。
注意考虑
config/samples/<gvk>.yaml
CR 清单示例:apiVersion: <group>.example.com/v1alpha1 kind: <kind> metadata: name: "<kind>-sample"
apiVersion: <group>.example.com/v1alpha1 kind: <kind> metadata: name: "<kind>-sample"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因为未设置
spec
字段,所以调用 Ansible 时无额外变量。其他部分将涵盖从 CR 传递给 Ansible 的额外变量。为 Operator 设置适当的默认值是很重要的。创建 CR 实例,并将默认变量
state
设置为present
:oc apply -f config/samples/<gvk>.yaml
$ oc apply -f config/samples/<gvk>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
example-config
配置映射是否已创建:oc get configmaps
$ oc get configmaps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS AGE example-config Active 3s
NAME STATUS AGE example-config Active 3s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
config/samples/<gvk>.yaml
文件,将state
字段设置为absent
。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用更改:
oc apply -f config/samples/<gvk>.yaml
$ oc apply -f config/samples/<gvk>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认配置映射已被删除:
oc get configmap
$ oc get configmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow