summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2018-01-20 00:46:48 +0100
committerChristian Pointner <equinox@spreadspace.org>2018-01-20 00:46:48 +0100
commit8e8f2207ddac5ef56781110ba4e4fefae90550e9 (patch)
treecf7e1b8106f3a2b78c6d5e9266420399e9fb21b1
parent3gb for root fs of helene and dione (diff)
added new streamer hosts, kubernetes-net can now clean up peers too
-rw-r--r--group_vars/k8s-stream/vars.yml9
-rw-r--r--host_playbooks/emc-test.yaml1
-rw-r--r--host_playbooks/emc-xx.yaml9
-rw-r--r--host_vars/emc-01.yaml2
-rw-r--r--host_vars/emc-02.yaml2
-rw-r--r--host_vars/emc-03.yaml2
-rw-r--r--host_vars/emc-04.yaml2
-rw-r--r--hosts.ini14
-rw-r--r--roles/kubernetes-net/tasks/main.yaml33
9 files changed, 63 insertions, 11 deletions
diff --git a/group_vars/k8s-stream/vars.yml b/group_vars/k8s-stream/vars.yml
index e91ce15a..c295948b 100644
--- a/group_vars/k8s-stream/vars.yml
+++ b/group_vars/k8s-stream/vars.yml
@@ -8,10 +8,11 @@ kubernetes:
## the info is spread over multiple files and this makes it more diffcult
## to find mistakes, so it is nicer to keep it in one place...
net_index:
-# emc-01: 1
-# emc-02: 2
-# emc-03: 3
- emc-test: 99
+ emc-01: 1
+ emc-02: 2
+ emc-03: 3
+ emc-04: 4
+# emc-test: 99
# emc-master: 100
dione: 101
helene: 102
diff --git a/host_playbooks/emc-test.yaml b/host_playbooks/emc-test.yaml
index e1442b2d..812e4758 100644
--- a/host_playbooks/emc-test.yaml
+++ b/host_playbooks/emc-test.yaml
@@ -7,4 +7,3 @@
- role: sshserver
- role: zsh
- role: admin-user
- - role: scaleway-dkms
diff --git a/host_playbooks/emc-xx.yaml b/host_playbooks/emc-xx.yaml
new file mode 100644
index 00000000..9d0804fc
--- /dev/null
+++ b/host_playbooks/emc-xx.yaml
@@ -0,0 +1,9 @@
+---
+- name: Basic Setup
+ hosts: emc-xx
+ roles:
+ - role: scaleway-slim
+ - role: base
+ - role: sshserver
+ - role: zsh
+ - role: admin-user
diff --git a/host_vars/emc-01.yaml b/host_vars/emc-01.yaml
new file mode 100644
index 00000000..d3d2f2b3
--- /dev/null
+++ b/host_vars/emc-01.yaml
@@ -0,0 +1,2 @@
+---
+external_ip: 51.15.217.144
diff --git a/host_vars/emc-02.yaml b/host_vars/emc-02.yaml
new file mode 100644
index 00000000..8e3121d6
--- /dev/null
+++ b/host_vars/emc-02.yaml
@@ -0,0 +1,2 @@
+---
+external_ip: 51.15.84.94
diff --git a/host_vars/emc-03.yaml b/host_vars/emc-03.yaml
new file mode 100644
index 00000000..f4f5c59a
--- /dev/null
+++ b/host_vars/emc-03.yaml
@@ -0,0 +1,2 @@
+---
+external_ip: 51.15.220.73
diff --git a/host_vars/emc-04.yaml b/host_vars/emc-04.yaml
new file mode 100644
index 00000000..870c1d02
--- /dev/null
+++ b/host_vars/emc-04.yaml
@@ -0,0 +1,2 @@
+---
+external_ip: 51.15.75.125
diff --git a/hosts.ini b/hosts.ini
index 6c592487..0df7bfb8 100644
--- a/hosts.ini
+++ b/hosts.ini
@@ -22,6 +22,10 @@ sk2013
sk2016
sktorrent
+
+[emc-xx]
+emc-0[1:4]
+
[elevate]
elewolke
elestream
@@ -29,6 +33,9 @@ elemedia
elesearch
kube2016
+[elevate:children]
+emc-xx
+
[kvmhosts]
prometheus
@@ -49,14 +56,15 @@ elesearch
[scaleway]
emc-test
+[scaleway:children]
+emc-xx
[k8s-stream-encoder]
dione
helene
-[k8s-stream-streamer]
-emc-test
-#emc-0[1:3]
+[k8s-stream-streamer:children]
+emc-xx
[k8s-stream-master]
dione
diff --git a/roles/kubernetes-net/tasks/main.yaml b/roles/kubernetes-net/tasks/main.yaml
index 6a50cf00..48d56b25 100644
--- a/roles/kubernetes-net/tasks/main.yaml
+++ b/roles/kubernetes-net/tasks/main.yaml
@@ -36,7 +36,7 @@
copy:
src: kubenet-interfaces.service
dest: /etc/systemd/system/kubenet-interfaces.service
- # TODO: notify: reload...
+ # TODO: notify: reload???
- name: make sure kubenet interfaces service is started and enabled
systemd:
@@ -45,14 +45,41 @@
state: started
enabled: yes
+- name: get list of currently installed wireguard peers installed
+ find:
+ path: /etc/systemd/system/
+ pattern: "kubenet-peer-*.service"
+ register: kubenet_peers_installed
+
+- name: compute list of peers to be added
+ set_fact:
+ kubenet_peers_to_add: "{{ kubernetes.net_index.keys() | difference(inventory_hostname) }}"
+
+- name: compute list of peers to be removed
+ set_fact:
+ kubenet_peers_to_remove: "{{ kubenet_peers_installed.files | map(attribute='path') | map('replace', '/etc/systemd/system/kubenet-peer-', '') | map('replace', '.service', '') | difference(kubenet_peers_to_add) }}"
+
+- name: stop/disable systemd units for stale wireguard peers
+ with_items: "{{ kubenet_peers_to_remove }}"
+ systemd:
+ name: "kubenet-peer-{{ item }}.service"
+ state: stopped
+ enabled: no
+
+- name: remove systemd units for stale wireguard peers
+ with_items: "{{ kubenet_peers_to_remove }}"
+ file:
+ name: "/etc/systemd/system/kubenet-peer-{{ item }}.service"
+ state: absent
+
- name: install systemd units for every wireguard peer
- with_items: "{{ kubernetes.net_index.keys() | difference(inventory_hostname) }}"
+ with_items: "{{ kubenet_peers_to_add }}"
template:
src: kubenet-peer.service.j2
dest: "/etc/systemd/system/kubenet-peer-{{ item }}.service"
- name: make sure kubenet peer services are started and enabled
- with_items: "{{ kubernetes.net_index.keys() | difference(inventory_hostname) }}"
+ with_items: "{{ kubenet_peers_to_add }}"
systemd:
daemon_reload: yes
name: "kubenet-peer-{{ item }}.service"