diff options
-rw-r--r-- | etc/defaults | 3 | ||||
-rw-r--r-- | etc/os.d/linux-gentoo | 3 | ||||
-rw-r--r-- | playbook.bash | 57 |
3 files changed, 12 insertions, 51 deletions
diff --git a/etc/defaults b/etc/defaults index 51e58ad..913de50 100644 --- a/etc/defaults +++ b/etc/defaults @@ -1,4 +1,3 @@ pkg.curl=curl -pkg.helm=helm -pkg.k3s=k3s pkg.kubectl=kubectl +pkg.nfs-common=nfs-common diff --git a/etc/os.d/linux-gentoo b/etc/os.d/linux-gentoo index 4aaaabf..5b21391 100644 --- a/etc/os.d/linux-gentoo +++ b/etc/os.d/linux-gentoo @@ -1,2 +1 @@ -pkg.k3s=sys-cluster/k3s -pkg.helm=app-admin/helm +pkg.nfs-common=net-fs/nfs-utils diff --git a/playbook.bash b/playbook.bash index 0cbf315..6df86ab 100644 --- a/playbook.bash +++ b/playbook.bash @@ -1,7 +1,7 @@ #!/usr/bin/env bash playbook_add() { - pkg install curl + pkg install curl nfs-common case "${BASHTARD_PLATFORM[key]}" in linux-debian_gnu_linux|linux-ubuntu) @@ -23,17 +23,18 @@ playbook_add() { mkdir -pv -- /etc/rancher/k3s cat <<-EOF > /etc/rancher/k3s/config.yaml node-name: "${BASHTARD_PLATFORM[fqdn]}" - cluster-cidr: 172.19.0.0/16 - service-cidr: 172.20.0.0/16 - cluster-domain: cluster.local + node-ip: "$(config "$BASHTARD_PLAYBOOK.node-ip" "$(config "bashtard.ssh.host")")" + 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")" EOF info "$BASHTARD_PLAYBOOK" "Installing k3s" - curl -sfL https://get.k3s.io | sh - # I hate this + curl -sfL https://get.k3s.io | sh -s - server --cluster-init # I hate this notice "$BASHTARD_PLAYBOOK" "Creating data directories" mkdir -pv -- "$(playbook_path "data")/manifests.d" - mkdir -pv -- "$(playbook_path "data")/helm.d" notice "$BASHTARD_PLAYBOOK" "Waiting for node to become available" { grep -q -m 1 "${BASHTARD_PLATFORM[fqdn]}[[:space:]]\+Ready"; kill $!; } < <(k3s kubectl get node -w) @@ -43,54 +44,16 @@ playbook_add() { playbook_sync() { local data - local helm_cmd local kubeconfig + local manifest_prefix local values data="$(playbook_path "data")" kubeconfig="$(config "fs.etcdir")/rancher/k3s/k3s.yaml" + manifest_prefix="$(config "$BASHTARD_PLAYBOOK.manifest-prefix" "")" notice "$BASHTARD_PLAYBOOK/manifests" "Applying manifests.d" - kubectl --kubeconfig "$kubeconfig" apply --recursive --filename "$data/manifests.d" - - notice "$BASHTARD_PLAYBOOK/helm" "Ensure all Helm repos exist" - while read -r repo - do - helm repo add "$repo" "$(config "$BASHTARD_PLAYBOOK.helm.repos.$repo.url")" - done < <(config_subkeys "$BASHTARD_PLAYBOOK.helm.repos") - - notice "$BASHTARD_PLAYBOOK/helm" "Updating Helm repository contents" - helm repo update - - notice "$BASHTARD_PLAYBOOK/helm" "Upgrading Helm charts" - while read -r app - do - helm_cmd=( - "helm" "upgrade" - "--install" - "--kubeconfig" "$kubeconfig" - "--timeout" "$(config "$BASHTARD_PLAYBOOK.helm.timeout" "30s")" - "--namespace" "$(config "$BASHTARD_PLAYBOOK.helm.apps.$app.namespace" "default")" - ) - - # Add values - values="$(config "$BASHTARD_PLAYBOOK.helm.apps.$app.values" "")" - - if [[ -n "$values" ]] - then - helm_cmd+=("--values" "$data/helm.d/$values") - fi - - # Set which chart to upgrade - helm_cmd+=("$app") - helm_cmd+=("$(config "$BASHTARD_PLAYBOOK.helm.apps.$app.chart")") - - notice "$BASHTARD_PLAYBOOK/helm/$app" "> ${helm_cmd[*]}" - ${helm_cmd[@]} > /dev/null - - unset helm_cmd - unset values - done < <(config_subkeys "$BASHTARD_PLAYBOOK.helm.apps") + kubectl --kubeconfig "$kubeconfig" apply --recursive --filename "$data/manifests.d/$manifest_prefix" } playbook_del() { |