piy*_*eva 3 azure terraform terraform-provider-azure azure-aks azure-service-principal
我有以下目录结构
\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 output.tf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 variables.tf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 modules\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ServicePrincipal\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 variables.tf\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 outputs.tf\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 aks\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 output.tf\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 variables.tf\n...\n\nRun Code Online (Sandbox Code Playgroud)\n问题: \n我想使用从服务主体模块生成的 client_id 和 client_secret 作为创建我的 aks 集群的输入。我可以通过 module.modulename.outputvarname 从我的根 main.tf 引用以下输出变量,但是,我无法在另一个子模块(aks)中将其作为 var.client_id 或 module.serviceprincipal.client_id 访问
\n根模块的 main.tf ,我可以在其中使用 client_id 和 client_secret
\nmodule "ServicePrincipal" {\n source = "./modules/ServicePrincipal"\n service_principal_name = var.service_principal_name\n redirect_uris = var.redirect_uris\n\n}\n\nmodule "aks" {\n source = "./modules/aks/"\n service_principal_name = var.service_principal_name\n serviceprinciple_id = module.ServicePrincipal.service_principal_object_id\n serviceprinciple_key = module.ServicePrincipal.client_secret\n location = var.location\n resource_group_name = var.rgname\n depends_on = [\n module.ServicePrincipal\n ]\n\n}\n\nRun Code Online (Sandbox Code Playgroud)\naks模块的main.tf
\nservice_principal {\n client_id = var.client_id\n client_secret = var.client_secret\n }\n\nRun Code Online (Sandbox Code Playgroud)\n我的 ServicePrincipal 模块的 output.tf
\noutput "client_id" {\n description = "The application id of AzureAD application created."\n value = azuread_application.main.application_id\n\n}\n\noutput "client_secret" {\n description = "Password for service principal."\n value = azuread_service_principal_password.main.*.value\n \n}\n\nRun Code Online (Sandbox Code Playgroud)\n以下是我收到的错误:
\n\nError: Missing required argument\n\n on main.tf line 136, in module "aks":\n 136: module "aks" {\n\nThe argument "client_id" is required, but no definition was found.\n\n\nError: Missing required argument\n\n on main.tf line 136, in module "aks":\n 136: module "aks" {\n\nThe argument "client_secret" is required, but no definition was found.\n\nRun Code Online (Sandbox Code Playgroud)\n我已经将它们定义为 aks 模块和 root 模块中的变量,我在这里遗漏了什么吗?
\n提前致谢!
\n皮尤什
\n子模块无法引用彼此的输出。您必须在根模块中显式地将它们从一个模块传递到第二个模块,例如
在根中:
module "ServicePrincipal" {
}
module "aks" {
client_id = module.ServicePrincipal.client_id
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1516 次 |
| 最近记录: |