diff --git a/.gitignore b/.gitignore index 70a0c97..a2a105c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /.venv .env + +00-vault-pwd.txt \ No newline at end of file diff --git a/inventory-dev.ini b/inventory.ini similarity index 50% rename from inventory-dev.ini rename to inventory.ini index 8317e2f..70fc7ca 100644 --- a/inventory-dev.ini +++ b/inventory.ini @@ -1,8 +1,16 @@ [init] -p4 ansible_host=p4.vps.nyeki.dev ansible_user=root rack=ge-dc1-rack1 +p1 ansible_host=p1.vps.nyeki.dev ansible_user=root rack=ge-dc1-rack1 [master] -p5 ansible_host=p5.vps.nyeki.dev ansible_user=root rack=ge-dc1-rack2 +p2 ansible_host=p2.vps.nyeki.dev ansible_user=root rack=ge-dc1-rack2 +p3 ansible_host=p3.vps.nyeki.dev ansible_user=root rack=ge-dc1-rack3 [worker] +p4 ansible_host=p4.vps.nyeki.dev ansible_user=root rack=ge-dc1-rack1 +p5 ansible_host=p5.vps.nyeki.dev ansible_user=root rack=ge-dc1-rack2 p6 ansible_host=p6.vps.nyeki.dev ansible_user=root rack=ge-dc1-rack3 + +[scylla] +p4 +p5 +p6 \ No newline at end of file diff --git a/k8s/ansible/scylla/04-scylla-node-config.yml b/k8s/ansible/scylla/04-scylla-node-config.yml index 5473c6c..bbfe38f 100644 --- a/k8s/ansible/scylla/04-scylla-node-config.yml +++ b/k8s/ansible/scylla/04-scylla-node-config.yml @@ -7,7 +7,7 @@ spec: loopDevices: - name: persistent-volumes imagePath: /var/lib/persistent-volumes.img - size: 50Gi + size: 25Gi filesystems: - device: /dev/loops/persistent-volumes type: xfs diff --git a/playbooks/00-run-all.sh b/playbooks/00-run-all.sh new file mode 100755 index 0000000..eca1019 --- /dev/null +++ b/playbooks/00-run-all.sh @@ -0,0 +1,12 @@ +set -euo pipefail +set -x + +uv run ansible-playbook -i inventory.ini playbooks/01-setup.yml +uv run ansible-playbook -i inventory.ini playbooks/02-copy-k8s-files.yml +uv run ansible-playbook -i inventory.ini playbooks/03-argo-cd.yml +uv run ansible-playbook -i inventory.ini playbooks/04-secrets.yml --vault-password-file playbooks/00-vault-pwd.txt +uv run ansible-playbook -i inventory.ini playbooks/05-cert-manager.yml +uv run ansible-playbook -i inventory.ini playbooks/06-prometheus-operator.yml +uv run ansible-playbook -i inventory.ini playbooks/07-scylla-operator.yml +uv run ansible-playbook -i inventory.ini playbooks/08-scylla-cluster.yml +uv run ansible-playbook -i inventory.ini playbooks/09-scylla-manager.yml \ No newline at end of file diff --git a/playbooks/00-run-dev.sh b/playbooks/00-run-dev.sh deleted file mode 100755 index b720985..0000000 --- a/playbooks/00-run-dev.sh +++ /dev/null @@ -1,12 +0,0 @@ -set -euo pipefail -set -x - -uv run ansible-playbook -i inventory-dev.ini playbooks/01-setup.yml -uv run ansible-playbook -i inventory-dev.ini playbooks/02-copy-k8s-files.yml -uv run ansible-playbook -i inventory-dev.ini playbooks/03-argo-cd.yml -uv run ansible-playbook -i inventory-dev.ini playbooks/04-secrets.yml --ask-vault-pass -uv run ansible-playbook -i inventory-dev.ini playbooks/05-cert-manager.yml -uv run ansible-playbook -i inventory-dev.ini playbooks/06-prometheus-operator.yml -uv run ansible-playbook -i inventory-dev.ini playbooks/07-scylla-operator.yml -uv run ansible-playbook -i inventory-dev.ini playbooks/08-scylla-cluster.yml -uv run ansible-playbook -i inventory-dev.ini playbooks/09-scylla-manager.yml \ No newline at end of file diff --git a/playbooks/01-setup.yml b/playbooks/01-setup.yml index dc38ca5..766a411 100644 --- a/playbooks/01-setup.yml +++ b/playbooks/01-setup.yml @@ -114,3 +114,48 @@ delay: 30 until: wait_nodes.rc == 0 changed_when: false + +- name: Set Up Node Labels and Taints + hosts: init + become: true + tasks: + - name: Set Rack Tags to All Nodes + loop: "{{ groups['all'] }}" + kubernetes.core.k8s: + api_version: v1 + kind: Node + name: "{{ item }}" + definition: + metadata: + labels: + topology.kubernetes.io/zone: "{{ hostvars[item].rack }}" + kubeconfig: /etc/rancher/k3s/k3s.yaml + state: present + + - name: Set Scylla Tags to Scylla Nodes + loop: "{{ groups['scylla'] }}" + kubernetes.core.k8s: + api_version: v1 + kind: Node + name: "{{ item }}" + definition: + metadata: + labels: + scylla.scylladb.com/node-type: scylla + spec: + taints: + - key: scylla-operator.scylladb.com/dedicated + value: scyllaclusters + effect: NoSchedule + kubeconfig: /etc/rancher/k3s/k3s.yaml + state: present + +- name: Create Containerd Socket Symlink + hosts: all + become: true + tasks: + - name: Create Containerd Symlink + ansible.builtin.command: | + ln -s /run/k3s/containerd/containerd.sock /run/containerd/containerd.sock + args: + creates: /run/containerd/containerd.sock diff --git a/playbooks/04-secrets.yml b/playbooks/04-secrets.yml index a77eb5f..0c26713 100644 --- a/playbooks/04-secrets.yml +++ b/playbooks/04-secrets.yml @@ -12,7 +12,7 @@ apiVersion: v1 kind: Secret metadata: - name: payphone-repo + name: payphone-repo-creds namespace: argocd labels: argocd.argoproj.io/secret-type: repository diff --git a/playbooks/07-scylla-operator.yml b/playbooks/07-scylla-operator.yml index 4d6da0a..2304f66 100644 --- a/playbooks/07-scylla-operator.yml +++ b/playbooks/07-scylla-operator.yml @@ -65,17 +65,3 @@ ansible.builtin.command: | kubectl -n=local-csi-driver rollout status --timeout=10m daemonset.apps/local-csi-driver changed_when: false - - - name: Label All Nodes as Scylla - loop: "{{ groups['all'] }}" - kubernetes.core.k8s: - api_version: v1 - kind: Node - name: "{{ item }}" - definition: - metadata: - labels: - scylla.scylladb.com/node-type: scylla - opology.kubernetes.io/zone: "{{ hostvars[item].rack }}" - kubeconfig: /etc/rancher/k3s/k3s.yaml - state: present diff --git a/playbooks/08-scylla-cluster.yml b/playbooks/08-scylla-cluster.yml index 502af55..9c85b0d 100644 --- a/playbooks/08-scylla-cluster.yml +++ b/playbooks/08-scylla-cluster.yml @@ -14,7 +14,7 @@ ansible.builtin.command: | kubectl -n scylla rollout status statefulset/{{ item }} --timeout=10m loop: - - ge-dc1-rack1 - - ge-dc1-rack2 - - ge-dc1-rack3 + - scylladb-ge-dc1-ge-dc1-rack1 + - scylladb-ge-dc1-ge-dc1-rack2 + - scylladb-ge-dc1-ge-dc1-rack3 changed_when: false