blob: 1188790da2ca645ac880908fd5b458593a5875b4 (
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
46
47
48
49
50
51
52
53
54
55
|
#!/usr/bin/env bash
playbook_add() {
pkg install 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
curl -L https://github.com/fluxcd/flux2/releases/download/v0.31.5/flux_0.31.5_linux_amd64.tar.gz | tar xzf - -C /usr/local/bin
notice "$BASHTARD_PLAYBOOK" "Waiting for node to become available"
{ grep -q -m 1 "${BASHTARD_PLATFORM[fqdn]}[[:space:]]\+Ready"; kill $!; } < <(k3s kubectl get node -w)
info "$BASHTARD_PLAYBOOK" "Installing flux-system on k3s"
flux bootstrap git \
--branch="$(config "k3s.flux.repo.branch")" \
--cluster-domain="$(config "k3s.domain")" \
--kubeconfig=/etc/rancher/k3s/k3s.yaml \
--path="$(config "k3s.flux.repo.path" "playbooks.d/$BASHTARD_PLAYBOOK/share/manifests/clusters/${BASHTARD_PLATFORM[fqdn]}")" \
--private-key-file="$(config "k3s.flux.repo.privkey" "$HOME/.ssh/id.d/$USER@$(hostname -s)-ed25519")" \
--silent \
--url="$(config "k3s.flux.repo.url")"
# Just debugging flux-system for now
return 0
info "$BASHTARD_PLAYBOOK" "Applying sealed-secrets manifest to k3s"
k3s kubectl apply -Rf "$BASHTARD_ETCDIR/playbooks.d/$BASHTARD_PLAYBOOK/share/system/sealed-secrets"
info "$BASHTARD_PLAYBOOK" "Waiting for sealedsecrets.bitnami.com CRDs to become available"
{ grep -q -m 1 "sealedsecrets.bitnami.com"; kill $!; } < <(k3s kubectl get crd -w)
playbook_sync
}
playbook_sync() {
:;
}
playbook_del() {
/usr/local/bin/k3s-uninstall.sh
}
|