Dev-Ops.su
306 subscribers
79 photos
4 files
206 links
Полезные утилиты, статьи, доклады и обзоры.
Канал для DevOps, SRE, Архитекторов и прочих *Ops

https://dev-ops.su

#DevOps #SRE #DevSecOps #SecOps #ChatOps #GitOps #DocsOps #MLOps #FinOps #NoOps #CloudOps #CIOps #CDOps #AnyOps #BuzzWordOps

@woozymasta
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Plumber — это CLI инструмент для проверки, передачи, обмена сообщениями и перенаправления данных в таких системах как Kafka, RabbitMQ и подобных брокерах сообщений.

Инструмент позволяет:

▫️Безопасный просмотр содержимого ваших потоков данных
▫️Запись простых или закодированных данных в любую систему
▫️Маршрутизация данных из одного места в другое
▫️Декодирование данных protobuf/avro/thrift/JSON в режиме реального времени
▫️Ретрансляция данных в Batch platform
▫️Воспроизведение событий в системе сообщений в вашей локальной сети

А поддерживает эта утилита и в правду много систем. А именно: Kafka, RabbitMQ, GCP PubSub, MQTT, Amazon Kinesis Streams, Amazon SQS, Amazon SNS, ActiveMQ, Azure Service Bus, Azure Event Hub, NATS, NATS Streaming, Redis-PubSub, Redis-Streams, Postgres CDC, MongoDB CDC, Apache Pulsar, NSQ, KubeMQ 😳

#cli #kafka #rabbitmq #pubsub

https://github.com/batchcorp/plumber
👍2
jo — небольшая утилита для создания объектов JSON.

К примеру:

jo -p name=jo n=17 parser=false
получим:
{
"name": "jo",
"n": 17,
"parser": false
}

или

seq 1 10 | jo -a
получим:
[1,2,3,4,5,6,7,8,9,10]

#cli #json

https://github.com/jpmens/jo
Тут у Keycloak вышел релиз 17.0 - дистрибутив по умолчанию теперь основан на Quarkus, прощай WildFly. Это изменение должно сделать keycloak быстрее, компактнее и намного проще в настройке.

При этом, способ запуска и настройки Keycloak радикально изменился, по этому поддерживать дистрибутив WildFly будут до июня 2022 года.

#keycloak

https://github.com/keycloak/keycloak/releases/tag/17.0.0
😱2👍1🔥1
Mizu - простое, но мощное средство просмотра API трафика для Kubernetes, позволяющее просматривать все взаимодействия API между микросервисами, чтобы помочь вам отлаживать регрессии и устранять неполадки.

Ну это, что-то на подобии TCPDump и Wireshark для Kubernetes.

Имеет CLI, гибкую фильтрацию и отслеживает в реальном времени трафик:

▫️HTTP/1.x (REST, GraphQL, SOAP, etc.)
▫️HTTP/2 (gRPC)
▫️AMQP (RabbitMQ, Apache Qpid, etc.)
▫️Apache Kafka
▫️Redis

#k8s #kubernetes #network #wireshark #tcpdump

https://github.com/up9inc/mizu
RedisJSON — это модуль Redis, который реализует стандарт обмена данными JSON ECMA-404 в качестве собственного типа данных. Он позволяет хранить, обновлять и извлекать значения JSON из ключей (документов) Redis.

Документация

Подгружается в сервер как модуль
redis-server --loadmodule ./target/release/librejson.so

Или берем готовый контейнер redislabs/rejson:latest

Также есть клиентские библиотеки на Node.js, Java, Python, Go, .NET, PHP и Ruby. И скорее всего ваша библиотека уже умеет в JSON.

#redis #json

https://github.com/RedisJSON/RedisJSON
XSV — это программа командной строки для индексации, нарезки, анализа, разделения и объединения CSV-файлов. Написана на Rust.

