Обновить
97
0
Иван Маров@vaniacer

Опытный пользователь ПК

Отправить сообщение

Привет, по случаю прикрутил к kui'ю немного helm'а. Можно посмотреть статус, историю, манифест и откатить релиз.

Happy Helming!
Happy Helming!

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Привет, подкрутил немного свой kui. Добавил применение фильтра к подам в режиме подсматривания (watch it).

watch it
watch it

Теперь можно подсматривать только за интересными стрючками.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Эгегей, kui еще немного окреп! Добавил команду 'rollout to revision'. Теперь можно откатывать деплои на определенную версию а не только на предыдущую.

rollout to revision
rollout to revision

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Привет, небольшой апдейт. Добавил еще один тип k8s объектов который теперь можно тыкать kui'ем - volumeattachment

volumeattachment
volumeattachment

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

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

PVC usage
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.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 4: ↑3 и ↓1+3
Комментарии0

Эгегей! Радость, kui снова подрос! Добавлена команда 'SSL update' для обновления сертификатов и ключей в секретах типа 'kubernetes.io/tls'. Как это работает?

  • Кладете в какую-нибудь папку новый сертификай, файл должен называться tls.crt и ключ с именем tls.key

  • Запускаете kui в этой папке, находите секрет с сертификатом который необходимо обновить

  • Обновляете через 'SSL update'

SSL update
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"

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 5: ↑4 и ↓1+5
Комментарии1

Привет, потенциал kui еще немного увеличился! Случилось то что случилось, в продской cronjoпеb'е что-то застряло. Добавил в kui ручной запуск кронжоб и kui'ем протолкнул застрявшее в кронжобе ...

manual run cronjob
manual run cronjob

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Привет, смотрите че наговнокодил, вот такую вот проверку конфига для 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

Выглядит вот так:

ох..ая ошибка
ох..ая ошибка

Как вам?)

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 31: ↑6 и ↓25-19
Комментарии11

Привет, малюсенькое увеличение потенциала kui'я, добавил pv и pvc в список просмотра.

pv and pvc
pv and pvc

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

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

создай свой стручок
создай свой стручок

Но с помощью кнопки edit можно изменить мямлик, изменения сохранятся в файл ~/.kyml.

С удивлением обнаружил что хаб Кодобред переименован в Говнокод О_о Чтож, так даже интереснее.

Творите, выдумывайте, пробуйте!)

Теги:
Рейтинг0
Комментарии0

Привет, приспичило создать тестовый стручек (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

Творите, выдумывайте, пробуйте!)

Теги:
Рейтинг0
Комментарии0

Привет, зачастую после тыкания в какой-нибудь стручок (pod) приходится подниматься на уровень выше в деплой, стейтфулсет или даемонсет. Для этого в kui надо было сначала посмотреть чем контролируется стручок, сделав describe, потом сменить тип объекта, найти нужный... Хватить теребонькать эти стручки! Добавил для стручков команду Controlled by, она сразу тыкает kui в нужное место!

controlled by
controlled by

Творите, выдумывайте, пробуйте!)

Теги:
Рейтинг0
Комментарии0

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

watch it
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 когда надоест.

Творите, выдумывайте, пробуйте!)

Теги:
Рейтинг0
Комментарии0

Привет, все знают(?) что данные в скрипт можно передать через аргументы, как-то так:

$ 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

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии3

Привет, иногда хочется утащить из скрипта переменные или функции. Это можно легко сделать используя 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 закроет текущую оболочку.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии1

Привет, когда смотришь логи подов через kubectl и вдруг у пода оказывается несколько контейнеров, kubectl logs ... завершается ошибкой:

error: a container name must be specified for pod pod-name-0, choose one of: [...]

Хватит это терпеть! Мой kui идет на помощь! Добавил команду logs all она показывает логи сразу всех контейнеров без необходимости выбора!

смотри все логи сразу
смотри все логи сразу

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Привет, все знают как прочитать содержимое файла в линукс терминале(?), для этого используется cat:

$ cat file
one
two
three

Но иногда возникает необходимость прочитать файл с конца, задом наперед. Как это сделать? Tac!

$ tac file
three
two
one

Для тех кто в танке tac это cat наоборот.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 6: ↑6 и ↓0+7
Комментарии0

Привет! Подкрутил немного анимацию spinner'а, теперь выглядит так:

бынь-бынь
бынь-бынь

Spinner - это небольшой скриптик чтобы заполнить пустоту экранного пространства во время работы какого-нибудь долгого процасса, не выводящего ничего. Работает как-то так:

$ ./spinner sleep 5

Please wait [0:0:3] (* )  ( *)

Ну и оно там вот так пульсирует, быньк-быньк)

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 10: ↑10 и ↓0+15
Комментарии0
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность

Специализация

Специалист
Bash
Linux
Python