Open hekki opened 20 hours ago
先日、さくらのクラウドの AppRun がリリースされました。 ref. https://manual.sakura.ad.jp/cloud/manual-sakura-apprun.html ref. https://manual.sakura.ad.jp/sakura-apprun-api/spec.html
AppRun
このAppRunをTerraformからコントロールできるようにresource, data sourceを追加します。
sakuracloud_apprun_application resource ひとつでApplicationとTrafficの両方をコントロールします。 ApplicationのコントロールはAPIのリクエストボディをそのまま踏襲しています。
TrafficのコントロールはAPIのリクエストボディの version_name, is_latest_version を version_index で隠蔽しています。 Application VersionがAPIのデフォルト(created_atの降順)で並んでいる前提で、indexを指定するようになっています。
version_name
is_latest_version
version_index
traffics { version_index = 0 percent = 100 }
traffics { version_index = 0 percent = 1 } traffics { version_index = 2 percent = 99 }
example
resource "sakuracloud_apprun_application" "foobar" { # アプリケーション本体の制御 name = "foobar" timeout_seconds = 60 port = 80 min_scale = 0 max_scale = 1 components { name = "compo1" max_cpu = "0.1" max_memory = "256Mi" deploy_source { container_registry { image = "apprun-test.sakuracr.jp/test1:latest" server = "apprun-test.sakuracr.jp" username = "user" password = "password" } } env { key = "key" value = "value" } env { key = "key2" value = "value2" } probe { http_get { path = "/" port = 80 headers { name = "name" value = "value" } headers { name = "name2" value = "value2" } } } } # トラフィックの制御 traffics { version_index = 0 percent = 100 } }
Application名を指定してデータが参照できます。
data "sakuracloud_apprun_application" "foobar" { name = "foobar" } output "foobar" { value = data.sakuracloud_apprun_application.foobar }
背景
先日、さくらのクラウドの
AppRun
がリリースされました。 ref. https://manual.sakura.ad.jp/cloud/manual-sakura-apprun.html ref. https://manual.sakura.ad.jp/sakura-apprun-api/spec.htmlこのAppRunをTerraformからコントロールできるようにresource, data sourceを追加します。
設計
sakuracloud_apprun_application resource
sakuracloud_apprun_application resource ひとつでApplicationとTrafficの両方をコントロールします。 ApplicationのコントロールはAPIのリクエストボディをそのまま踏襲しています。
TrafficのコントロールはAPIのリクエストボディの
version_name
,is_latest_version
をversion_index
で隠蔽しています。 Application VersionがAPIのデフォルト(created_atの降順)で並んでいる前提で、indexを指定するようになっています。example
sakuracloud_apprun_application data source
Application名を指定してデータが参照できます。
example
動作確認