changeset 21:948d9d72267d

k3s update and some config refactoring
author drewp@bigasterisk.com
date Tue, 28 Dec 2021 22:08:21 -0800
parents b8105f575696
children 301dad3cdb7b
files kube.py templates/kube/Corefile.j2 templates/kube/config.yaml.j2 templates/kube/k3s-server.service.j2
diffstat 4 files changed, 46 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/kube.py	Tue Dec 28 22:03:50 2021 -0800
+++ b/kube.py	Tue Dec 28 22:08:21 2021 -0800
@@ -7,7 +7,7 @@
 is_pi = host.get_fact(LinuxDistribution)['name'] in ['Debian', 'Raspbian GNU/Linux']
 is_wifi_pi = host.name in ['frontdoor', 'living']
 
-k3s_version = 'v1.21.2+k3s1'
+k3s_version = 'v1.22.4-rc1+k3s1'
 master_ip = "10.5.0.1"
 
 server.sysctl(key='net.ipv4.ip_forward', value="1", persist=True)
@@ -18,7 +18,8 @@
                dest='/usr/local/bin/k3s',
                user='root',
                group='root',
-               mode='755')
+               mode='755',
+               cache_time=1000)
 
 if is_pi:
     old_cmdline = host.get_fact(FindInFile, path='/boot/cmdline.txt', pattern=r'.*')[0]
@@ -40,12 +41,24 @@
 
 if host.name == 'bang':  # master
     files.template(
+        src='templates/kube/config.yaml.j2',
+        dest='/etc/k3s_config.yaml',
+        master_ip=master_ip,
+    )
+    files.template(
+        src='templates/kube/Corefile.j2',
+        dest='/etc/k3s_coredns_config',
+    )
+    files.template(
         src='templates/kube/k3s-server.service.j2',
         dest='/etc/systemd/system/k3s.service',
         master_ip=master_ip,
     )
     systemd.service(service='k3s.service', daemon_reload=True, enabled=True, restarted=True)
 
+    server.shell(commands=[
+        'kubectl replace configmap -n kube-system coredns --from-file=Corefile=/etc/k3s_coredns_config -o yaml --dry-run=client | kubectl apply -',
+        ])
     # one-time thing at cluster create time? not sure
     # - name: Replace https://localhost:6443 by https://master-ip:6443
     #   command: >-
@@ -74,9 +87,9 @@
     files.chown(target='/etc/rancher/k3s/k3s.yaml', user='root', group='drewp')
     files.chmod(target='/etc/rancher/k3s/k3s.yaml', mode='640')
 
-    # bug: doesn't update old versions since the file exists
-    files.download(src='https://storage.googleapis.com/skaffold/releases/v1.34.0/skaffold-linux-amd64',
+    files.download(src='https://storage.googleapis.com/skaffold/releases/v1.35.0/skaffold-linux-amd64',
                    dest='/usr/local/bin/skaffold',
                    user='root',
                    group='root',
-                   mode='755')
+                   mode='755',
+                   cache_time=1000)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/kube/Corefile.j2	Tue Dec 28 22:08:21 2021 -0800
@@ -0,0 +1,20 @@
+.:53 {
+    errors
+    health
+    ready
+    kubernetes cluster.local in-addr.arpa ip6.arpa {
+      pods insecure
+      fallthrough in-addr.arpa ip6.arpa
+    }
+    hosts /etc/coredns/NodeHosts {
+      ttl 60
+      reload 15s
+      fallthrough
+    }
+    prometheus :9153
+    forward . dns://10.2.0.1
+    cache 30
+    loop
+    reload
+    loadbalance
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/kube/config.yaml.j2	Tue Dec 28 22:08:21 2021 -0800
@@ -0,0 +1,7 @@
+debug: true
+write-kubeconfig-mode: '640'
+bind-address: {{ master_ip }}
+node-external-ip: {{ master_ip }}
+node-ip: {{ master_ip }}
+disable:
+  - traefik
\ No newline at end of file
--- a/templates/kube/k3s-server.service.j2	Tue Dec 28 22:03:50 2021 -0800
+++ b/templates/kube/k3s-server.service.j2	Tue Dec 28 22:08:21 2021 -0800
@@ -9,7 +9,7 @@
 Type=notify
 ExecStartPre=-/sbin/modprobe br_netfilter
 ExecStartPre=-/sbin/modprobe overlay
-ExecStart=/usr/local/bin/k3s server --debug --write-kubeconfig-mode=640 --bind-address {{ master_ip }} --node-external-ip {{ master_ip }} --node-ip {{ master_ip }} --disable traefik
+ExecStart=/usr/local/bin/k3s server --config /etc/k3s_config.yaml
 KillMode=process
 Delegate=yes
 # Having non-zero Limit*s causes performance problems due to accounting overhead