为什么 terraform plan 总是返回退出代码 0,即使有新资源要添加?

Vid*_*ya 9 bash terraform

Terraform 提供以下退出代码:

0 = Succeeded with empty diff (no changes)
1 = Error
2 = Succeeded with non-empty diff (changes present)
Run Code Online (Sandbox Code Playgroud)

terraform apply仅当需要添加任何新资源或需要应用任何更改时,我才需要执行。

if [ $? -eq 0 ]; then
    echo "No changes, not applying"
elif [ $? -eq 1 ]; then
    echo "Terraform plan failed"
    exit 1
elif [ $? -eq 2 ]; then
    echo "Terraform apply needed"
fi
Run Code Online (Sandbox Code Playgroud)

但我得到退出代码0,即使对于terraform plan输出的命令:

Plan: 9 to add, 0 to change, 0 to destroy.
Run Code Online (Sandbox Code Playgroud)

有什么问题吗?

Erm*_*ary 9

terraform plan返回这些退出代码,您必须提供文档-detailed-exitcode中详细说明的选项。

-detailed-exitcode - 命令退出时返回详细的退出代码。


这应该是您的命令的样子,否则无论输出如何,terraform plan您都会得到退出代码:0

terraform plan -detailed-exitcode ...
Run Code Online (Sandbox Code Playgroud)