* Implement acceptance test * Add resource and data source to the provider * Add examples and markdown description * Generate docs * Adjustments after review * Move load balancer supporting infrastructure from resource config to example
104 lines
No EOL
2.8 KiB
HCL
104 lines
No EOL
2.8 KiB
HCL
# Create a network
|
|
resource "openstack_networking_network_v2" "example" {
|
|
name = "example-network"
|
|
}
|
|
|
|
# Create a subnet
|
|
resource "openstack_networking_subnet_v2" "example" {
|
|
name = "example-subnet"
|
|
cidr = "192.168.0.0/25"
|
|
dns_nameservers = ["8.8.8.8"]
|
|
network_id = openstack_networking_network_v2.example.id
|
|
}
|
|
|
|
# Get public network
|
|
data "openstack_networking_network_v2" "public" {
|
|
name = "floating-net"
|
|
}
|
|
|
|
# Create a floating IP
|
|
resource "openstack_networking_floatingip_v2" "example" {
|
|
pool = data.openstack_networking_network_v2.public.name
|
|
}
|
|
|
|
# Get flavor for instance
|
|
data "openstack_compute_flavor_v2" "example" {
|
|
name = "g1.1"
|
|
}
|
|
|
|
# Create an instance
|
|
resource "openstack_compute_instance_v2" "example" {
|
|
depends_on = [openstack_networking_subnet_v2.example]
|
|
name = "example-instance"
|
|
flavor_id = data.openstack_compute_flavor_v2.example.id
|
|
admin_pass = "example"
|
|
security_groups = ["default"]
|
|
|
|
block_device {
|
|
uuid = "4364cdb2-dacd-429b-803e-f0f7cfde1c24" // Ubuntu 22.04
|
|
volume_size = 32
|
|
source_type = "image"
|
|
destination_type = "volume"
|
|
delete_on_termination = true
|
|
}
|
|
|
|
network {
|
|
name = openstack_networking_network_v2.example.name
|
|
}
|
|
}
|
|
|
|
# Create a router and attach it to the public network
|
|
resource "openstack_networking_router_v2" "example" {
|
|
name = "example-router"
|
|
admin_state_up = "true"
|
|
external_network_id = data.openstack_networking_network_v2.public.id
|
|
}
|
|
|
|
# Attach the subnet to the router
|
|
resource "openstack_networking_router_interface_v2" "example_interface" {
|
|
router_id = openstack_networking_router_v2.example.id
|
|
subnet_id = openstack_networking_subnet_v2.example.id
|
|
}
|
|
|
|
# Create a load balancer
|
|
resource "stackit_loadbalancer" "example" {
|
|
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
name = "example-load-balancer"
|
|
target_pools = [
|
|
{
|
|
name = "example-target-pool"
|
|
target_port = 80
|
|
targets = [
|
|
{
|
|
display_name = "example-target"
|
|
ip = openstack_compute_instance_v2.example.network.0.fixed_ip_v4
|
|
}
|
|
]
|
|
active_health_check = {
|
|
healthy_threshold = 10
|
|
interval = "3s"
|
|
interval_jitter = "3s"
|
|
timeout = "3s"
|
|
unhealthy_threshold = 10
|
|
}
|
|
}
|
|
]
|
|
listeners = [
|
|
{
|
|
display_name = "example-listener"
|
|
port = 80
|
|
protocol = "PROTOCOL_TCP"
|
|
target_pool = "example-target-pool"
|
|
}
|
|
]
|
|
networks = [
|
|
{
|
|
network_id = openstack_networking_network_v2.example.id
|
|
role = "ROLE_LISTENERS_AND_TARGETS"
|
|
}
|
|
]
|
|
external_address = openstack_networking_floatingip_v2.example.address
|
|
options = {
|
|
private_network_only = false
|
|
}
|
|
} |