#!/usr/bin/env bash vars=( initca="replace_me" apiserver="replace_me" cluster="replace_me" ingress_nodes="[ replace_me" ingress_replica_count="replace_me" filseserver="replace_me" acme_email="replace_me" grafana_smtp_user="replace_me" grafana_smtp_password="replace_me" ) substitute_all () { read x subs=("$@") for i in "${subs[@]}"; do k=$(echo "$i" | cut -d= -f1) v=$(echo "$i" | cut -d= -f2) echo "$x" | sed "s/@$k@/$v/g" done } substitute_defaults () { substitute_all "${vars[@]}" } kubectl_apply () { read x namespace=$1; shift kubectl get ns $namespace 2>&1 >/dev/null || kubectl create ns $namespace cat $x | substitute_defaults | kubectl -n $namespace apply -f - } kubectl_apply_files () { namespace=$1; shift charts=("$@") for i in "${charts[@]}"; do cat $i | kubectl_apply $namespace done } # vim:ft=sh