ℹ️ yq — это утилита, которая позволяет работать с YAML-файлами так же, как jq работает с JSON. Это мощный инструмент, особенно полезный при управлении конфигурациями в Kubernetes и других системах, где YAML используется повсеместно.
👨💻 1. Установка yq:
sudo apt install yq # Для Debian/Ubuntu
brew install yq # Для macOS
🔥 2. Базовые операции:
- Чтение и вывод данных: хотите быстро прочитать значение конкретного ключа? Например, чтобы получить
metadata.nameиз манифеста Kubernetes
yq '.metadata.name' deployment.yaml
- Модификация значений: можно легко изменить любое значение. Допустим, нужно изменить реплику в деплойменте на 5
yq '.spec.replicas = 5' -i deployment.yaml
ℹ️ Флаг -i сохраняет изменения прямо в файле.
🔍 3. Сложные фильтры и выборка:
- ‣ Фильтрация по условиям: допустим, у вас большой файл с несколькими объектами, и вы хотите найти все деплойменты, где реплик больше 3
yq '.items[] | select(.spec.replicas > 3)' large-manifest.yaml
- ‣ Выборка вложенных данных: для работы с многоуровневыми структурами, например, чтобы получить все контейнеры с определенным образом:
yq '.spec.template.spec.containers[] | select(.image == "nginx:latest")' deployment.yaml
🛞 4. Интеграция с CI/CD:
Если у вас есть пайплайны, которые генерируют конфигурации, yq поможет их быстро править прямо в скрипте. Например, измените образ перед деплоем:
yq '.spec.template.spec.containers[0].image = "my-image:new-tag"' -i deployment.yaml
👨💻 5. Конвертация между JSON и YAML:
cat config.json | yq -P # Преобразование JSON в YAML
cat config.yaml | yq -o=json # Преобразование YAML в JSON
✳️ Это мощный инструмент, который буквально незаменим для работы с YAML в терминале. Если вы устали от бесконечных правок конфигураций вручную или хотите автоматизировать обработку YAML, yq станет отличным дополнением в вашем наборе инструментов!
tags: #полезно #bash #k8s #yaml
🧭 @recura_tech



