summaryrefslogtreecommitdiff
path: root/playbooks.d/k3s-master/playbook.bash
blob: 01e051f3b1b21f1222a4dc36992bd72310ef4f1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env bash

playbook_add() {
	pkg install helm k3s

	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 "k3s.network.ip" "$(config "vpn.ipv4" "127.0.0.1")")
	bind-address: $(config "k3s.network.bind" "$(config "vpn.ipv4" "0.0.0.0")")
	cluster-cidr: $(config "k3s.network.cidr.pods")
	service-cidr: $(config "k3s.network.cidr.svcs")
	cluster-dns: $(config "k3s.network.service.dns")
	cluster-domain: $(config "k3s.domain")
	disable:
	- traefik
	EOF

	info "$BASHTARD_PLAYBOOK" "Installing k3s"
	curl -sfL https://get.k3s.io | sh -  # I hate this

	export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
	export HELM_KUBECONTEXT=default

	info "$BASHTARD_PLAYBOOK" "Installing ArgoCD on k3s"
	k3s kubectl create namespace argocd
	helm repo add argo https://argoproj.github.io/argo-helm
	helm install \
		-n argocd \
		-f "$BASHTARD_ETCDIR/playbooks.d/$BASHTARD_PLAYBOOK/share/argocd/values.yaml" \
		argocd argo/argo-cd
}

playbook_sync() {
	info "$BASHTARD_PLAYBOOK" "Applying system manifests"
	k3s kubectl apply -Rf "$BASHTARD_ETCDIR/playbooks.d/$BASHTARD_PLAYBOOK/share/system"

	info "$BASHTARD_PLAYBOOK" "Applying app manifests"
	k3s kubectl apply -R -n argocd -f "$BASHTARD_ETCDIR/playbooks.d/$BASHTARD_PLAYBOOK/share/apps"
}

playbook_del() {
	/usr/local/bin/k3s-uninstall.sh
}