Terraform-创建OpenStack负载平衡器时出错:找不到资源



我正试图用Terraform创建一个OpenStack负载均衡器,但在terraform apply:时出现以下错误

错误:创建openstack_lb_loadbalancer_v2时出错:找不到资源

在负载平衡器/main.tf第71行,在资源中"openstack_lb_loadbalancer_v2"lb_1":71:资源"openstack_lb_loadbalancer_v2"lb_ 1";{

我的模板如下所示。

resource "openstack_lb_loadbalancer_v2" "lb_1" {
name          = "loadbalancer"
vip_subnet_id = openstack_networking_subnet_v2.public.id
}
resource "openstack_lb_listener_v2" "listener_1" {
name                      = "https"
protocol                  = "TERMINATED_HTTPS"
protocol_port             = 443
loadbalancer_id           = openstack_lb_loadbalancer_v2.lb_1.id
default_tls_container_ref = openstack_keymanager_container_v1.tls_1.container_ref
}
resource "openstack_networking_network_v2" "lb_network" {
name = "lb-network"
port_security_enabled = "true"
}
resource "openstack_networking_subnet_v2" "public" {
name = "lb-subnet"
network_id = openstack_networking_network_v2.lb_network.id
cidr = "10.0.0.0/24"
ip_version = 4
}

我不知道如何进一步调试。这是否意味着vip_subnet_id没有找到?或者openstack_lb_loadbalancer_v2是未知的资源类型?

我使用的是Terraform v0.13.5和Terraform提供商openstack v1.33.0。

更新

我通过web界面手动创建了一个LB,现在我尝试通过Terraform CLI导入它,得到了以下响应

错误:无法导入不存在的远程对象

尝试将现有对象导入时openstack_lb_loadbalancer_v2.lb_1,提供程序检测到没有具有给定id的对象存在。只有预先存在的对象才能进口;检查id是否正确,以及它是否与提供者的配置区域或端点;地形应用";为该资源创建一个新的远程对象。

我开始怀疑这可能是OpenStack服务器端的问题。

最终发现您需要在openstack地形提供程序设置中设置use_octiva = true。请参阅此处的相关文档:https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs#use_octavia

配置示例:

cat main.tf
provider "openstack" {
user_name     = var.os_user_name
tenant_name   = var.os_tenant_name
password      = var.os_password
auth_url      = var.os_auth_url
region        = var.os_region
endpoint_type = var.os_endpoint_type
use_octavia   = true
}

以下是相关的错误报告:https://github.com/terraform-provider-openstack/terraform-provider-openstack/issues/1100

相关内容

最新更新