From 8930700e9c5c22769331bb3bee3f16d5850896e1 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 8 Feb 2020 04:05:42 +0100 Subject: new k8s-emc playbook --- dan/emc-master.yml | 1 + dan/emc-stats.yml | 8 ---- dan/k8s-emc.yml | 30 ++++++-------- inventory/group_vars/elevate-festival/main.yml | 1 - inventory/group_vars/k8s-emc/main.yml | 24 ++++++------ inventory/host_vars/emc-master.yml | 51 +++++++++++++++--------- inventory/host_vars/emc-stats.yml | 54 -------------------------- inventory/host_vars/sk-2019vm.yml | 5 ++- inventory/hosts.ini | 14 ++----- roles/docker/tasks/main.yml | 2 +- roles/emc-stats/tasks/main.yml | 2 +- 11 files changed, 67 insertions(+), 125 deletions(-) delete mode 100644 dan/emc-stats.yml delete mode 100644 inventory/host_vars/emc-stats.yml diff --git a/dan/emc-master.yml b/dan/emc-master.yml index 412faf29..ffee64a8 100644 --- a/dan/emc-master.yml +++ b/dan/emc-master.yml @@ -5,3 +5,4 @@ - role: base - role: sshd - role: zsh + - role: emc-stats diff --git a/dan/emc-stats.yml b/dan/emc-stats.yml deleted file mode 100644 index aa4af19e..00000000 --- a/dan/emc-stats.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -- name: Basic Setup - hosts: emc-stats - roles: - - role: base - - role: sshd - - role: zsh - - role: emc-stats diff --git a/dan/k8s-emc.yml b/dan/k8s-emc.yml index 600ab2a1..518604b0 100644 --- a/dan/k8s-emc.yml +++ b/dan/k8s-emc.yml @@ -1,23 +1,17 @@ --- -- name: setup cluster config +- name: Basic Node Setup hosts: k8s-emc - gather_facts: no - run_once: yes - tasks: - - name: create group for all kubernetes nodes - loop: "{{ groups['k8s-emc'] }}" - add_host: - name: "{{ item }}" - inventory_dir: "{{ inventory_dir }}" - group: _kubernetes_nodes_ - changed_when: False + roles: + - role: base + - role: sshd + - role: zsh - - name: create group for kubernetes master nodes - loop: "{{ groups['k8s-emc-master'] }}" - add_host: - name: "{{ item }}" - inventory_dir: "{{ inventory_dir }}" - group: _kubernetes_masters_ - changed_when: False +- import_playbook: ../common/kubernetes-cluster-layout.yml + vars: + kubernetes_cluster_layout: + nodes_group: k8s-emc + masters: + - emc-master - import_playbook: ../common/kubernetes.yml +- import_playbook: ../common/kubernetes-cleanup.yml diff --git a/inventory/group_vars/elevate-festival/main.yml b/inventory/group_vars/elevate-festival/main.yml index d721946e..87da2237 100644 --- a/inventory/group_vars/elevate-festival/main.yml +++ b/inventory/group_vars/elevate-festival/main.yml @@ -13,7 +13,6 @@ network_zones: ele-media: 200 ele-telesto: 201 ele-thetys: 202 - # TODO: move this emc zone ele-dione: 210 ele-helene: 211 # TODO: move this to mgmt zone diff --git a/inventory/group_vars/k8s-emc/main.yml b/inventory/group_vars/k8s-emc/main.yml index b7c52b09..d9bf350e 100644 --- a/inventory/group_vars/k8s-emc/main.yml +++ b/inventory/group_vars/k8s-emc/main.yml @@ -1,30 +1,31 @@ --- docker_pkg_provider: docker-com docker_pkg_name: docker-ce -docker_pkg_version: 18.06.1~ce~3-0~debian -kubernetes_version: 1.13.2 +kubernetes_version: 1.17.2 +kubernetes_container_runtime: docker +kubernetes_network_plugin: kubeguard kubernetes: cluster_name: emc - version: "{{ kubernetes_version }}" - pkg_version: "{{ kubernetes_version }}-00" - - dedicated_master: True - api_advertise_ip: 144.76.160.141 + dedicated_master: False api_extra_sans: - - emc-master.spreadspace.org + - 178.63.180.137 + - emc-master.elev8.at pod_ip_range: 172.18.0.0/16 pod_ip_range_size: 24 service_ip_range: 172.18.192.0/18 - ## net_index must be in the range between 1 and 190 -> 189 hosts possible + + +kubeguard: + ## node_index must be in the range between 1 and 190 -> 189 hosts possible ## ## hardcoded hostnames are not nice but if we do this via host_vars ## 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: + node_index: emc-01: 1 emc-02: 2 emc-03: 3 @@ -35,7 +36,6 @@ kubernetes: emc-dist0: 110 ele-dione: 111 ele-helene: 112 - emc-stats: 120 emc-master: 127 direct_net_zones: @@ -44,3 +44,5 @@ kubernetes: node_interface: ele-dione: eno2 ele-helene: eno2 + +kubernetes_overlay_node_ip: "{{ kubernetes.pod_ip_range | ipsubnet(kubernetes.pod_ip_range_size, kubeguard.node_index[inventory_hostname]) | ipaddr(1) | ipaddr('address') }}" diff --git a/inventory/host_vars/emc-master.yml b/inventory/host_vars/emc-master.yml index fd5bffce..7b1f3210 100644 --- a/inventory/host_vars/emc-master.yml +++ b/inventory/host_vars/emc-master.yml @@ -1,42 +1,57 @@ --- -vm_host: sk2013 +vm_host: sk-2019vm install: host: "{{ vm_host }}" - mem: 1024 - numcpu: 2 + mem: 10240 + numcpu: 6 disks: - primary: /dev/vda - virtio: - vda: - type: lvm - vg: storage - lv: "{{ inventory_hostname }}" - size: 42g + primary: /dev/sda + scsi: + sda: + type: zfs + pool: storage + name: "{{ inventory_hostname }}" + size: 20g + sdb: + type: zfs + pool: storage + name: "{{ inventory_hostname }}-data" + size: 50g interfaces: - - bridge: "{{ hostvars[vm_host].vm_host.network.interface }}" + - bridge: br-public name: primary0 autostart: True network: - nameservers: "{{ hostvars[vm_host].vm_host.network.nameservers }}" - domain: spreadspace.org + nameservers: "{{ hostvars[vm_host].vm_host.network.dns }}" + domain: "{{ host_domain }}" systemd_link: interfaces: "{{ install.interfaces }}" primary: interface: primary0 - ip: "{{ (hostvars[vm_host].vm_host.network.ip+'/'+hostvars[vm_host].vm_host.network.mask) | ipaddr(hostvars[vm_host].vm_host.network.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[vm_host].vm_host.network.mask }}" - gateway: "{{ hostvars[vm_host].vm_host.network.gateway | default(hostvars[vm_host].vm_host.network.ip) }}" + ip: "{{ hostvars[vm_host].vm_host.network.bridges.public.prefix | ipaddr(hostvars[vm_host].vm_host.network.bridges.public.offsets[inventory_hostname]) | ipaddr('address') }}" + mask: "{{ hostvars[vm_host].vm_host.network.bridges.public.prefix | ipaddr('netmask') }}" + gateway: "{{ hostvars[vm_host].vm_host.network.bridges.public.prefix | ipaddr('address') }}" + overlay: "{{ (hostvars[vm_host].vm_host.network.bridges.public.overlay.prefix | ipaddr(hostvars[vm_host].vm_host.network.bridges.public.overlay.offsets[inventory_hostname])).split('/')[0] }}" + docker_lvm: vg: "{{ host_name }}" lv: docker - size: 10G + size: 7G fs: ext4 kubelet_lvm: vg: "{{ host_name }}" lv: kubelet - size: 10G + size: 5G + fs: ext4 + + +emc_stats_lvm: + pvs: /dev/sdb + vg: "{{ host_name }}-data" + lv: stats + size: 42G fs: ext4 diff --git a/inventory/host_vars/emc-stats.yml b/inventory/host_vars/emc-stats.yml deleted file mode 100644 index d8d340b6..00000000 --- a/inventory/host_vars/emc-stats.yml +++ /dev/null @@ -1,54 +0,0 @@ ---- -vm_host: sk2016 - -install: - host: "{{ vm_host }}" - mem: 8192 - numcpu: 6 - disks: - primary: /dev/vda - virtio: - vda: - type: lvm - vg: storage - lv: "{{ inventory_hostname }}" - size: 42g - vdb: - type: lvm - vg: storage - lv: "{{ inventory_hostname }}-data" - size: 100g - interfaces: - - bridge: "{{ hostvars[vm_host].vm_host.network.interface }}" - name: primary0 - autostart: True - -network: - nameservers: "{{ hostvars[vm_host].vm_host.network.nameservers }}" - domain: spreadspace.org - systemd_link: - interfaces: "{{ install.interfaces }}" - primary: - interface: primary0 - ip: "{{ (hostvars[vm_host].vm_host.network.ip+'/'+hostvars[vm_host].vm_host.network.mask) | ipaddr(hostvars[vm_host].vm_host.network.offsets[inventory_hostname]) | ipaddr('address') }}" - mask: "{{ hostvars[vm_host].vm_host.network.mask }}" - gateway: "{{ hostvars[vm_host].vm_host.network.gateway | default(hostvars[vm_host].vm_host.network.ip) }}" - -docker_lvm: - vg: "{{ host_name }}" - lv: docker - size: 15G - fs: ext4 - -kubelet_lvm: - vg: "{{ host_name }}" - lv: kubelet - size: 10G - fs: ext4 - -emc_stats_lvm: - pvs: /dev/vdb - vg: "{{ host_name }}-data" - lv: stats - size: 50G - fs: ext4 diff --git a/inventory/host_vars/sk-2019vm.yml b/inventory/host_vars/sk-2019vm.yml index 37f9c97d..511ad7a1 100644 --- a/inventory/host_vars/sk-2019vm.yml +++ b/inventory/host_vars/sk-2019vm.yml @@ -25,14 +25,15 @@ vm_host: s2-k8s-test3: 2 s2-k8s-test4: 3 sk-torrent: 136 - ch-mimas: 143 + emc-master: 137 + ch-mimas: 142 sk-testvm: 253 nat: yes overlay: prefix: 178.63.180.136/29 offsets: sk-torrent: 0 - s2-k8s-test4: 3 + emc-master: 1 ch-mimas: 6 sk-testvm: 7 diff --git a/inventory/hosts.ini b/inventory/hosts.ini index 88a2d2b1..b2957b17 100644 --- a/inventory/hosts.ini +++ b/inventory/hosts.ini @@ -116,7 +116,6 @@ env_group=dan ansible_port=222 [emc] -emc-stats emc-master [emc:children] @@ -128,7 +127,6 @@ emc-xx [emc-xx] #emc-0[0:6] -emc-00 ############################### @@ -216,7 +214,6 @@ r3-cccamp19-helene sk-2019vm [kvmguests] -emc-stats emc-master ch-keyserver ch-testvm @@ -242,11 +239,10 @@ sk-2019vm [hcloud] ch-mimas2 -emc-00 ele-lt +emc-dist0 [hetzner] -emc-stats emc-master sk-testvm sk-torrent @@ -279,8 +275,8 @@ ele-dolmetsch-raspi ### kubernetes cluster: emc [k8s-emc-encoder] -#s2-dione -#s2-helene +#ele-dione +#ele-helene [k8s-emc-distribution:children] emc-dist @@ -291,15 +287,11 @@ emc-xx [k8s-emc-master] emc-master -[k8s-emc-stats] -emc-stats - [k8s-emc:children] k8s-emc-master k8s-emc-encoder k8s-emc-distribution k8s-emc-streamer -k8s-emc-stats ### Elevate Festival diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 9d78114c..d4bba120 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -12,7 +12,7 @@ copy: content: "{{ docker_daemon_config | to_nice_json }}\n" dest: /etc/docker/daemon.json - notify: restart docker +# notify: restart docker ### this does not work on first install because adding the repo might flush handlers... - name: prepare /var/lib/docker as LVM when: docker_lvm is defined diff --git a/roles/emc-stats/tasks/main.yml b/roles/emc-stats/tasks/main.yml index 69c7af01..e656c7f7 100644 --- a/roles/emc-stats/tasks/main.yml +++ b/roles/emc-stats/tasks/main.yml @@ -27,4 +27,4 @@ - name: increase vm.max_map_count sysctl: name: vm.max_map_count - value: 262144 + value: "262144" -- cgit v1.2.3