yq
15 commands
15 shown
Прочитать поле YAML
Извлечь значение из YAML файла
yq '.spec.replicas' deployment.yaml
Установить поле YAML
Обновить поле YAML файла на месте
yq -i '.spec.replicas = 3' deployment.yaml
YAML в JSON
Вывести YAML как JSON для обработки через jq
yq -o=json deployment.yaml
Слить YAML файлы
Глубокое слияние базового YAML с файлом переопределений
yq '. *= load("override.yaml")' base.yaml
Мульти-документ YAML в массив
Разбить мульти-документ YAML в JSON массив
yq -s '.' multi.yaml | yq -o=json
Прочитать значение поля
Извлечь одно поле из YAML
yq '.spec.replicas' deployment.yaml
Установить поле (in-place)
Изменить YAML файл на месте с yq v4
yq -i '.spec.replicas = 3' deployment.yaml
Добавить элемент массива
Добавить переменную среды в первый контейнер
yq -i '.spec.containers[0].env += {"name":"DEBUG","value":"true"}' deployment.yaml
Удалить ключ
Удалить конкретную аннотацию из YAML
yq -i 'del(.metadata.annotations."kubectl.kubernetes.io/last-applied-configuration")' resource.yaml
Слияние двух YAML файлов
Глубокое слияние двух YAML документов
yq eval-all 'select(fileIndex==0) * select(fileIndex==1)' base.yaml override.yaml
YAML → JSON
Преобразовать YAML в JSON
yq -o=json '.' config.yaml
JSON → YAML
Красиво вывести JSON как YAML
cat config.json | yq -P '.'
Фильтр массива по условию
Выбрать только Running pods из списка
yq '.items[] | select(.status.phase == "Running")' pods.yaml
Обновить тег образа в манифестах
Точечное обновление образа для именованного контейнера
yq -i '(.spec.template.spec.containers[] | select(.name == "app") | .image) = "myapp:v2.0.0"' deployment.yaml
Обработать несколько файлов
Извлечь metadata.name из всех YAML файлов в директории
yq '.metadata.name' manifests/*.yaml
no commands match