Finish adding ansible files for Scylla management (management stuff, not the actual cluster nodes)

This commit is contained in:
2025-08-16 04:55:37 -03:00
parent 8eaa3f6195
commit d39b06eb12
18 changed files with 597 additions and 60 deletions
+18
View File
@@ -0,0 +1,18 @@
- name: Copy K8s files to node
hosts: dev
become: true
vars:
k8s_files_src: "{{ playbook_dir }}/../../k8s/scylla"
k8s_files_dest: /tmp/k8s/scylla
tasks:
- name: Create destination directory for K8s files
ansible.builtin.file:
path: "{{ k8s_files_dest }}"
state: directory
mode: '0644'
- name: Copy K8s files to destination
ansible.builtin.copy:
src: "{{ k8s_files_src }}/"
dest: "{{ k8s_files_dest }}/"
mode: '0644'
@@ -3,8 +3,6 @@
become: true
vars:
cert_manager_ns: cert-manager
cert_manager_yaml_src: "{{ playbook_dir }}/../../k8s/scylla/01-cert-manager.yml"
cert_manager_yaml_dest: /tmp/01-cert-manager.yml
cert_manager_crds:
- certificates.cert-manager.io
- issuers.cert-manager.io
@@ -13,16 +11,10 @@
- cert-manager-cainjector
- cert-manager-webhook
tasks:
- name: Copy Cert-Manager YAML to node
ansible.builtin.copy:
src: "{{ cert_manager_yaml_src }}"
dest: "{{ cert_manager_yaml_dest }}"
mode: '0644'
- name: Apply Cert-Manager YAML
kubernetes.core.k8s:
state: present
src: "{{ cert_manager_yaml_dest }}"
src: "/tmp/k8s/scylla/01-cert-manager.yml"
kubeconfig: /etc/rancher/k3s/k3s.yaml
- name: Wait for Cert-Manager CRDs
@@ -2,21 +2,14 @@
hosts: dev
become: true
vars:
prometheus_yaml_src: "{{ playbook_dir }}/../../k8s/scylla/02-prometheus-operator.yml"
prometheus_yaml_dest: /tmp/02-prometheus-operator.yml
prometheus_crds:
- prometheuses.monitoring.coreos.com
- prometheusrules.monitoring.coreos.com
- servicemonitors.monitoring.coreos.com
tasks:
- name: Copy Prometheus YAML to node
ansible.builtin.copy:
src: "{{ prometheus_yaml_src }}"
dest: "{{ prometheus_yaml_dest }}"
mode: '0644'
- name: Apply Prometheus operator server-side
ansible.builtin.command: kubectl apply --server-side -f {{ prometheus_yaml_dest }} -n prometheus-operator
ansible.builtin.command: |
kubectl apply --server-side -f /tmp/k8s/scylla/02-prometheus-operator.yml -n prometheus-operator
environment:
KUBECONFIG: /etc/rancher/k3s/k3s.yaml
changed_when: false
-41
View File
@@ -1,41 +0,0 @@
- name: Set up Scylla DB Operator
hosts: dev
become: true
vars:
scylla_yaml_src: "{{ playbook_dir }}/../../k8s/scylla/03-scylla-operator.yml"
scylla_yaml_dest: "/tmp/03-scylla-operator.yml"
scylla_crds:
- scyllaclusters.scylla.scylladb.com
- nodeconfigs.scylla.scylladb.com
- scyllaoperatorconfigs.scylla.scylladb.com
- scylladbmonitorings.scylla.scylladb.com
scylla_deployments:
- scylla-operator
- webhook-server
tasks:
- name: Copy Scylla Operator YAML to node
ansible.builtin.copy:
src: "{{ scylla_yaml_src }}"
dest: "{{ scylla_yaml_dest }}"
mode: '0644'
- name: Apply Scylla Operator YAML
ansible.builtin.command: kubectl apply --server-side -f {{ scylla_yaml_dest }} -n scylla-operator
environment:
KUBECONFIG: /etc/rancher/k3s/k3s.yaml
changed_when: false
- name: Wait for Scylla Operator CRDs
ansible.builtin.shell: |
kubectl wait --for='condition=established' crd/{{ scylla_crds | join(' crd/') }}
changed_when: false
- name: Wait for Scylla Operator deployments
ansible.builtin.shell: |
kubectl -n scylla-operator rollout status --timeout=10m deployment.apps/{{ item }}
loop: "{{ scylla_deployments }}"
loop_control:
loop_var: item
environment:
KUBECONFIG: /etc/rancher/k3s/k3s.yaml
changed_when: false
+90
View File
@@ -0,0 +1,90 @@
- name: Set up Scylla Operator, NodeConfig, Local CSI Driver, and Scylla Manager
hosts: dev
become: true
vars:
scylla_crds:
- scyllaclusters.scylla.scylladb.com
- nodeconfigs.scylla.scylladb.com
- scyllaoperatorconfigs.scylla.scylladb.com
- scylladbmonitorings.scylla.scylladb.com
scylla_deployments:
- scylla-operator
- webhook-server
tasks:
- name: Apply Scylla Operator YAML
ansible.builtin.command: |
kubectl apply --server-side -f /tmp/k8s/scylla/03-scylla-operator.yml -n scylla-operator
environment:
KUBECONFIG: /etc/rancher/k3s/k3s.yaml
changed_when: false
- name: Wait for Scylla Operator CRDs
ansible.builtin.shell: |
kubectl wait --for='condition=established' crd/{{ scylla_crds | join(' crd/') }}
changed_when: false
- name: Wait for Scylla Operator Deployments
ansible.builtin.shell: |
kubectl -n scylla-operator rollout status --timeout=10m deployment.apps/{{ item }}
loop: "{{ scylla_deployments }}"
loop_control:
loop_var: item
environment:
KUBECONFIG: /etc/rancher/k3s/k3s.yaml
changed_when: false
- name: Apply Scylla NodeConfig YAML
kubernetes.core.k8s:
state: present
src: "/tmp/k8s/scylla/04-scylla-node-config.yml"
namespace: scylla-operator
kubeconfig: /etc/rancher/k3s/k3s.yaml
- name: Wait for Scylla NodeConfig to be applied across all nodes
ansible.builtin.command: |
kubectl wait --for='condition=Reconciled' --timeout=10m nodeconfigs.scylla.scylladb.com/scylladb-nodepool-1
changed_when: false
- name: Find Scylla CSI Driver K8s YAMLs on Remote Host
ansible.builtin.find:
paths: /tmp/k8s/scylla
patterns: "05-*.yml"
file_type: file
register: scylla_csi_driver_files
- name: Apply all Scylla CSI Driver K8s YAMLs
kubernetes.core.k8s:
state: present
src: "{{ item.path }}"
kubeconfig: /etc/rancher/k3s/k3s.yaml
loop: "{{ scylla_csi_driver_files.files | sort(attribute='path') }}"
loop_control:
label: "{{ item.path }}"
- name: Wait for Local CSI Driver DaemonSet
ansible.builtin.command: |
kubectl -n=local-csi-driver rollout status --timeout=10m daemonset.apps/local-csi-driver
changed_when: false
- name: Apply Scylla Manager YAML
kubernetes.core.k8s:
state: present
src: "/tmp/k8s/scylla/06-scylla-manager.yml"
kubeconfig: /etc/rancher/k3s/k3s.yaml
- name: Label current node as Scylla
kubernetes.core.k8s:
api_version: v1
kind: Node
name: "{{ inventory_hostname }}"
definition:
metadata:
labels:
scylla.scylladb.com/node-type: scylla
kubeconfig: /etc/rancher/k3s/k3s.yaml
state: present
- name: Wait for Scylla Manager Deployment
ansible.builtin.command: |
kubectl -n=scylla-manager rollout status --timeout=10m deployment.apps/scylla-manager
changed_when: false