#!/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 }