From 8e8f2207ddac5ef56781110ba4e4fefae90550e9 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 20 Jan 2018 00:46:48 +0100 Subject: added new streamer hosts, kubernetes-net can now clean up peers too --- group_vars/k8s-stream/vars.yml | 9 +++++---- host_playbooks/emc-test.yaml | 1 - host_playbooks/emc-xx.yaml | 9 +++++++++ host_vars/emc-01.yaml | 2 ++ host_vars/emc-02.yaml | 2 ++ host_vars/emc-03.yaml | 2 ++ host_vars/emc-04.yaml | 2 ++ hosts.ini | 14 +++++++++++--- roles/kubernetes-net/tasks/main.yaml | 33 ++++++++++++++++++++++++++++++--- 9 files changed, 63 insertions(+), 11 deletions(-) create mode 100644 host_playbooks/emc-xx.yaml create mode 100644 host_vars/emc-01.yaml create mode 100644 host_vars/emc-02.yaml create mode 100644 host_vars/emc-03.yaml create mode 100644 host_vars/emc-04.yaml 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" -- cgit v1.2.3