5.4.2.4. 관리자 수정
Memcached
리소스가 생성, 업데이트 또는 삭제될 때마다 실행되는 Ansible 역할의 형태로 조정 논리를 제공하도록 Operator 프로젝트를 업데이트합니다.
프로세스
다음 구조를 사용하여
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(사용자 정의 리소스) 사양의 키-값 쌍은 Ansible에 추가 변수로 전달됩니다.
spec
필드에 있는 모든 변수의 이름은 Ansible을 실행하기 전에 Operator에서 스네이크 케이스(밑줄이 포함된 소문자)로 변환합니다. 예를 들어 사양의 serviceAccount
는 Ansible에서 service_account
로 변환됩니다.
watches.yaml
파일에서 snakeCaseParameters
옵션을 false
로 설정하여 이 대소문자 변환을 비활성화할 수 있습니다. 애플리케이션에 예상대로 입력되고 있는지 확인하려면 변수에 대해 Ansible에서 일부 유형 검증을 수행하는 것이 좋습니다.