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 installCopy 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 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
make run命令:make run
$ make runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,Operator 会监控 CR 的事件,创建 CR 将触发您的 Ansible 角色运行。
注意考虑
config/samples/<gvk>.yamlCR 清单示例: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>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
example-config配置映射是否已创建:oc get configmaps
$ oc get configmapsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS AGE example-config Active 3s
NAME STATUS AGE example-config Active 3sCopy 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>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认配置映射已被删除:
oc get configmap
$ oc get configmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow