Como adicionar uma lista com mapa em YAML usando yq, também preciso usar o arquivo de propriedades para entrada
Eu tenho abaixo do yaml:
apiVersion: core.oci.upbound.io/v1alpha1
kind: Instance
metadata:
name: crossplane-inst-flat
spec:
forProvider:
compartmentIdRef:
name: compartment-oke-shu
createVnicDetails:
- subnetIdRef:
name: crossplane-srg-subnet
availabilityDomain: "yyy:PHX-AD-1"
shape: "VM.Standard2.1"
sourceDetails:
- sourceId: ocid1.image.oc1.phx.7ytytytytytyt
sourceType: "image"
displayName: crossplane-inst-flat
Quero alterar o valor do nome abaixo:
createVnicDetails:
- subnetIdRef:
name: crossplane-srg-subnet
E o ID da fonte na seção abaixo também deve persistir no outro mapa
sourceDetails:
- sourceId: ocid1.image.oc1.phx.7ytytytytytyt
Usando a sintaxe config.properties abaixo:
spec.forProvider.createVnicDetails.subnetIdRef.name=test
spec.forProvider.sourceDetails.sourceId=ocid1.image.oc1.phx.hhhh
spec.forProvider.sourceDetails.sourceType=image
expressão do arquivo sh:
'. *= load_props("/compute.properties")' config.yaml
mas eles não estão funcionando como esperado, a lista -(traço) está faltando. como fazer isso sem sed
Seus caminhos estão faltando os índices de sequência.
Essas expressões fazem o que você quiser:
Você pode querer usar
[0]
em vez de[]
se desejar explicitamente atualizar apenas o primeiro item de sequência.Você pode especificá-los na sintaxe da propriedade: