🐳
知っていれば便利なYAMLのAnchorとAlias
使い方
# & Anchor定義
environment: &env
env_1: COMMON_ENV1
env_2: COMMON_ENV2
# * Alias指定
service1:
*env
# 上書きや追加も可能
service2:
<<: *env
env_1: UPDATE_ENV1
env_3: SERVICE_ENV3
確認には yq を使います。
$ cat sample.yaml | yq
# & Anchor定義
environment: &env
env_1: COMMON_ENV1
env_2: COMMON_ENV2
# * Alias指定
service1: *env
# 上書きや追加も可能
service2:
!!merge <<: *env
env_1: UPDATE_ENV1
env_3: SERVICE_ENV3
yaml を評価する
$ cat sample.yaml | yq 'explode(.)'
# & Anchor定義
environment:
env_1: COMMON_ENV1
env_2: COMMON_ENV2
# * Alias指定
service1:
env_1: COMMON_ENV1
env_2: COMMON_ENV2
# 上書きや追加も可能
service2:
env_2: COMMON_ENV2
env_1: UPDATE_ENV1
env_3: SERVICE_ENV3
:::note warn
2024/7/13時点でも Github Actions でサポートされていなかったりするようなので注意してください。
:::
Discussion