Posted at

Airflowの開発用環境と本番用環境を色分けしてトラブルを防ぐ


背景

Airflowを本番用と開発用でそれぞれ別の環境を用意したところ、見分けがつかなくなって事故やトラブルを誘発しそうだったため、何らかの形で見分けがつくように設定しようと考えました

airflow.cfgを眺めていたところ、どうやらナビゲーションの色を変更することができるようなので、これらを環境ごとに別の色に変えてみました。


できたこと

下記のようにナビゲーションの色を変更することができます:

変更前

EGPr3iaUEAApaTU.jpeg

変更後

EGPr3iYUcAAyXCX.jpeg


ナビゲーションの色を変更する方法

airflow.cfgwebserver というsectionに navbar_color という項目があるので、こちらに任意の色を指定します。

[webserver]

...
navbar_color = #007A87


GCP Cloud Composerでの設定方法


webUIからの設定方法

composerの AIRFLOW CONFIGURATION OVERRIDES から値を設定できるので、下記のように入力して保存します。

反映が完了すると色が変わるのを確認できます。

スクリーンショット 2019-10-07 15.45.36.png


terraformによる設定方法

terraformでもGCP Cloud Composerの環境を管理することができます。

Google: google_composer_environment - Terraform by HashiCorp

このとき、airflow_config_overridesは {section名}-{key} というようにsectionとkeyを - でつないで記述するので、下記のように設定します。

resource "google_composer_environment" "main" {

config {
...
software_config {
airflow_config_overrides = {
webserver-navbar_color = "#007A87"
}
...
}
}
}

あとはapplyすれば同様に色が変わります。


参考資料