summaryrefslogtreecommitdiff
path: root/playbooks.d
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks.d')
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@plarabe-ed25519.pub1
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.bash65
-rw-r--r--playbooks.d/k3s-node/playbook.bash103
-rw-r--r--playbooks.d/k8s-master/description.txt1
-rw-r--r--playbooks.d/k8s-master/etc/defaults4
-rw-r--r--playbooks.d/k8s-master/playbook.bash115
-rw-r--r--playbooks.d/k8s-node/description.txt1
-rw-r--r--playbooks.d/k8s-node/etc/defaults4
-rw-r--r--playbooks.d/k8s-node/playbook.bash103
-rw-r--r--playbooks.d/seaweedfs-volume/playbook.bash9
-rw-r--r--playbooks.d/seaweedfs-volume/share/volume.conf3
-rw-r--r--playbooks.d/seaweedfs/playbook.bash5
-rw-r--r--playbooks.d/seaweedfs/share/master.conf8
-rw-r--r--playbooks.d/seaweedfs/share/seaweedfs-mount@.service15
-rw-r--r--playbooks.d/seaweedfs/share/server.conf14
-rw-r--r--playbooks.d/vpn-tinc/playbook.bash20
-rw-r--r--playbooks.d/vpn-tinc/share/host3
21 files changed, 195 insertions, 286 deletions
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@plarabe-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@plarabe-ed25519.pub
new file mode 100644
index 0000000..25a5449
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@plarabe-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ7XKD3KxXTe5GlM4w4xdap3VAPvYCi4EowD88ymInFR tyil@plarabe
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..270e0cb
--- /dev/null
+++ b/playbooks.d/k3s-master/playbook.bash
@@ -0,0 +1,65 @@
+#!/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
+ 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
+
+ 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
+}
diff --git a/playbooks.d/k3s-node/playbook.bash b/playbooks.d/k3s-node/playbook.bash
index f2ae8d6..bc041df 100644
--- a/playbooks.d/k3s-node/playbook.bash
+++ b/playbooks.d/k3s-node/playbook.bash
@@ -1,35 +1,81 @@
#!/usr/bin/env bash
BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.entry.host]="required"
-BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.entry.token]="required"
+BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.internal-ip]="required"
playbook_add() {
- pkg install curl nfs-common open-iscsi
+ local host
+ local role
+ local token
- info "$BASHTARD_PLAYBOOK" "Writing config.yaml for k3s"
- mkdir -pv -- /etc/rancher/k3s
- cat <<-EOF > /etc/rancher/k3s/config.yaml
- node-ip: "$(config "$BASHTARD_PLAYBOOK.node-ip" "$(config "bashtard.ssh.host")")"
- node-name: "${BASHTARD_PLATFORM[fqdn]}"
- server: "https://$(config "$BASHTARD_PLAYBOOK.entry.host"):$(config "$BASHTARD_PLAYBOOK.entry.port" "6443")"
- token: "$(config "$BASHTARD_PLAYBOOK.entry.token")"
- EOF
-
- if [[ "$(config "$BASHTARD_PLAYBOOK.role")" == "server" ]]
+ host="$(config "$BASHTARD_PLAYBOOK.entry.host")"
+ role="$(config "$BASHTARD_PLAYBOOK.role" "agent")"
+ token="$(config "$BASHTARD_PLAYBOOK.entry.token" "")"
+
+ pkg install curl
+
+ # If token is not supplied manually, attempt to fetch it from the entry
+ # host over ssh
+ if [[ -z "$token" ]]
then
- cat <<-EOF >> /etc/rancher/k3s/config.yaml
- cluster-cidr: "$(config "$BASHTARD_PLAYBOOK.cluster-cidr" "172.19.0.0/16")"
- cluster-domain: "$(config "$BASHTARD_PLAYBOOK.cluster-domain" "cluster.local")"
- service-cidr: "$(config "$BASHTARD_PLAYBOOK.service-cidr" "172.20.0.0/16")"
- service-node-port-range: "$(config "$BASHTARD_PLAYBOOK.service-node-port-min" "30000")-$(config "$BASHTARD_PLAYBOOK.service-node-port-max" "32767")"
- EOF
+ # Dealing with an IPv6 address, strip away the brackets
+ if [[ "${host:0:1}" == "[" && "${host: -1}" == "]" ]]
+ then
+ host="${host:1:-1}"
+ fi
+
+ info "$BASHTARD_PLAYBOOK/add" "Attempting to fetch token from $host"
+ token="$(ssh "$host" -- cat /var/lib/rancher/k3s/server/token)"
+ fi
+
+ if [[ -z "$token" ]]
+ then
+ emerg "$BASHTARD_PLAYBOOK/add" "No entry token found, set one with bashtard var -s $BASHTARD_PLAYBOOK.entry.token <value>"
+ return 1
fi
- info "$BASHTARD_PLAYBOOK" "Installing k3s"
- curl -sfL https://get.k3s.io | sh -s - "$(config "$BASHTARD_PLAYBOOK.role" "agent")"
+ info "$BASHTARD_PLAYBOOK/add" "Writing config.yaml for k3s"
+ mkdir -pv -- /etc/rancher/k3s
+ {
+ 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: "$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
- notice "$BASHTARD_PLAYBOOK" "Waiting for node to become available"
- { grep -q -m 1 "${BASHTARD_PLATFORM[fqdn]}[[:space:]]\+Ready"; kill $!; } < <(k3s kubectl get node -w)
+ if [[ -n "$(config "$BASHTARD_PLAYBOOK.external-ip" "")" ]]
+ then
+ printf "%s: \"%s\"\n" "node-external-ip" "$(config "$BASHTARD_PLAYBOOK.external-ip" "")"
+ fi
+
+ if [[ "$role" == "server" ]]
+ then
+ info "$BASHTARD_PLAYBOOK/add" "Node is a server, adding master configuration"
+ cat <<-EOF >> /etc/rancher/k3s/config.yaml
+ cluster-cidr: "$(config "$BASHTARD_PLAYBOOK.cluster-cidr" "172.19.0.0/16")"
+ cluster-domain: "$(config "$BASHTARD_PLAYBOOK.cluster-domain" "cluster.local")"
+ service-cidr: "$(config "$BASHTARD_PLAYBOOK.service-cidr" "172.20.0.0/16")"
+ 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
+ fi
+ } > "$(config "fs.etcdir")/rancher/k3s/config.yaml"
+
+ info "$BASHTARD_PLAYBOOK/add" "Installing k3s"
+ curl -sfL https://get.k3s.io | sh -s - "$role"
}
playbook_sync() {
@@ -37,5 +83,16 @@ playbook_sync() {
}
playbook_del() {
- /usr/local/bin/k3s-uninstall.sh
+ local role
+
+ role="$(config "$BASHTARD_PLAYBOOK.role" "agent")"
+
+ case "$role" in
+ server)
+ /usr/local/bin/k3s-uninstall.sh
+ ;;
+ agent)
+ /usr/local/bin/k3s-agent-uninstall.sh
+ ;;
+ esac
}
diff --git a/playbooks.d/k8s-master/description.txt b/playbooks.d/k8s-master/description.txt
deleted file mode 100644
index 60693ef..0000000
--- a/playbooks.d/k8s-master/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-Playbook for a Kubernetes master node
diff --git a/playbooks.d/k8s-master/etc/defaults b/playbooks.d/k8s-master/etc/defaults
deleted file mode 100644
index 9506887..0000000
--- a/playbooks.d/k8s-master/etc/defaults
+++ /dev/null
@@ -1,4 +0,0 @@
-pkg.containerd=containerd
-pkg.kubeadm=kubeadm
-pkg.kubectl=kubectl
-pkg.kubelet=kubelet
diff --git a/playbooks.d/k8s-master/playbook.bash b/playbooks.d/k8s-master/playbook.bash
deleted file mode 100644
index f423c00..0000000
--- a/playbooks.d/k8s-master/playbook.bash
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/env bash
-
-playbook_add() {
- local version
-
- version="1.29"
-
- case "${BASHTARD_PLATFORM[key]}" in
- linux-debian_gnu_linux)
- # Fetch the apt key
- info "$BASHTARD_PLAYBOOK" "Adding apt repository"
- mkdir -pv -m 755 -- /etc/apt/keyrings
- curl -fsSL "https://pkgs.k8s.io/core:/stable:/v$version/deb/Release.key" \
- | gpg --dearmor \
- > /etc/apt/keyrings/kubernetes-apt-keyring.gpg
- printf "deb [signed-by=%s] %s /\n" \
- "/etc/apt/keyrings/kubernetes-apt-keyring.gpg" \
- "https://pkgs.k8s.io/core:/stable:/v$version/deb/" \
- > /etc/apt/sources.list.d/kubernetes.list
- apt update
- ;;
- esac
-
- pkg install containerd
- pkg install kubeadm
- pkg install kubectl
- pkg install kubelet
-
- info "$BASHTARD_PLAYBOOK" "Enabling forwarding"
- cat <<-EOF > "$(config "fs.etcdir")/sysctl.d/kubernetes.conf"
- net.bridge.bridge-nf-call-iptables = 1
- net.bridge.bridge-nf-call-ip6tables = 1
- net.ipv4.ip_forward = 1
- net.ipv6.conf.all.forwarding = 1
- EOF
-
- sysctl --system
-
- info "$BASHTARD_PLAYBOOK" "Enabling kernel modules"
- cat <<-EOF > "$(config "fs.etcdir")/modules-load.d/kubernetes.conf"
- br_netfilter
- overlay
- EOF
-
- modprobe overlay
- modprobe br_netfilter
-
- notice "$BASHTARD_PLAYBOOK" "Creating data directories"
- mkdir -pv -- "$(playbook_path "data")/manifests.d"
-
- if [[ "$(config "$BASHTARD_PLAYBOOK.flags.apiserver-advertise-address" "")" != "" ]]
- then
- notice "$BASHTARD_PLAYBOOK" "Setting node ip in $(config "fs.etcdir")/default/kubelet"
- cat <<-EOF > "$(config "fs.etcdir")/default/kubelet"
- KUBELET_EXTRA_ARGS="--node-ip=$(config "$BASHTARD_PLAYBOOK.flags.apiserver-advertise-address")"
- EOF
- fi
-
- notice "$BASHTARD_PLAYBOOK" "Initialize kubeadm"
- kubeadm init \
- --apiserver-advertise-address="$(config "$BASHTARD_PLAYBOOK.flags.apiserver-advertise-address" "127.0.0.1")" \
- --apiserver-bind-port="$(config "$BASHTARD_PLAYBOOK.flags.apiserver-bind-port" "6443")" \
- --control-plane-endpoint="$(config "$BASHTARD_PLAYBOOK.flags.control-plane-endpoint" "localhost")" \
- --node-name="${BASHTARD_PLATFORM[fqdn]}" \
- --service-cidr="$(config "$BASHTARD_PLAYBOOK.flags.service-cidr" "10.96.0.0/12")" \
- --service-dns-domain="$(config "$BASHTARD_PLAYBOOK.flags.service-dns-domain" "cluster.local")" \
- --pod-network-cidr="$(config "$BASHTARD_PLAYBOOK.flags.pod-network-cidr" "10.0.0.0/12")" \
- || return 1
-
- playbook_sync
-
- return 0
-}
-
-playbook_sync() {
- local data
- local kubeconfig
- local manifest_prefix
- local values
-
- data="$(playbook_path "data")"
- kubeconfig="$(config "fs.etcdir")/kubernetes/admin.conf"
- manifest_prefix="$(config "$BASHTARD_PLAYBOOK.manifest-prefix" "")"
-
- notice "$BASHTARD_PLAYBOOK/manifests" "Applying manifests.d"
- kubectl --kubeconfig "$kubeconfig" apply --recursive --filename "$data/manifests.d/$manifest_prefix"
-}
-
-playbook_del() {
- kubeadm reset --force
- iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
- ipvsadm -C
- rm -fr -- \
- "$(config "fs.etcdir")/modules-load.d/kubernetes.conf" \
- "$(config "fs.etcdir")/sysctl.d/kubernetes.conf" \
- "$(config "fs.etcdir")/cni/net.d" \
- "$(config "fs.etcdir")/kubernetes" \
- "/var/lib/etcd" \
- "/var/lib/cni"
-
- pkg uninstall kubectl
- pkg uninstall kubeadm
- pkg uninstall kubelet
- pkg uninstall containerd
-
- case "${BASHTARD_PLATFORM[key]}" in
- linux-debian_gnu_linux)
- # Fetch the apt key
- info "$BASHTARD_PLAYBOOK" "Removing apt repository"
- rm -fr -- \
- /etc/apt/keyrings/kubernetes-apt-keyring.gpg \
- /etc/apt/sources.list.d/kubernetes.list
- ;;
- esac
-}
diff --git a/playbooks.d/k8s-node/description.txt b/playbooks.d/k8s-node/description.txt
deleted file mode 100644
index 60693ef..0000000
--- a/playbooks.d/k8s-node/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-Playbook for a Kubernetes master node
diff --git a/playbooks.d/k8s-node/etc/defaults b/playbooks.d/k8s-node/etc/defaults
deleted file mode 100644
index 9506887..0000000
--- a/playbooks.d/k8s-node/etc/defaults
+++ /dev/null
@@ -1,4 +0,0 @@
-pkg.containerd=containerd
-pkg.kubeadm=kubeadm
-pkg.kubectl=kubectl
-pkg.kubelet=kubelet
diff --git a/playbooks.d/k8s-node/playbook.bash b/playbooks.d/k8s-node/playbook.bash
deleted file mode 100644
index fbf49e9..0000000
--- a/playbooks.d/k8s-node/playbook.bash
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env bash
-
-BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.cert-hash]="required"
-BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.master.address]="required"
-BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.token]="required"
-
-playbook_add() {
- local version
-
- version="1.29"
-
- case "${BASHTARD_PLATFORM[key]}" in
- linux-debian_gnu_linux)
- # Fetch the apt key
- info "$BASHTARD_PLAYBOOK" "Adding apt repository"
- mkdir -pv -m 755 -- /etc/apt/keyrings
- curl -fsSL "https://pkgs.k8s.io/core:/stable:/v$version/deb/Release.key" \
- | gpg --dearmor \
- > /etc/apt/keyrings/kubernetes-apt-keyring.gpg
- printf "deb [signed-by=%s] %s /\n" \
- "/etc/apt/keyrings/kubernetes-apt-keyring.gpg" \
- "https://pkgs.k8s.io/core:/stable:/v$version/deb/" \
- > /etc/apt/sources.list.d/kubernetes.list
- apt update
- ;;
- esac
-
- pkg install containerd
- pkg install kubeadm
- pkg install kubectl
- pkg install kubelet
-
- info "$BASHTARD_PLAYBOOK" "Enabling forwarding"
- cat <<-EOF > "$(config "fs.etcdir")/sysctl.d/kubernetes.conf"
- net.bridge.bridge-nf-call-iptables = 1
- net.bridge.bridge-nf-call-ip6tables = 1
- net.ipv4.ip_forward = 1
- net.ipv6.conf.all.forwarding = 1
- EOF
-
- sysctl --system
-
- info "$BASHTARD_PLAYBOOK" "Enabling kernel modules"
- cat <<-EOF > "$(config "fs.etcdir")/modules-load.d/kubernetes.conf"
- br_netfilter
- overlay
- EOF
-
- modprobe overlay
- modprobe br_netfilter
-
- if [[ "$(config "$BASHTARD_PLAYBOOK.node-ip" "")" != "" ]]
- then
- notice "$BASHTARD_PLAYBOOK" "Setting node ip in $(config "fs.etcdir")/default/kubelet"
- cat <<-EOF > "$(config "fs.etcdir")/default/kubelet"
- KUBELET_EXTRA_ARGS="--node-ip=$(config "$BASHTARD_PLAYBOOK.node-ip")"
- EOF
- fi
-
- notice "$BASHTARD_PLAYBOOK" "Initialize kubeadm"
- kubeadm join \
- --discovery-token-ca-cert-hash "$(config "$BASHTARD_PLAYBOOK.cert-hash")" \
- --node-name="${BASHTARD_PLATFORM[fqdn]}" \
- --token "$(config "$BASHTARD_PLAYBOOK.token")" \
- "$(config "$BASHTARD_PLAYBOOK.master.address"):$(config "$BASHTARD_PLAYBOOK.master.port" "6443")"
-}
-
-playbook_sync() {
- :;
-}
-
-playbook_del() {
- kubectl drain "${BASHTARD_PLATFORM[fqdn]}" \
- --delete-emptydir-data \
- --force \
- --ignore-daemonsets
-
- kubeadm reset --force
- iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
- ipvsadm -C
- rm -fr -- \
- "$(config "fs.etcdir")/modules-load.d/kubernetes.conf" \
- "$(config "fs.etcdir")/sysctl.d/kubernetes.conf" \
- "$(config "fs.etcdir")/cni/net.d" \
- "$(config "fs.etcdir")/kubernetes" \
- "/var/lib/etcd" \
- "/var/lib/cni"
-
- pkg uninstall kubectl
- pkg uninstall kubeadm
- pkg uninstall kubelet
- pkg uninstall containerd
-
- case "${BASHTARD_PLATFORM[key]}" in
- linux-debian_gnu_linux)
- # Fetch the apt key
- info "$BASHTARD_PLAYBOOK" "Removing apt repository"
- rm -fr -- \
- /etc/apt/keyrings/kubernetes-apt-keyring.gpg \
- /etc/apt/sources.list.d/kubernetes.list
- ;;
- esac
-}
diff --git a/playbooks.d/seaweedfs-volume/playbook.bash b/playbooks.d/seaweedfs-volume/playbook.bash
index 8485ba0..875a2cd 100644
--- a/playbooks.d/seaweedfs-volume/playbook.bash
+++ b/playbooks.d/seaweedfs-volume/playbook.bash
@@ -69,13 +69,14 @@ playbook_sync() {
file_template "volume.conf" \
dc="$(config "$BASHTARD_PLAYBOOK.dc")" \
dir="/var/lib/seaweedfs/volume/$volume" \
- disk="$(config "$BASHTARD_PLAYBOOK.volume.$volume.disk" "hdd")" \
- max="$(config "$BASHTARD_PLAYBOOK.volume.$volume.max" "0")" \
- free_space="$(config "$BASHTARD_PLAYBOOK.free-space" "10GiB")" \
+ disk="$(config "$BASHTARD_PLAYBOOK.volumes.$volume.disk" "hdd")" \
filesize_limit="$(config "$BASHTARD_PLAYBOOK.filesize-limit" "256")" \
+ free_space="$(config "$BASHTARD_PLAYBOOK.free-space" "10GiB")" \
ip="$(config "$BASHTARD_PLAYBOOK.ip")" \
+ max="$(config "$BASHTARD_PLAYBOOK.volumes.$volume.max" "0")" \
mserver="$(join_args "${peers[@]}")" \
- port="$(config "$BASHTARD_PLAYBOOK.volume.$volume.port" "8080")" \
+ port_grpc="$(config "$BASHTARD_PLAYBOOK.volumes.$volume.port.grpc" "17080")" \
+ port_http="$(config "$BASHTARD_PLAYBOOK.volumes.$volume.port.http" "8080")" \
rack="$(config "$BASHTARD_PLAYBOOK.rack")" \
> "$buffer"
diff --git a/playbooks.d/seaweedfs-volume/share/volume.conf b/playbooks.d/seaweedfs-volume/share/volume.conf
index d659faa..e9310cb 100644
--- a/playbooks.d/seaweedfs-volume/share/volume.conf
+++ b/playbooks.d/seaweedfs-volume/share/volume.conf
@@ -1,5 +1,6 @@
ip=[${ip}]
-port=${port}
+port=${port_http}
+port.grpc=${port_grpc}
mserver=${mserver}
dataCenter=${dc}
diff --git a/playbooks.d/seaweedfs/playbook.bash b/playbooks.d/seaweedfs/playbook.bash
index 7405cb5..e6c0c4c 100644
--- a/playbooks.d/seaweedfs/playbook.bash
+++ b/playbooks.d/seaweedfs/playbook.bash
@@ -9,7 +9,7 @@ playbook_add() {
# Install seaweedfs
case "${BASHTARD_PLATFORM[arch]}" in
x86_64) dl_arch=amd64 ;;
- *) die "NYI" ;;
+ aarch64) dl_arch=arm64 ;;
esac
dl_baseurl="https://github.com/seaweedfs/seaweedfs/releases/download"
@@ -34,7 +34,8 @@ playbook_add() {
}
playbook_sync() {
- :;
+ file_template "seaweedfs-mount@.service"\
+ > "/etc/systemd/system/seaweedfs-mount@.service"
}
playbook_del() {
diff --git a/playbooks.d/seaweedfs/share/master.conf b/playbooks.d/seaweedfs/share/master.conf
deleted file mode 100644
index fb72a28..0000000
--- a/playbooks.d/seaweedfs/share/master.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-ip=${ip}
-port=${port}
-
-peers=${peers}
-mdir=${mdir}
-
-defaultReplication=${replication}
-volumeSizeLimitMB=${volume_size}
diff --git a/playbooks.d/seaweedfs/share/seaweedfs-mount@.service b/playbooks.d/seaweedfs/share/seaweedfs-mount@.service
new file mode 100644
index 0000000..438dc90
--- /dev/null
+++ b/playbooks.d/seaweedfs/share/seaweedfs-mount@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=SeaweedFS Mount %i
+After=network.target
+
+[Service]
+Type=simple
+User=root
+Group=root
+
+ExecStart=/usr/bin/weed mount -options="/etc/seaweedfs/mount-%i.conf"
+ExecStopPost=sh -c "/bin/umount $(awk -F= '/^dir=/ { print $NF }' < /etc/seaweedfs/mount-%i.conf)"
+SyslogIdentifier=seaweedfs-mount-%i
+
+[Install]
+WantedBy=multi-user.target
diff --git a/playbooks.d/seaweedfs/share/server.conf b/playbooks.d/seaweedfs/share/server.conf
deleted file mode 100644
index 12be6fa..0000000
--- a/playbooks.d/seaweedfs/share/server.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-dir=${datadir}
-ip=${ip}
-
-master=true
-master.volumeSizeLimitMB=${volume_size}
-
-filer=true
-
-s3=true
-
-volume=true
-volume.disk=hdd
-volume.max=0
-volume.minFreeSpace=${reserved_space}
diff --git a/playbooks.d/vpn-tinc/playbook.bash b/playbooks.d/vpn-tinc/playbook.bash
index 6a6a957..485c6e6 100644
--- a/playbooks.d/vpn-tinc/playbook.bash
+++ b/playbooks.d/vpn-tinc/playbook.bash
@@ -17,15 +17,17 @@ playbook_add()
local name
local tinc
local tincd
+ local port
data="$(playbook_path "data")"
- etc="$(config "fs.etcdir")/tinc/tyilnet"
host="$(tr "." "_" <<< "${BASHTARD_PLATFORM[fqdn]}")"
ipv4="$(config "$BASHTARD_PLAYBOOK.ipv4")"
ipv6="$(config "$BASHTARD_PLAYBOOK.ipv6")"
name="$(config "$BASHTARD_PLAYBOOK.name")"
tinc="$(config "app.tinc")"
tincd="$(config "app.tincd")"
+ port="$(config "$BASHTARD_PLAYBOOK.port" "655")"
+ etc="$(config "fs.etcdir")/tinc/$name"
case "${BASHTARD_PLATFORM[key]}" in
freebsd) iptool=ifconfig ;;
@@ -41,10 +43,6 @@ playbook_add()
"$etc" \
"$etc/hosts"
- file_template tinc.conf \
- "name=$host" \
- > "$etc/tinc.conf"
-
file_template "tinc-up-$iptool" \
"ip4=$ipv4" \
"ip6=$ipv6" \
@@ -58,6 +56,7 @@ playbook_add()
file_template "host" \
"ip4=$ipv4" \
"ip6=$ipv6" \
+ "port=$port" \
> "$etc/hosts/$host"
chmod +x \
@@ -139,6 +138,17 @@ playbook_sync()
cp -v -- "$data/hosts/$file" "$etc/hosts/$file"
done
+ info "$BASHTARD_PLAYBOOK/sync" "Reconfiguring peers"
+ {
+ printf "Name = %s\n\n" "$host"
+
+ while read -r peer
+ do
+ printf "ConnectTo = %s\n" "$(config "$BASHTARD_PLAYBOOK.peers.$peer")"
+ done < <( config_subkeys "$BASHTARD_PLAYBOOK.peers" )
+ } > "$etc/tinc.conf"
+
+
[[ "$BASHTARD_COMMAND" == "add" ]] && return
[[ "$hash" == "$(dir_hash "$etc/hosts")" ]] && return
diff --git a/playbooks.d/vpn-tinc/share/host b/playbooks.d/vpn-tinc/share/host
index 627aab6..fbcdd4a 100644
--- a/playbooks.d/vpn-tinc/share/host
+++ b/playbooks.d/vpn-tinc/share/host
@@ -1,3 +1,4 @@
+Port = ${port}
+
Subnet = ${ip4}/32
Subnet = ${ip6}/128
-