5.4.2.4. 修改管理者
更新您的 Operator 项目,以提供协调逻辑,其格式为 Ansible 角色,它在每次创建、更新或删除 Memcached
资源时运行。
流程
用下列结构更新
roles/memcached/tasks/main.yml
文件:--- - name: start memcached community.kubernetes.k8s: definition: kind: Deployment apiVersion: apps/v1 metadata: name: '{{ ansible_operator_meta.name }}-memcached' namespace: '{{ ansible_operator_meta.namespace }}' spec: replicas: "{{size}}" selector: matchLabels: app: memcached template: metadata: labels: app: memcached spec: containers: - name: memcached command: - memcached - -m=64 - -o - modern - -v image: "docker.io/memcached:1.4.36-alpine" ports: - containerPort: 11211
这个
memcached
角色可确保存在memcached
部署并设置部署大小。通过编辑
roles/memcached/defaults/main.yml
文件,为您的 Ansible 角色中使用的变量设置默认值:--- # defaults file for Memcached size: 1
使用以下结构更新
config/samples/cache_v1_memcached.yaml
文件中的Memcached
示例资源:apiVersion: cache.example.com/v1 kind: Memcached metadata: name: memcached-sample spec: size: 3
自定义资源(CR)spec 中的键值对作为额外变量传递给 Ansible。
注意
在运行 Ansible 前,Operator 会将 spec
字段中所有变量的名称转换为 snake case,即小写并附带下划线。例如,spec 中的 serviceAccount
在 Ansible 中会变成 service_account
。
您可以通过在 watches.yaml
文件中将 snakeCaseParameters
选项设置为 false
来禁用大小写转换。建议您在 Ansible 中对变量执行一些类型验证,以确保应用程序收到所需输入。