Привет, небольшой апдейт, добавил возможность редактировать service в kui:

Творите, выдумывайте, пробуйте!)
Опытный пользователь ПК
Привет, как узнать % использования PVC? Kui поможет! Добавил команду PVC Usage

PVC это абстракция поэтому прямого пути (команды) узнать использование PVC нет. Как сделано? Ищем стручек (pod) который использует искомый PVC:
pvc_used_in=$(
kubectl -n $namespace get po -o \
jsonpath='{range .items[*]}{.metadata.name}{" "}{range .spec.volumes[*]}{.name}{" "}{.persistentVolumeClaim.claimName}{" \n"}{end}{end}' | \
grep " $pvc_name "
)
raw=($pvc_used_in)
pod_name=${raw[0]}
mnt_name=${raw[1]}Находим точку g монтирования:
pod_mount_name=$(
kubectl -n $namespace get po/$pod_name -o \
jsonpath='{range .spec.containers[*]}{range .volumeMounts[*]}{.name}{" "}{.mountPath}{"\n"}{end}{end}' | \
awk "/$mnt_name /"'{print $2}'
)Проверяем использование диска (PVC):
pvc_usage=$(
kubectl -n $namespace exec po/$pod_name -- df -h $pod_mount_name
)Выводим результат:
echo "PVC capacity: $pvc_capacity"
echo "PVC used in:"; echo "$pvc_used_in"
echo "PVC usage:" ; echo "$pvc_usage"
PVC capacity: 750Gi
PVC used in:
kafka-dev-broker-1 data data-kafka-dev-broker-1
PVC usage:
Filesystem Size Used Avail Use% Mounted on
/dev/rbd4 738G 44G 695G 6% /bitnami/kafkaБонусом добавил возможность прибивать PVCишки kui'ем, добавил команды Delete и Terminate.
Творите, выдумывайте, пробуйте!)
Эгегей! Радость, kui снова подрос! Добавлена команда 'SSL update' для обновления сертификатов и ключей в секретах типа 'kubernetes.io/tls'. Как это работает?
Кладете в какую-нибудь папку новый сертификай, файл должен называться tls.crt и ключ с именем tls.key
Запускаете kui в этой папке, находите секрет с сертификатом который необходимо обновить
Обновляете через 'SSL update'

Под капотом, обновление выполняется вот такой командой:
printf -v ssl_patch_data '{"data": {"tls.crt": "%s", "tls.key": "%s"}}' "$(base64 -w0 tls.crt)" "$(base64 -w0 tls.key)"
kubectl patch secret/<secret_name> -n <namespace> --patch="$ssl_patch_data"Творите, выдумывайте, пробуйте!)
Привет, смотрите че наговнокодил, вот такую вот проверку конфига для haproxy
if check '/etc/haproxy/haproxy.cfg'; then
red='\e[91m'
ylw='\e[93m'
DEF='\e[0m'
/usr/sbin/haproxy -c -f /etc/haproxy/haproxy.cfg || printf "
${red}WARNING!
${red}Haproxy config has errors!
${ylw} __
${ylw}| \_____${red}︹${DEF}
${ylw}\ ${red}\ \ ${DEF}
${ylw}/ ______${red}/ / ${DEF}
${ylw}|__/ ${red}︺ ${DEF}
"
fiВыглядит вот так:

Как вам?)
Творите, выдумывайте, пробуйте!)
Привет, развил тему пропихивания стручков (pod'ов) в кубернетис, добавил в меню выбора типа объектов команду apply. Теперь kui'ем можно приколачивать мYAMLики, создавая любые типы объектов. По умолчанию предлагает создать стручок:

Но с помощью кнопки edit можно изменить мямлик, изменения сохранятся в файл ~/.kyml.
С удивлением обнаружил что хаб Кодобред переименован в Говнокод О_о Чтож, так даже интереснее.
Творите, выдумывайте, пробуйте!)
Привет, приспичило создать тестовый стручек (pod), проверить кое-что. Создал и добавил это в kui, в секцию "быстрых" команд:

Тестовый стручек создается вот такой командой:
kube run $quick_pod_name $ns --image=$quick_pod_image --command -- $quick_pod_command 2>&1Для изменения названия, образа или команды стручка подредактируйте вот эти переменные в начале скрипта:
quick_pod_name=busytest # Pod name for simple test pod
quick_pod_image=busybox:1.32 # Pod image for simple test pod
quick_pod_command="sleep 3600" # Pod command for simple test podТворите, выдумывайте, пробуйте!)
Привет, зачастую после тыкания в какой-нибудь стручок (pod) приходится подниматься на уровень выше в деплой, стейтфулсет или даемонсет. Для этого в kui надо было сначала посмотреть чем контролируется стручок, сделав describe, потом сменить тип объекта, найти нужный... Хватить теребонькать эти стручки! Добавил для стручков команду Controlled by, она сразу тыкает kui в нужное место!

Творите, выдумывайте, пробуйте!)
Привет, долгожданные новости из мира кубернетиса. Иногда надо посмотреть за подиками, как они там живут поживают, все ли (ре)стартанули или кто завис. В kui для этого сделана кнопка RELOAD. Но постоянно жмякать кнопку это же дро...во какое-то правда? Хватит это терпеть! Добавил команду watch it, теперь можно залипнуть на какое-то время, глядя как подики ползают туда-сюда.

Оно будет с паузой в 3 секунды (+ время на обновление) постоянно показывать вывод kubectl get ...
NAME READY STATUS RESTARTS AGE
chi-cluster-dev01-0-0-0 2/2 Running 0 23d
chi-cluster-dev01-0-1-0 2/2 Running 0 23d
chi-cluster-dev01-0-2-0 2/2 Running 0 23d
Press x to stop watching this...Нажмите x когда надоест.
Творите, выдумывайте, пробуйте!)
Привет, все знают(?) что данные в скрипт можно передать через аргументы, как-то так:
$ cat test
#!/bin/bash
var=$1
echo $var
$ ./test bla
blaНо в какой-то момент аргументов становится слишком много, а так чешется всунуть что-то еще)
Куда всунуть? Как? В каком порядке? Сначала сунуть это, потом то? Городить гетопс?
В этом случае бывает удобно использовать переменные окружения!
$ cat test
#!/bin/bash
var1=$1
var2=$2
var3=$3
var4=$4
var5=$5
echo $var1 $var2 $var3 $var4 $var5 $one_more_var
$ one_more_var=ble ./test
bleТворите, выдумывайте, пробуйте!)
Привет, иногда хочется утащить из скрипта переменные или функции. Это можно легко сделать используя source. Но есть заковыка. Скрипт-источник будет выполнен, что не всегда удобно. Пример:
$ cat test
#!/bin/bash
var1=bim
var2=bom
echo you should not see this $var1 $var2Пробуем засорсить:
$ var1= var2=; . ./test; echo $var1 $var2
you should not see this bim bom
bim bomМы получили вожделенные переменные но при этом выполнился нежелательный код. Как этого избежать? Можно немного модифицировать скрипт:
$ cat test
#!/bin/bash
var1=bim
var2=bom
[[ $1 == only_vars ]] && return
echo you should not see this $var1 $var2Теперь если сорсить скрипт с параметром only_vars, нежелательный код будет опущен, пробуем:
$ var1= var2=; . ./test only_vars; echo $var1 $var2
bim bomВажно использовать именно return, exit закроет текущую оболочку.
Творите, выдумывайте, пробуйте!)