From dc6ee1a18a7fb718cebee232f35911e61a3ae394 Mon Sep 17 00:00:00 2001 From: afeiszli Date: Mon, 29 Nov 2021 05:28:08 -0500 Subject: [PATCH] adding templates --- kube/netclient-template-doks-uspace.yaml | 43 +++++++++++ kube/netclient-template-doks.yaml | 93 ++++++++++++++++++++++++ netclient/ncutils/netclientutils.go | 2 +- scripts/netclient.sh | 3 + 4 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 kube/netclient-template-doks-uspace.yaml create mode 100644 kube/netclient-template-doks.yaml diff --git a/kube/netclient-template-doks-uspace.yaml b/kube/netclient-template-doks-uspace.yaml new file mode 100644 index 00000000..37b45333 --- /dev/null +++ b/kube/netclient-template-doks-uspace.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: netclient-1 + labels: + app: netclient-1 +spec: + selector: + matchLabels: + app: netclient-1 + template: + metadata: + labels: + app: netclient-1 + spec: + hostNetwork: true + containers: + - name: netclient-1 + image: gravitl/netclient:0.9.1-doks-uspace + env: + - name: NETCLIENT_ROAMING + value: "no" + - name: NETCLIENT_PORT + value: "51821" + - name: NETCLIENT_IS_STATIC + value: "yes" + - name: NETCLIENT_ENDPOINT + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: TOKEN + value: "" + volumeMounts: + - mountPath: /etc/netclient + name: etc-netclient + securityContext: + privileged: true + volumes: + - hostPath: + path: /etc/netclient + type: DirectoryOrCreate + name: etc-netclient + diff --git a/kube/netclient-template-doks.yaml b/kube/netclient-template-doks.yaml new file mode 100644 index 00000000..cfe88044 --- /dev/null +++ b/kube/netclient-template-doks.yaml @@ -0,0 +1,93 @@ +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: netclient-1 + labels: + app: netclient-1 +spec: + selector: + matchLabels: + app: netclient-1 + template: + metadata: + labels: + app: netclient-1 + spec: + hostNetwork: true + containers: + - name: netclient-1 + image: gravitl/netclient:0.9.1-doks + env: + - name: NETCLIENT_ROAMING + value: "no" + - name: NETCLIENT_PORT + value: "51821" + - name: NETCLIENT_IS_STATIC + value: "yes" + - name: NETCLIENT_ENDPOINT + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: TOKEN + value: "" + volumeMounts: + - mountPath: /etc/netclient + name: etc-netclient + - mountPath: /usr/bin/wg + name: wg + securityContext: + privileged: true + volumes: + - hostPath: + path: /etc/netclient + type: DirectoryOrCreate + name: etc-netclient + - hostPath: + path: /usr/bin/wg + type: File + name: wg +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: wireguard-controller + labels: + app: wireguard-controller +spec: + selector: + matchLabels: + app: wireguard-controller + template: + metadata: + labels: + app: wireguard-controller + spec: + hostNetwork: true + containers: + - image: gravitl/netclient:0.9.1-doks + imagePullPolicy: IfNotPresent + name: wg-installer + command: ['bash', '-c'] + args: + - while [ 1 ]; + do if ! command -v wg &> /dev/null; + then echo "wireguard not installed, installing"; + echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list; + apt update; + sudo apt -y install linux-headers-$(uname --kernel-release); + apt -y install wireguard wireguard-tools; + else echo "wireguard installed"; + sleep 300; + fi; + done + securityContext: + privileged: true + volumeMounts: + - name: rootfolder + mountPath: / + volumes: + - hostPath: + path: / + type: "" + name: rootfolder + diff --git a/netclient/ncutils/netclientutils.go b/netclient/ncutils/netclientutils.go index dfa2f166..aea4c1ae 100644 --- a/netclient/ncutils/netclientutils.go +++ b/netclient/ncutils/netclientutils.go @@ -410,7 +410,7 @@ func GetSystemNetworks() ([]string, error) { return networks, err } for _, f := range files { - if strings.Contains(f.Name(), "netconfig-") { + if strings.Contains(f.Name(), "netconfig-") && !strings.Contains(f.Name(), "backup") { networkname := stringAfter(f.Name(), "netconfig-") networks = append(networks, networkname) } diff --git a/scripts/netclient.sh b/scripts/netclient.sh index d0b6bb4f..a5dcb57c 100755 --- a/scripts/netclient.sh +++ b/scripts/netclient.sh @@ -16,9 +16,12 @@ if [ $? -ne 0 ]; then { echo "Failed to join, quitting." ; exit 1; } fi echo "[netclient] Starting netclient checkin" # loop and call checkin -n all +FAILCOUNT=0 while [ 1 ]; do # add logs to netclient.logs /root/netclient checkin -n all + if [ $? -ne 0 ]; then FAILCOUNT=$((FAILCOUNT+1)) ; else FAILCOUNT=0; fi + if [ $FAILCOUNT -gt 2 ]; then { echo "Failing checkins frequently, restarting." ; exit 1; } fi sleep $SLEEP done echo "[netclient] exiting"