module "network" { source = "../modules/network" } resource "opentelekomcloud_dns_zone_v2" "public_example_com" { name = "public.examplecheck.com." email = "public@examplecheck.com" description = "An example for public zone" ttl = 3000 type = "public" } resource "opentelekomcloud_dns_zone_v2" "private_example_com" { name = "private.examplecheck.com." email = "private@examplecheck.com" description = "An example for private zone" ttl = 3000 type = "private" router { router_id = module.network.shared_subnet.vpc_id router_region = var.region } } resource "opentelekomcloud_dns_recordset_v2" "rs_example_com" { zone_id = opentelekomcloud_dns_zone_v2.private_example_com.id name = "test.private.examplecheck.com." description = "An example record set" ttl = 3000 type = "A" records = ["10.0.0.1"] }
module "network" { source = "../modules/network" } resource "opentelekomcloud_compute_keypair_v2" "terraform" { name = "terraform" public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB" } resource "opentelekomcloud_networking_secgroup_rule_v2" "secgroup_rule_1" { direction = "ingress" ethertype = "IPv4" protocol = "tcp" port_range_min = 22 port_range_max = 22 remote_ip_prefix = "0.0.0.0/0" security_group_id = module.network.default_security_group_id } resource "opentelekomcloud_networking_secgroup_rule_v2" "secgroup_rule_2" { direction = "ingress" ethertype = "IPv4" protocol = "tcp" port_range_min = 80 port_range_max = 80 remote_ip_prefix = "0.0.0.0/0" security_group_id = module.network.default_security_group_id } resource "opentelekomcloud_networking_secgroup_rule_v2" "secgroup_rule_3" { direction = "ingress" ethertype = "IPv4" protocol = "icmp" remote_ip_prefix = "0.0.0.0/0" security_group_id = module.network.default_security_group_id } resource "opentelekomcloud_networking_floatingip_v2" "fip_1" { pool = "admin_external_net" } resource "opentelekomcloud_networking_floatingip_associate_v2" "fip_associated_1" { floating_ip = opentelekomcloud_networking_floatingip_v2.fip_1.address port_id = opentelekomcloud_networking_port_v2.port_1.id } resource "opentelekomcloud_networking_port_v2" "port_1" { admin_state_up = true fixed_ip { subnet_id = module.network.shared_subnet.network_id ip_address = "10.0.0.5" } network_id = module.network.shared_subnet.vpc_id } resource "opentelekomcloud_compute_instance_v2" "instance_1" { name = "terraform" image_name = var.image flavor_id = "s3.large.1" key_pair = opentelekomcloud_compute_keypair_v2.terraform.name security_groups = [module.network.default_security_group_id] depends_on = [ opentelekomcloud_networking_floatingip_associate_v2.fip_associated_1 ] network { port = opentelekomcloud_networking_port_v2.port_1.id } connection { user = "linux" host = opentelekomcloud_networking_floatingip_v2.fip_1.address private_key = <
module "network" { source = "../modules/network" } resource "opentelekomcloud_networking_secgroup_rule_v2" "secgroup_rule_1" { direction = "ingress" ethertype = "IPv4" protocol = "tcp" port_range_min = 22 port_range_max = 22 remote_ip_prefix = "0.0.0.0/0" security_group_id = module.network.default_security_group_id } resource "opentelekomcloud_networking_secgroup_rule_v2" "secgroup_rule_2" { direction = "ingress" ethertype = "IPv4" protocol = "tcp" port_range_min = 80 port_range_max = 80 remote_ip_prefix = "0.0.0.0/0" security_group_id = module.network.default_security_group_id } resource "opentelekomcloud_as_group_v1" "as_group" { scaling_group_name = "terraform" scaling_configuration_id = opentelekomcloud_as_configuration_v1.as_configuration.id desire_instance_number = 2 min_instance_number = 0 max_instance_number = 3 networks { id = module.network.shared_subnet.network_id } security_groups { id = module.network.default_security_group_id } vpc_id = module.network.shared_subnet.vpc_id delete_publicip = true delete_instances = "yes" } resource "opentelekomcloud_as_policy_v1" "as_policy" { scaling_policy_name = "terraform" scaling_group_id = opentelekomcloud_as_group_v1.as_group.id scaling_policy_type = "ALARM" scaling_policy_action { operation = "ADD" instance_number = 1 } alarm_id = opentelekomcloud_ces_alarmrule.alarm_rule.id } data "opentelekomcloud_images_image_v2" "latest_image" { name = var.image_name most_recent = true } resource "opentelekomcloud_as_configuration_v1" "as_configuration" { scaling_configuration_name = "terraform" instance_config { flavor = var.flavor image = data.opentelekomcloud_images_image_v2.latest_image.id disk { size = 40 volume_type = "SATA" disk_type = "SYS" } key_name = var.keyname user_data = <> /home/user.txt EOF } } resource "opentelekomcloud_ces_alarmrule" "alarm_rule" { alarm_action_enabled = "false" alarm_name = "terraform" metric { namespace = "SYS.AS" metric_name = "cpu_util" dimensions { name = "AutoScalingGroup" value = opentelekomcloud_as_group_v1.as_group.id } } condition { period = 300 filter = "average" comparison_operator = ">" value = 80 unit = "%" count = 2 } }
module "network" { source = "../modules/network" } resource "opentelekomcloud_lb_pool_v3" "pool_1" { name = "pool_1" loadbalancer_id = opentelekomcloud_lb_loadbalancer_v3.lb_1.id lb_algorithm = "ROUND_ROBIN" protocol = "TCP" session_persistence { type = "SOURCE_IP" persistence_timeout = "30" } } resource "opentelekomcloud_lb_loadbalancer_v3" "lb_1" { subnet_id = module.network.shared_subnet.subnet_id network_ids = [module.network.shared_subnet.network_id] availability_zones = [var.az] } resource "opentelekomcloud_lb_listener_v3" "listener_1" { name = "listener_1" description = "some interesting description" loadbalancer_id = opentelekomcloud_lb_loadbalancer_v3.lb_1.id protocol = "HTTP" protocol_port = 8080 advanced_forwarding = true sni_match_algo = "wildcard" insert_headers { forwarded_host = true } ip_group { id = opentelekomcloud_lb_ipgroup_v3.group_1.id enable = true } } resource "opentelekomcloud_lb_ipgroup_v3" "group_1" { name = "group_1" description = "group description" ip_list { ip = "192.168.0.10" description = "one" } } resource "opentelekomcloud_as_group_v1" "as_group_1" { scaling_group_name = "as_group_example" scaling_configuration_id = opentelekomcloud_as_configuration_v1.as_config_1.id desire_instance_number = 2 min_instance_number = 0 max_instance_number = 3 networks { id = module.network.shared_subnet.network_id } security_groups { id = module.network.default_security_group_id } vpc_id = module.network.shared_subnet.vpc_id lbaas_listeners { pool_id = opentelekomcloud_lb_pool_v3.pool_1.id protocol_port = opentelekomcloud_lb_listener_v3.listener_1.protocol_port } delete_publicip = true delete_instances = "yes" } resource "opentelekomcloud_as_policy_v1" "policy_example" { scaling_policy_name = "policy_example" scaling_group_id = opentelekomcloud_as_group_v1.as_group_1.id scaling_policy_type = "RECURRENCE" scaling_policy_action { operation = "ADD" } scheduled_policy { launch_time = "07:00" recurrence_type = "Daily" end_time = "2024-12-30T12:00Z" } } resource "opentelekomcloud_as_configuration_v1" "as_config_1" { scaling_configuration_name = "config_example" instance_config { flavor = var.flavor image = var.image_id disk { size = 40 volume_type = "SATA" disk_type = "SYS" } key_name = var.keyname user_data = </tmp/four # ... EOF } }
module "network" { source = "../modules/network" } resource "opentelekomcloud_lb_loadbalancer_v3" "loadbalancer" { router_id = module.network.shared_subnet.vpc_id network_ids = [module.network.shared_subnet.network_id] availability_zones = ["eu-de-01"] } resource "opentelekomcloud_lb_ipgroup_v3" "group_1" { name = "group_1" description = "some interesting description 1" ip_list { ip = "192.168.10.10" description = "first" } depends_on = [opentelekomcloud_lb_loadbalancer_v3.loadbalancer] } resource "opentelekomcloud_lb_listener_v3" "listener" { loadbalancer_id = opentelekomcloud_lb_loadbalancer_v3.loadbalancer.id protocol = "HTTP" protocol_port = 8080 advanced_forwarding = true sni_match_algo = "wildcard" insert_headers { forwarded_host = true } ip_group { id = opentelekomcloud_lb_ipgroup_v3.group_1.id enable = true } depends_on = [ opentelekomcloud_lb_loadbalancer_v3.loadbalancer, opentelekomcloud_lb_ipgroup_v3.group_1 ] } resource "opentelekomcloud_lb_pool_v3" "pool" { loadbalancer_id = opentelekomcloud_lb_loadbalancer_v3.loadbalancer.id lb_algorithm = "ROUND_ROBIN" protocol = "HTTP" depends_on = [opentelekomcloud_lb_listener_v3.listener] } resource "opentelekomcloud_lb_policy_v3" "policy" { name = "policy_updated" description = "some interesting description" action = "REDIRECT_TO_POOL" listener_id = opentelekomcloud_lb_listener_v3.listener.id redirect_pool_id = opentelekomcloud_lb_pool_v3.pool.id position = 37 depends_on = [opentelekomcloud_lb_listener_v3.listener] } resource "opentelekomcloud_lb_rule_v3" "rule" { type = "PATH" compare_type = "EQUAL_TO" value = "/test" policy_id = opentelekomcloud_lb_policy_v3.policy.id conditions { value = "/home" } depends_on = [opentelekomcloud_lb_listener_v3.listener] }
module "network" { source = "../modules/network" } resource "opentelekomcloud_rds_instance_v3" "instance" { name = "tf_rds_instance_1" availability_zone = [var.az] db { password = "Postgres!120521" type = "PostgreSQL" version = "10" port = "8635" } security_group_id = module.network.default_security_group_id subnet_id = module.network.shared_subnet.network_id vpc_id = module.network.shared_subnet.vpc_id volume { type = "COMMON" size = 40 } flavor = "rds.pg.c2.large" backup_strategy { start_time = "08:00-09:00" keep_days = 0 } tags = { muh = "value-create" kuh = "value-create" } lower_case_table_names = "0" }