Files
payphone/playbooks/08-redis.yml
T

57 lines
1.8 KiB
YAML

- name: Set Up Redis Cluster
hosts: init
become: true
tasks:
- name: Create Redis Config Map
kubernetes.core.k8s:
state: present
src: /tmp/k8s/redis/01-config-map.yml
kubeconfig: /etc/rancher/k3s/k3s.yaml
- name: Create Redis Nodes
kubernetes.core.k8s:
state: present
src: /tmp/k8s/redis/02-redis.yml
kubeconfig: /etc/rancher/k3s/k3s.yaml
- name: Wait for Redis Nodes
ansible.builtin.command:
kubectl -n=redis rollout status --timeout=10m sts/redis-cluster
changed_when: false
- name: Create ClusterIP Service
kubernetes.core.k8s:
state: present
src: /tmp/k8s/redis/03-cluster-ip.yml
kubeconfig: /etc/rancher/k3s/k3s.yaml
- name: Grab Node IPs
ansible.builtin.shell:
echo $(kubectl get pods -l app=redis-cluster -n redis -o json | jq -r '.items | map(.status.podIP) | join(":6379 ")'):6379
args:
executable: /bin/bash
register: redis_node_ips
changed_when: false
tags:
- skip_ansible_lint
- name: Display Node IPs
ansible.builtin.debug:
msg: "{{ redis_node_ips.stdout }}"
- name: Check if Redis cluster is already active
ansible.builtin.shell: >
set -o pipefail
kubectl exec redis-cluster-0 -n redis -- redis-cli -p 6379 cluster info | grep cluster_state
args:
executable: /bin/bash
register: redis_cluster_state
changed_when: false
failed_when: false
- name: Activate Redis Cluster
ansible.builtin.shell: >
kubectl exec redis-cluster-0 -n redis -- redis-cli --cluster create --cluster-replicas 1 {{ redis_node_ips.stdout }} --cluster-yes
when: "'cluster_state:ok' not in redis_cluster_state.stdout"
changed_when: false