▫️cat — объединение CSV по строке или по столбцу
▫️count — подсчет строк в CSV (Мгновенно с индексом)
▫️fixlengths — заставить CSV иметь записи одинаковой длины, либо дополняя, либо усекая их
▫️flatten — плоский вид записей CSV
▫️fmt — переформатировать данные CSV с другими разделителями, разделителями записей или правилами цитирования
▫️frequency — создание частотных таблиц для каждого столбца в данных CSV. (Использует параллелизм)
▫️headers — показать заголовки данных CSV
▫️index — создать индекс для CSV
▫️input - чтение данных CSV с экзотическими правилами цитирования/экранирования
▫️join - внутренние, внешние и перекрестные соединения
▫️partition — разбиение данных CSV на основе значения столбца
▫️sample — произвольное рисование строк из данных CSV с использованием выборки
▫️reverse — обратный порядок строк в данных CSV
▫️search — запустить регулярное выражение для данных CSV
▫️select — выберите или измените порядок столбцов данных CSV
▫️slice — нарезать строки из любой части CSV
▫️sort — сортировка данных CSV
▫️split — разделить один CSV на множество CSV по N фрагментов
▫️stats — показать основные типы и статистику каждого столбца в CSV
▫️table — показать выровненный вывод любых данных CSV

#csv #cli

https://github.com/BurntSushi/xsv
This media is not supported in your browser
VIEW IN TELEGRAM
hwatch — это альтернативна watch утилите командной строки. Периодически выполняет программу, отображая выходные данные в полноэкранном режиме, записывает результат выполнения команды и может отображать его историю и различия.

#watch #hwatch #cli

https://github.com/blacknon/hwatch
This media is not supported in your browser
VIEW IN TELEGRAM
Netmaker — это платформа для создания и управления быстрыми, безопасными и динамическими виртуальными оверлейными сетями с использованием WireGuard.

Из особенностей:

▫️можно строить одноранговые (Peer-to-Peer) Mesh сети
▫️поддержка Kubernetes и нескольких облаков
▫️удаленный доступ через шлюз
▫️функции OAuth и частного DNS
▫️поддержка Linux, Mac, Windows, FreeBSD, iPhone и Android.
▫️автоматизирует виртуальные сети между ЦОД, облаками и шлюзами
▫️WireGuard предлагает максимальную скорость, производительность и безопасность
▫️создан для масштабирования от малого бизнеса до предприятия.

Руководство / Руководство по Kubernetes

#network #wireguard #mesh #k8s #kubernetes

https://github.com/gravitl/netmaker
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
smag — утилита командной строки для создания графиков из команд и просмотра их в терминале. Это как команда watch, но с графиком вывода.

Примеры использования:

smag 'ping -c1 ya.ru | grep -oP ".*time=\K\d+\.\d+"'

smag "kubectl get pods -A | grep Running | wc -l"

smag "grep ' 404 ' access.log | wc -l" -d

#cli #watch #graph #plot

https://github.com/aantn/smag
👍4
rustdesk — еще одно программное обеспечение для удаленного рабочего стола, написанное на Rust. Работает из коробки, не требует настройки. Вы полностью контролируете свои данные, не беспокоясь о безопасности. Вы можете использовать публичный сервер ретрансляции, настроить или написать свой собственный сервер ретрансляции.

Работает на Linux, MacOS, Windows. Единственное, не умеет пока что в Wayland, только X11.

Вполне сойдет как Open Source и Self-hosted альтернатива всяким TeamViewer, AmmyAdmin, AnyDesk, RAdmin и т.п.

А, ну да, еще я им занес русский язык, в новой версии появится.

#remote #rustdesk #teamviewer #ammyadmin #anydesk #radmin

https://github.com/rustdesk/rustdesk
👍7
Gaphor — это приложение для моделирования UML, SysML, RAAML и C4. Он разработан, чтобы быть простым в использовании, но при этом мощным. Gaphor реализует полностью совместимую модель данных UML 2, так что это гораздо больше, чем инструмент для рисования изображений. Вы можете использовать Gaphor для быстрой визуализации различных аспектов системы, а также для создания полных, очень сложных моделей.

Из плюсов/особенностей следует выделить:
▫️Мультиплатформенный Windows, Macos и Linux;
▫️Написан на Python + GTK;
▫️Open Source проект под лицензией Apache 2;
▫️Имеет CLI и может расширятся плагинами;
▫️Поддерживает експорт в PDF, PNG, SVG и XMI;
▫️Имеет интеграцию с Sphinx;
▫️Позволяет гибко управлять стилями при помощи CSS.

Есть небольшой видео туториал о Gaphor

#uml #sysml #raaml #c4 #gaphor

