初めまして。
とても便利に使わせて頂いています。
jsonnetでecscheduleを利用させて頂いているのですが、tfstateを利用する場合一部条件でエラーが発生してしまうようなので報告します。
現象
エラーが出ないパターン
tfstateは一つのみ読み込む。
plugins: [
{
name: "tfstate",
config: { "url": "s3://dummy-state-bucket/terraform.tfstate" }
}
]
リソースの指定もtfstateで呼び出す。
network_configuration: {
awsvpc_configuration: {
assign_public_ip: "DISABLED",
security_groups: [],
subnets: [
"{{ tfstate `aws_subnet.subnet[0].id` }}",
"{{ tfstate `aws_subnet.subnet[1].id` }}",
"{{ tfstate `aws_subnet.subnet[2].id` }}"
]
}
},
この場合エラーは出ずにecschedule diffは実行できました。
エラーが出るパターン1
複数のtfstateを読み込む。
plugins: [
{
name: "tfstate",
config: { "url": "s3://dummy-state-bucket_01/terraform.tfstate" },
func_prefix: "subnet_"
},
{
name: "tfstate",
config: { "url": "s3://dummy-state-bucket_02/terraform.tfstate" },
func_prefix: "securitygroups_"
}
]
リソースの指定はpluginを先頭に付与(READMEに記載の通り)。
network_configuration: {
awsvpc_configuration: {
assign_public_ip: "DISABLED",
security_groups: [
"{{ plugin `securitygroups_tfstate` `output.ecs_task_common_security_group_id` }}"
],
subnets: [
"{{ plugin `subnet_tfstate` `aws_subnet.subnet[0].id` }}",
"{{ plugin `subnet_tfstate` `aws_subnet.subnet[1].id` }}",
"{{ plugin `subnet_tfstate` `aws_subnet.subnet[2].id` }}"
]
}
},
この場合ecschedule diffを実行すると下記エラーが発生します。
ecschedule -conf sample02.jsonnet diff -all
[ecschedule] 💢 config parse by template failed: template: conf:39: function "securitygroups_tfstate" not defined
エラーが出るパターン2
複数のtfstateを読み込みつつ、tfstatefを利用する。
plugins: [
{
name: "tfstate",
config: { "url": "s3://dummy-state-bucket_01/terraform.tfstate" },
func_prefix: "subnet_"
},
{
name: "tfstate",
config: { "url": "s3://dummy-state-bucket_02/terraform.tfstate" },
func_prefix: "securitygroups_"
}
]
tfstatefでキーをセットする。
network_configuration: {
awsvpc_configuration: {
assign_public_ip: "DISABLED",
security_groups: [
"{{ plugin `securitygroups_tfstatef` `aws_security_group.security_group['%s'].id` (must_env `ECS_SERVICE`) }}",
],
subnets: [
"{{ plugin `subnet_tfstate` `aws_subnet.subnet[0].id` }}",
"{{ plugin `subnet_tfstate` `aws_subnet.subnet[1].id` }}",
"{{ plugin `subnet_tfstate` `aws_subnet.subnet[2].id` }}"
]
}
},
この場合ecschedule diffを実行すると下記エラーが発生します。
$ ecschedule -conf sample01.jsonnet diff -all
[ecschedule] 💢 config parse by template failed: template: conf:46: function "securitygroups_tfstatef" not defined
もしかするとplugin周りかと推察しておりましたがいかがでしょうか。
ご確認・ご検討のほどよろしくお願いいたします。
初めまして。
とても便利に使わせて頂いています。
jsonnetでecscheduleを利用させて頂いているのですが、tfstateを利用する場合一部条件でエラーが発生してしまうようなので報告します。
現象
エラーが出ないパターン
tfstateは一つのみ読み込む。
リソースの指定もtfstateで呼び出す。
この場合エラーは出ずに
ecschedule diffは実行できました。エラーが出るパターン1
複数のtfstateを読み込む。
リソースの指定はpluginを先頭に付与(READMEに記載の通り)。
この場合
ecschedule diffを実行すると下記エラーが発生します。エラーが出るパターン2
複数のtfstateを読み込みつつ、tfstatefを利用する。
tfstatefでキーをセットする。
この場合
ecschedule diffを実行すると下記エラーが発生します。もしかするとplugin周りかと推察しておりましたがいかがでしょうか。
ご確認・ご検討のほどよろしくお願いいたします。