#shopt -o -s errexit #—Terminates the shell script if a command returns an error code.
#shopt -o -s xtrace #—Displays each command before it’s executed.
shopt -o -s nounset #-No Variables without definition
# Überprüfen der Parameter
if [ "${1}" = "" ] ;
then
echo "Usage: $0 Quelle Ziel "
echo "eg: $0 /tmp/myconfigfile /tmp/my_configmap.yaml"
exit -1
fi
if [ "${2}" = "" ] ;
then
echo "Usage: $0 Quelle Ziel "
echo "eg: $0 /tmp/myconfigfile /tmp/my_configmap.yaml"
exit -1
fi
idir=${1}
ofile=${2}
if [ ! -d "${idir}" ]; then # Das ist kein Verzeichnis
echo "Usage: $0 Quelle Ziel "
echo "\"$@\"" "ist kein Verzeichnis"
exit -1
fi
# Schreiben des Ausgabefiles
exec 4> ${ofile}
echo "---">&4
echo "# \${image}-\${tag}" >&4
echo "# generiert mit $0 $1 $2" >&4
echo "apiVersion: v1" >&4
echo "kind: ConfigMap" >&4
echo "metadata:" >&4
string="${ofile}"
#echo "${string}"
prefix="/"
suffix="."
repl=${string%"$prefix"*}
#echo "${repl}"
keyn=${string#"$repl$prefix"}
#echo "${keyn}"
keyn=${keyn%"$suffix"*}
#echo "${keyn}"
keyclean=${keyn//_/$'-'}
outname=${keyclean}
echo " name: ${outname}-cm" >&4
echo " namespace: \${namespace}" >&4
# loop über das Verzeichnis
#echo ${idir}
echo "data: # ${idir}" >&4
FILES="${idir}/*.conf
${idir}/*.ini
${idir}/*.html
${idir}/*.php
${idir}/*.sh
${idir}/*.txt
${idir}/*.json
${idir}/*.webmanifest"
for filename in $FILES ; do
if [ -f "${filename}" ]
then
string="${filename}"
#echo "${string}"
prefix="/"
suffix=""
repl=${string%"$prefix"*}
#echo "${repl}"
keyn=${string#"$repl$prefix"}
#echo "${keyn}"
keyn=${keyn%"$suffix"*}
#echo "${keyn}"
keyclean=${keyn//_/$'-'}
echo " ${keyn}: |" >&4
while read
do
echo " ${REPLY}">&4
done < ${filename}
fi
done
# loop über das Verzeichnis
echo "binaryData: # ${idir}" >&4
FILES="${idir}/*.asc
${idir}/*.rev
${idir}/*.pem
${idir}/*.crt
${idir}/*.key
${idir}/*.png
${idir}/*.jpg
${idir}/authorized_keys
${idir}/*.ico"
for filename in $FILES ; do
if [ -f "${filename}" ]
then
string="${filename}"
#echo "${string}"
prefix="/"
suffix=""
repl=${string%"$prefix"*}
#echo "${repl}"
keyn=${string#"$repl$prefix"}
#echo "${keyn}"
keyn=${keyn%"$suffix"*}
#echo "${keyn}"
keyclean=${keyn//_/$'-'}
cat ${filename} | base64 > /tmp/bd.txt
echo " ${keyn}: |" >&4
while read
do
echo " ${REPLY}">&4
done < /tmp/bd.txt
fi
done
echo "---">&4
exec 4>&-
Damit das überall funktioniert gibt es auch einen Alias in ${home}/.bash_aliases-
#Shortcut um sich tipparbeit zu sparen
alias kubectl='microk8s.kubectl'
alias k='kubectl'
alias kall='microk8s kubectl get all --all-namespaces && microk8s kubectl get ingresses --all-namespaces && microk8s kubectl get endpoints --all-namespaces'
#Dieser alias ist ein Muster, würde alle logs der traefik-pods anzeigen
#Zeigt jetzt die Ingress-Pods
alias klt='(kubectl get pods --all-namespaces) | grep -i nginx-ingress-microk8s-controller | while read a b c; do kubectl logs "$b" -n ingress; done'
alias helm='microk8s.helm3'
alias mk='/home/alfred/devtemplates/make.sh '
alias mkd='/home/alfred/devtemplates/make_docker.sh '
alias mky='/home/alfred/devtemplates/make_yaml.sh '
alias make_configmap='/home/alfred/devtemplates/make_configmap_dir.sh '
Damit das richtig funktioniert, müssen auch die Source-Verzeichnisse eine gewisse Konvention haben. Die Details werden im nächsten Abschnitt anhand des Default-Backend-Serices erklärt.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.