summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2024-04-06 01:21:24 +0200
committerPatrick Spek <p.spek@tyil.nl>2024-04-06 01:21:24 +0200
commit318702758950bc64f15dfc9df55e4b5062d9e792 (patch)
tree6ba3a9c00255cc678494fe634a8527096b38e548
parent17410fb0a3cead9f5cc7e8baffd6d52f5864d827 (diff)
Update k3s playbooks to bind to a specific interface
-rw-r--r--defaults2
-rw-r--r--playbooks.d/k3s-master/playbook.bash47
-rw-r--r--playbooks.d/k3s-node/playbook.bash35
3 files changed, 54 insertions, 30 deletions
diff --git a/defaults b/defaults
index 0ba54a9..d248930 100644
--- a/defaults
+++ b/defaults
@@ -16,12 +16,14 @@ k3s-master.external-ip&=k3s-node.internal-ip
k3s-master.internal-ip&=k3s-node.internal-ip
k3s-master.service-cidr=fd00:5::0/108,172.25.0.0/16
k3s-master.service-node-port-min=1025
+k3s-master.flannel.interfaces.tinc&=k3s-node.flannel.interfaces.tinc
k3s-node.bind-address&=vpn-tinc.ipv6
k3s-node.cluster-cidr&=k3s-master.cluster-cidr
k3s-node.cluster-domain&=k3s-master.cluster-domain
k3s-node.cluster-domain=k3s.tyil.nl
k3s-node.entry.host=[fd68:1057:1992:3381:0:1:3317:1]
k3s-node.external-ip&=k3s-node.internal-ip
+k3s-node.flannel.interfaces.tinc=tyilnet1057
k3s-node.role=agent
k3s-node.service-cidr&=k3s-master.service-cidr
k3s-node.service-node-port-min&=k3s-master.service-node-port-min
diff --git a/playbooks.d/k3s-master/playbook.bash b/playbooks.d/k3s-master/playbook.bash
index be24f36..270e0cb 100644
--- a/playbooks.d/k3s-master/playbook.bash
+++ b/playbooks.d/k3s-master/playbook.bash
@@ -5,24 +5,35 @@ playbook_add() {
info "$BASHTARD_PLAYBOOK/add" "Writing config.yaml for k3s"
mkdir -pv -- /etc/rancher/k3s
- cat <<-EOF > /etc/rancher/k3s/config.yaml
- node-name: "${BASHTARD_PLATFORM[fqdn]}"
- node-ip: "$(config "$BASHTARD_PLAYBOOK.internal-ip" "127.0.0.1")"
- bind-address: "$(config "$BASHTARD_PLAYBOOK.bind-address" "0.0.0.0")"
- cluster-cidr: "$(config "$BASHTARD_PLAYBOOK.cluster-cidr" "172.19.0.0/16")"
- service-cidr: "$(config "$BASHTARD_PLAYBOOK.service-cidr" "172.20.0.0/16")"
- cluster-domain: "$(config "$BASHTARD_PLAYBOOK.cluster-domain" "cluster.local")"
- service-node-port-range: "$(config "$BASHTARD_PLAYBOOK.service-node-port-min" "30000")-$(config "$BASHTARD_PLAYBOOK.service-node-port-max" "32767")"
- flannel-ipv6-masq: true
- disable:
- - traefik
- EOF
-
- if [[ -n "$(config "$BASHTARD_PLAYBOOK.external-ip" "")" ]]
- then
- printf "%s: %s\n" "node-external-ip" "$(config "$BASHTARD_PLAYBOOK.external-ip" "")"\
- >> /etc/rancher/k3s/config.yaml
- fi
+ {
+ cat <<-EOF
+ node-name: "${BASHTARD_PLATFORM[fqdn]}"
+ node-ip: "$(config "$BASHTARD_PLAYBOOK.internal-ip" "127.0.0.1")"
+ bind-address: "$(config "$BASHTARD_PLAYBOOK.bind-address" "0.0.0.0")"
+ cluster-cidr: "$(config "$BASHTARD_PLAYBOOK.cluster-cidr" "172.19.0.0/16")"
+ service-cidr: "$(config "$BASHTARD_PLAYBOOK.service-cidr" "172.20.0.0/16")"
+ cluster-domain: "$(config "$BASHTARD_PLAYBOOK.cluster-domain" "cluster.local")"
+ service-node-port-range: "$(config "$BASHTARD_PLAYBOOK.service-node-port-min" "30000")-$(config "$BASHTARD_PLAYBOOK.service-node-port-max" "32767")"
+ flannel-ipv6-masq: true
+ disable:
+ - traefik
+ EOF
+
+ if [[ -n "$(config_subkeys "$BASHTARD_PLAYBOOK.flannel.interfaces")" ]]
+ then
+ printf "flannel-iface:\n"
+
+ while read -r iface
+ do
+ printf -- "- %s\n" "$(config "$BASHTARD_PLAYBOOK.flannel.interfaces.$iface")"
+ done < <( config_subkeys "$BASHTARD_PLAYBOOK.flannel.interfaces" )
+ fi
+
+ if [[ -n "$(config "$BASHTARD_PLAYBOOK.external-ip" "")" ]]
+ then
+ printf "%s: \"%s\"\n" "node-external-ip" "$(config "$BASHTARD_PLAYBOOK.external-ip" "")"
+ fi
+ } > "$(config "fs.etcdir")/rancher/k3s/config.yaml"
info "$BASHTARD_PLAYBOOK/add" "Installing k3s"
curl -sfL https://get.k3s.io | sh -s - server --cluster-init # I hate this
diff --git a/playbooks.d/k3s-node/playbook.bash b/playbooks.d/k3s-node/playbook.bash
index e1d77b3..d5b9a76 100644
--- a/playbooks.d/k3s-node/playbook.bash
+++ b/playbooks.d/k3s-node/playbook.bash
@@ -12,18 +12,29 @@ playbook_add() {
info "$BASHTARD_PLAYBOOK" "Writing config.yaml for k3s"
mkdir -pv -- /etc/rancher/k3s
- cat <<-EOF > /etc/rancher/k3s/config.yaml
- node-name: "${BASHTARD_PLATFORM[fqdn]}"
- node-ip: "$(config "$BASHTARD_PLAYBOOK.internal-ip" "127.0.0.1")"
- server: "https://$(config "$BASHTARD_PLAYBOOK.entry.host"):$(config "$BASHTARD_PLAYBOOK.entry.port" "6443")"
- token: "$(config "$BASHTARD_PLAYBOOK.entry.token")"
- EOF
-
- if [[ -n "$(config "$BASHTARD_PLAYBOOK.external-ip" "")" ]]
- then
- printf "%s: %s\n" "node-external-ip" "$(config "$BASHTARD_PLAYBOOK.external-ip" "")"\
- >> /etc/rancher/k3s/config.yaml
- fi
+ {
+ cat <<-EOF
+ node-name: "${BASHTARD_PLATFORM[fqdn]}"
+ node-ip: "$(config "$BASHTARD_PLAYBOOK.internal-ip" "127.0.0.1")"
+ server: "https://$(config "$BASHTARD_PLAYBOOK.entry.host"):$(config "$BASHTARD_PLAYBOOK.entry.port" "6443")"
+ token: "$(config "$BASHTARD_PLAYBOOK.entry.token")"
+ EOF
+
+ if [[ -n "$(config_subkeys "$BASHTARD_PLAYBOOK.flannel.interfaces")" ]]
+ then
+ printf "flannel-iface:\n"
+
+ while read -r iface
+ do
+ printf -- "- %s\n" "$(config "$BASHTARD_PLAYBOOK.flannel.interfaces.$iface")"
+ done < <( config_subkeys "$BASHTARD_PLAYBOOK.flannel.interfaces" )
+ fi
+
+ if [[ -n "$(config "$BASHTARD_PLAYBOOK.external-ip" "")" ]]
+ then
+ printf "%s: %s\n" "node-external-ip" "$(config "$BASHTARD_PLAYBOOK.external-ip" "")"
+ fi
+ } "$(config "fs.etcdir")/rancher/k3s/config.yaml"
if [[ "$role" == "server" ]]
then