简体   繁体   English

使用 yq 将 yaml 文件读取到 vm 选项

[英]Read yaml file to vm options with yq

I have a simple values.yaml file witch has below data:我有一个简单的值。yaml 文件女巫具有以下数据:

...
env:
   - name: GOOGLE_DNS_1
     value: 8.8.8.8
   - name: GOOGLE_DNS_2
     value: 8.8.4.4
   - name: RUN_VARIABLES
     value: "-Xms150m -Xmx300m"
...

I would like to construct a string using "yq"like我想用“yq”来构造一个字符串

-DGOOGLE_DNS_1="8.8.8.8"
-DGOOGLE_DNS_2="8.8.4.4"
-Xms150m -Xms300m

To set my Java VM Options.设置我的 Java VM 选项。

Using yq :使用yq

yq -r '.env | to_entries
       | (.[] | select(.value.name == "GOOGLE_DNS_1") | .value.value) as $dns1
       | (.[] | select(.value.name == "GOOGLE_DNS_2") | .value.value) as $dns2
       | (.[] | select(.value.name == "RUN_VARIABLES") | .value.value) as $jvmOpts
       | "-DGOOGLE_DNS_1=\"\($dns1)\" -DGOOGLE_DNS_2=\"\($dns2)\" \($jvmOpts)" '

this produces for your input:这会为您的输入产生:
-DGOOGLE_DNS_1="8.8.8.8" -DGOOGLE_DNS_2="8.8.4.4" -Xms150m -Xmx300m

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM