summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2024-04-03 13:24:47 +0200
committerPatrick Spek <p.spek@tyil.nl>2024-04-03 13:24:47 +0200
commitfac15bfe4fc3849ff83ed513763f17e7a65ee061 (patch)
treef45dc59e24cacc274a4fcc89643acaddf0bd763a
parentb782fea00c1a2aa93e451ec61bc9aebee4340258 (diff)
Absort k3s-master into master
m---------playbooks.d/k3s-master0
-rw-r--r--playbooks.d/k3s-master/description.txt1
-rw-r--r--playbooks.d/k3s-master/etc/defaults4
-rw-r--r--playbooks.d/k3s-master/etc/os.d/linux-gentoo2
-rw-r--r--playbooks.d/k3s-master/playbook.bash54
5 files changed, 61 insertions, 0 deletions
diff --git a/playbooks.d/k3s-master b/playbooks.d/k3s-master
deleted file mode 160000
-Subproject 27d48e4dec3e2eee30d6000f16dc7eb8f67b85e
diff --git a/playbooks.d/k3s-master/description.txt b/playbooks.d/k3s-master/description.txt
new file mode 100644
index 0000000..bf1fbab
--- /dev/null
+++ b/playbooks.d/k3s-master/description.txt
@@ -0,0 +1 @@
+Playbook for a k3s node
diff --git a/playbooks.d/k3s-master/etc/defaults b/playbooks.d/k3s-master/etc/defaults
new file mode 100644
index 0000000..3cbca90
--- /dev/null
+++ b/playbooks.d/k3s-master/etc/defaults
@@ -0,0 +1,4 @@
+pkg.curl=curl
+pkg.kubectl=kubectl
+pkg.nfs-common=nfs-common
+pkg.open-iscsi=open-iscsi
diff --git a/playbooks.d/k3s-master/etc/os.d/linux-gentoo b/playbooks.d/k3s-master/etc/os.d/linux-gentoo
new file mode 100644
index 0000000..5e7bc08
--- /dev/null
+++ b/playbooks.d/k3s-master/etc/os.d/linux-gentoo
@@ -0,0 +1,2 @@
+pkg.nfs-common=net-fs/nfs-utils
+pkg.open-iscsi=sys-block/open-iscsi
diff --git a/playbooks.d/k3s-master/playbook.bash b/playbooks.d/k3s-master/playbook.bash
new file mode 100644
index 0000000..be24f36
--- /dev/null
+++ b/playbooks.d/k3s-master/playbook.bash
@@ -0,0 +1,54 @@
+#!/usr/bin/env bash
+
+playbook_add() {
+ pkg install curl
+
+ 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
+
+ info "$BASHTARD_PLAYBOOK/add" "Installing k3s"
+ curl -sfL https://get.k3s.io | sh -s - server --cluster-init # I hate this
+
+ notice "$BASHTARD_PLAYBOOK/add" "Creating data directories"
+ mkdir -pv -- "$(playbook_path "data")/manifests.d"
+
+ notice "$BASHTARD_PLAYBOOK/add" "Waiting for node to become available"
+ { grep -q -m 1 "${BASHTARD_PLATFORM[fqdn]}[[:space:]]\+Ready"; kill $!; } < <(k3s kubectl get node -w)
+
+ playbook_sync
+}
+
+playbook_sync() {
+ local data
+ local kubeconfig
+ local manifest_prefix
+ local values
+
+ data="$(playbook_path "data")"
+ kubeconfig="$(config "fs.etcdir")/rancher/k3s/k3s.yaml"
+
+ notice "$BASHTARD_PLAYBOOK/sync" "Applying manifests.d"
+ kubectl --kubeconfig "$kubeconfig" apply --recursive --filename "$data/manifests.d" || true
+}
+
+playbook_del() {
+ /usr/local/bin/k3s-uninstall.sh
+}