Some more goodies
fix-kubectl - updated tool versions foreach-secret - a tool to export an ix-app's secret, executing a command line on the content. Was created to periodically update AdGuard Home HTTPS certificate over SSH. show-console - designed to be executed with `watch`: `sudo watch ./show-console.sh' Will output what is shown on the console.
This commit is contained in:
parent
a286451d8f
commit
01cb3798ed
|
@ -44,7 +44,7 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
|
|||
. <( kubectl cnpg completion ${SHELL##*/} )
|
||||
fi
|
||||
if [[ -z "$(type -t 'kubectl-cnpg')" || -n "$UPGRADE" ]]; then
|
||||
DL_VER=1.21.1
|
||||
DL_VER=1.22.0
|
||||
GH_URL=https://github.com/cloudnative-pg/cloudnative-pg
|
||||
DL_FILE="kubectl-cnpg_${DL_VER}_linux_x86_64.deb"
|
||||
URL=${GH_URL}/releases/download/v${DL_VER}/${DL_FILE}
|
||||
|
@ -55,7 +55,7 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
|
|||
fi
|
||||
|
||||
if [[ -z "$(type -t 'kubetui')" || -n "$UPGRADE" ]]; then
|
||||
DL_VER=1.4.2
|
||||
DL_VER=1.5.0
|
||||
GH_URL=https://github.com/sarub0b0/kubetui
|
||||
DL_FILE=kubetui-x86_64-unknown-linux-musl-rustls
|
||||
URL=${GH_URL}/releases/download/v${DL_VER}/${DL_FILE}
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if [[ $# -lt 1 ]]; then
|
||||
MYNAME="$(basename $0)"
|
||||
cat - <<USAGE
|
||||
$MYNAME
|
||||
Grab dns-ingress tls certs from local k3s secrets and copy over to
|
||||
szdocker's adguard
|
||||
|
||||
Usage:
|
||||
$MYNAME <app-name> [<secret-name> [cmdline with \$FILE receiving content]]
|
||||
|
||||
Example:
|
||||
$MYNAME dns-ingress external-service-tls-0 '{
|
||||
echo /opt/adguardhome/conf/\$FILE;
|
||||
ssh szdocker@szdocker.lan sudo tee /srv/containeriszed/0.local/adguardhome/conf/\$FILE > /dev/null;
|
||||
}'
|
||||
|
||||
Arguments
|
||||
app-name - name of the ix-app
|
||||
secret-name - name of the secret, when ommitted, a sorted list of
|
||||
secrets will be listed
|
||||
cmdline... - Command to run on the secret, \$FILE will be the
|
||||
secret name, where stdin will contain the content of
|
||||
the secret
|
||||
|
||||
USAGE
|
||||
false
|
||||
else
|
||||
APPNAME="${1}"
|
||||
NS="--namespace=ix-${APPNAME:?Appname was not specified}"
|
||||
if [[ -z "${2}" ]]; then
|
||||
# shellcheck disable=SC2086 # ${NS} unqouted on purpose
|
||||
k3s kubectl get secrets ${NS} | sort
|
||||
exit
|
||||
fi
|
||||
SECRETNAME="${APPNAME}-${2}"
|
||||
PIPECMD="${*:3}"
|
||||
PIPECMD="${PIPECMD:-cat -}"
|
||||
# shellcheck disable=SC2086 # ${NS} unqouted on purpose
|
||||
mapfile -t FILES < <(k3s kubectl get secrets ${NS} "${SECRETNAME}" --output=json | jq -r '.data | keys[]')
|
||||
for FILE in "${FILES[@]}"; do
|
||||
# shellcheck disable=SC2086 # ${NS} and $PIPECMD unqouted on purpose
|
||||
k3s kubectl get secrets ${NS} "${SECRETNAME}" --output=json | jq -r '.data["'"${FILE}"'"] | @base64d' | eval $PIPECMD
|
||||
done
|
||||
fi
|
|
@ -0,0 +1,34 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
res() {
|
||||
|
||||
old=$(stty -g)
|
||||
stty raw -echo min 0 time 5
|
||||
|
||||
printf '\0337\033[r\033[999;999H\033[6n\0338' > /dev/tty
|
||||
IFS='[;R' read -r _ rows cols _ < /dev/tty
|
||||
|
||||
stty "$old"
|
||||
|
||||
# echo "cols:$cols"
|
||||
# echo "rows:$rows"
|
||||
stty cols "$cols" rows "$rows"
|
||||
}
|
||||
|
||||
res2() {
|
||||
|
||||
old=$(stty -g)
|
||||
stty raw -echo min 0 time 5
|
||||
|
||||
printf '\033[18t' > /dev/tty
|
||||
IFS=';t' read -r _ rows cols _ < /dev/tty
|
||||
|
||||
stty "$old"
|
||||
|
||||
# echo "cols:$cols"
|
||||
# echo "rows:$rows"
|
||||
stty cols "$cols" rows "$rows"
|
||||
}
|
||||
|
||||
stty cols 80
|
||||
cat /dev/vcs
|
Loading…
Reference in New Issue