#!/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 info "$BASHTARD_PLAYBOOK" "Installing ArgoCD on k3s" k3s kubectl create namespace argocd k3s kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml } playbook_sync() { info "$BASHTARD_PLAYBOOK" "Applying system manifests" k3s kubectl apply -Rf "$BASHTARD_ETCDIR/playbooks.d/$BASHTARD_PLAYBOOK/share/system" info "$BASHTARD_PLAYBOOK" "Applying argocd manifests" k3s kubectl apply -Rf "$BASHTARD_ETCDIR/playbooks.d/$BASHTARD_PLAYBOOK/share/argocd" 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 }