From 318702758950bc64f15dfc9df55e4b5062d9e792 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 6 Apr 2024 01:21:24 +0200 Subject: Update k3s playbooks to bind to a specific interface --- defaults | 2 ++ playbooks.d/k3s-master/playbook.bash | 47 ++++++++++++++++++++++-------------- playbooks.d/k3s-node/playbook.bash | 35 ++++++++++++++++++--------- 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 -- cgit v1.1