Set a field value in-place

Modify YAML file in-place with yq v4

yq -i '.spec.replicas = 3' deployment.yaml

tool
yq15 commands
tags
yq

More yq commands

  • yq -i '.spec.containers[0].env += {"name":"DEBUG","value":"true"}' deployment.yaml

    Append an env var to the first container

  • yq -i 'del(.metadata.annotations."kubectl.kubernetes.io/last-applied-configuration")' resource.yaml

    Remove a specific annotation from YAML

  • yq eval-all 'select(fileIndex==0) * select(fileIndex==1)' base.yaml override.yaml

    Deep-merge two YAML documents

  • yq -o=json '.' config.yaml

    Output YAML document as JSON

  • cat config.json | yq -P '.'

    Pretty-print JSON as YAML

all 15 yq commands