Set a field value in-place
Modify YAML file in-place with yq v4
yq -i '.spec.replicas = 3' deployment.yaml
More yq commands
-
yq -i '.spec.containers[0].env += {"name":"DEBUG","value":"true"}' deployment.yamlAppend an env var to the first container
-
yq -i 'del(.metadata.annotations."kubectl.kubernetes.io/last-applied-configuration")' resource.yamlRemove a specific annotation from YAML
-
yq eval-all 'select(fileIndex==0) * select(fileIndex==1)' base.yaml override.yamlDeep-merge two YAML documents
-
yq -o=json '.' config.yamlOutput YAML document as JSON
-
cat config.json | yq -P '.'Pretty-print JSON as YAML