https://github.com/gaphor/gaphor
https://gaphor.org
👍1🔥1
kubectl shovel — это плагин для kubectl (krew), который поможет вам собирать диагностическую информацию из dotnet приложений запущенных в kubernetes. Он может работать с приложениями .NET Core 3.0+ и кластерами Kubernetes со средой выполнения docker или containerd. Запилили кстати это, ребята из dodopizza.

На данный момент поддерживаются следующие инструменты диагностики:
▫️dotnet-gcdump
▫️dotnet-trace
▫️dotnet-dump

#k8s #kubernetes #dotnet #krew

https://github.com/dodopizza/kubectl-shovel
This media is not supported in your browser
VIEW IN TELEGRAM
Quay Image Expiration — это скрипт для изменения времени жизни образа в реестре контейнеров Quay. Позволяет задавать разное время жизни для разных тегов в соответствии с регулярным выражением. Не изменит существующие метки TTL.

Добавьте этот скрипт в свой планировщик (crontab, systemd timer, kubernetes cronJob или т.п.) и держите реестр контейнеров в чистоте. Больше никаких мусорных тегов, промежуточные версии существуют ограниченное время, а релизы остаются навсегда.

Quay поддерживает метку quay.expires-after, которая позволяет вам установить время жизни артефакта на этапе сборки в CI пайплайне. Но не все молодцы пользуются этим, поэтому и появился этот скрипт, для тотального контроля над временем жизни образов.

#registry #quay #automation

https://github.com/WoozyMasta/quay-expiration
Harvester — это решение гиперконвергентной инфраструктуры (HCI), созданное для серверов без операционной системы с использованием технологий с открытым исходным кодом корпоративного уровня, включая Kubernetes, Kubevirt и Longhorn.

Некоторые особенности Harvester:
▫️Управление жизненным циклом ВМ, включая внедрение SSH-ключа, Cloud-init и консоль последовательного порта;
▫️Поддержка динамической миграции ВМ;
▫️Поддержка резервного копирования и восстановления ВМ;
▫️Распределенное блочное хранилище;
▫️Несколько сетевых адаптеров в виртуальной машине;
▫️Поддержка загрузки PXE/iPXE
▫️Поддержка виртуальных IP-адресов и сетевых адаптеров
▫️Интеграция с мониторингом

Это разработка от ребят из Rancher Labs, по этому хорошо будет интегрироваться с Rancher и k3os

#hci #k8s #kubernetes #rancher

https://github.com/harvester/harvester
https://harvesterhci.io
kubectl-doctor — плагин kubectl (krew), сканирует ваш кластер k8s, чтобы увидеть, есть ли аномалии или полезные действия, о которых он может сообщить вам. Плагин не изменяет никакого состояния или конфигурации, он просто сканирует и собирает информацию, а затем сообщает об аномалиях в формате yaml.

Сейчас ищет такие аномалии:

▫️работоспособность основных компонентов (etcd, scheduler, controller-manager)
▫️потерянные endpoints (конечные точки без подключенного ipv4)
▫️PV доступен и не используется
▫️потерянные PVC
▫️k8s ноды не в состоянии Ready
▫️потерянные replicasets (запрос больше 0, но в наличии 0)
▫️пустые replicasets (скейл в 0)
▫️потерянные deployment (запрос больше 0, но в наличии 0)
▫️пустые deployment (скейл в 0)
▫️оставшиеся cronjobs (последняя активная дата более 30 дней)

#k8s #kubernetes #krew

https://github.com/emirozer/kubectl-doctor
Набросал скриптик для запуска в планировщике, который будет добавлять список определенных пользователей во все/корневые группы GitLab.
Для тех, кто держит свой GitLab с целым зоопарком групп, возможно пригодится.

Пример:
У вас есть служебные пользователи для SonarQube, Dependabot или ещё какой нибудь интеграции, которые должны иметь права developer во всех группах, ну что бы интеграции работали нормально. А вот за то, как активно плодятся группы, вы не отвечаете, и эта штука в шедуллере поможет держать доступы в актуальном состоянии.

#gitlab

https://github.com/WoozyMasta/gitlab-groups-filling-with-users
This media is not supported in your browser
VIEW IN TELEGRAM
xh — удобный и быстрый инструмент для отправки HTTP-запросов. Он максимально воссоздает превосходный дизайн HTTPie, уделяя особое внимание повышению производительности.

Если еще короче, HTTPie переписали с Python на Rust, получился xh.

#cli #curl #httpie #xh

https://github.com/ducaale/xh