yttで外部化したDataを環境変数で上書きするメモ
次のファイルがある場合、
config.yml
#@ load("@ytt:data", "data")
env:
MYSQL_HOSTNAME: #@ data.values.mysql_hostname
values.yml
#@data/values
---
mysql_hostname: example.com
通常の出力は次の通り。
$ ytt -f config.yml -f values.yml
env:
MYSQL_HOSTNAME: example.com
values.ymlの値を環境変数で上書きしたい。--data-values-envで上書きする環境変数名のprefixを指定する。
$ export YTT_mysql_hostname=mysql.examplecom
$ ytt -f config.yml -f values.yml --data-values-env YTT
env:
MYSQL_HOSTNAME: mysql.examplecom
次のようにvalues.ymlがnestしたhashの場合、
config.yml
#@ load("@ytt:data", "data")
env:
MYSQL_HOSTNAME: #@ data.values.mysql.hostname
values.yml
#@data/values
---
mysql:
hostname: example.com
.ではなく__を使う。
$ export YTT_mysql__hostname=mysql.examplecom
$ ytt -f config.yml -f values.yml --data-values-env YTT
env:
MYSQL_HOSTNAME: mysql.examplecom
CI上で設定を上書きしたい場合などに便利。