Skip to content

Commit 75a3b10

Browse files
JCS-13564 SRG: provisioning fails with no bastion and new vcn
- Use local CIDR variables, which get default values. - Add security rule to open port 22 when assigning public IP to WebLogic
1 parent 445aecc commit 75a3b10

File tree

3 files changed

+37
-9
lines changed

3 files changed

+37
-9
lines changed

terraform/main.tf

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ module "network-vcn-config" {
3838
wls_expose_admin_port = var.wls_expose_admin_port
3939
wls_admin_port_source_cidr = var.wls_admin_port_source_cidr
4040
wls_ms_content_port = var.is_idcs_selected ? var.idcs_cloudgate_port : var.wls_ms_extern_ssl_port
41+
assign_backend_public_ip = local.assign_weblogic_public_ip
4142

4243
wls_security_list_name = !local.assign_weblogic_public_ip ? "bastion-security-list" : "wls-security-list"
4344
wls_subnet_cidr = local.wls_subnet_cidr
@@ -56,7 +57,7 @@ module "network-vcn-config" {
5657
create_nat_gateway = var.is_idcs_selected && var.wls_vcn_name != ""
5758
create_service_gateway = var.wls_vcn_name != ""
5859
create_internet_gateway = var.wls_vcn_name != ""
59-
lb_destination_cidr = var.is_lb_private ? var.bastion_subnet_cidr : "0.0.0.0/0"
60+
lb_destination_cidr = var.is_lb_private ? local.bastion_subnet_cidr : "0.0.0.0/0"
6061
add_fss = var.add_fss
6162
add_existing_mount_target = local.add_existing_mount_target
6263
add_existing_fss = var.add_existing_fss
@@ -78,7 +79,7 @@ module "network-vcn-config" {
7879

7980
module "network-lb-nsg" {
8081
source = "./modules/network/nsg"
81-
count = local.use_existing_lb ? 0 : local.add_load_balancer && var.lb_subnet_1_cidr != "" ? 1 : 0
82+
count = local.use_existing_lb ? 0 : local.add_load_balancer && local.lb_subnet_1_subnet_cidr != "" ? 1 : 0
8283
compartment_id = local.network_compartment_id
8384
vcn_id = local.vcn_id
8485
nsg_name = "${local.service_name_prefix}-lb-nsg"
@@ -91,7 +92,7 @@ module "network-lb-nsg" {
9192

9293
module "network-bastion-nsg" {
9394
source = "./modules/network/nsg"
94-
count = var.is_bastion_instance_required && var.existing_bastion_instance_id == "" && var.bastion_subnet_cidr != "" ? 1 : 0
95+
count = var.is_bastion_instance_required && var.existing_bastion_instance_id == "" && local.bastion_subnet_cidr != "" ? 1 : 0
9596
compartment_id = local.network_compartment_id
9697
vcn_id = local.vcn_id
9798
nsg_name = "${local.service_name_prefix}-bastion-nsg"
@@ -104,7 +105,7 @@ module "network-bastion-nsg" {
104105

105106
module "network-mount-target-nsg" {
106107
source = "./modules/network/nsg"
107-
count = var.add_fss && var.mount_target_subnet_cidr != "" ? 1 : 0
108+
count = var.add_fss && local.mount_target_subnet_cidr != "" ? 1 : 0
108109
compartment_id = local.network_compartment_id
109110
vcn_id = local.vcn_id
110111
nsg_name = "${local.service_name_prefix}-mount-target-nsg"
@@ -117,7 +118,7 @@ module "network-mount-target-nsg" {
117118

118119
module "network-compute-admin-nsg" {
119120
source = "./modules/network/nsg"
120-
count = var.wls_subnet_cidr != "" ? 1 : 0
121+
count = local.wls_subnet_cidr != "" ? 1 : 0
121122
compartment_id = local.network_compartment_id
122123
vcn_id = local.vcn_id
123124
nsg_name = "${local.service_name_prefix}-admin-server-nsg"
@@ -130,7 +131,7 @@ module "network-compute-admin-nsg" {
130131

131132
module "network-compute-managed-nsg" {
132133
source = "./modules/network/nsg"
133-
count = var.wls_subnet_cidr != "" ? 1 : 0
134+
count = local.wls_subnet_cidr != "" ? 1 : 0
134135
compartment_id = local.network_compartment_id
135136
vcn_id = local.vcn_id
136137
nsg_name = "${local.service_name_prefix}-managed-server-nsg"
@@ -363,7 +364,7 @@ module "validators" {
363364
existing_vcn_id = var.wls_existing_vcn_id
364365
wls_subnet_cidr = var.wls_subnet_cidr
365366
lb_subnet_1_cidr = var.lb_subnet_1_cidr
366-
bastion_subnet_cidr = var.bastion_subnet_cidr
367+
bastion_subnet_cidr = local.bastion_subnet_cidr
367368
assign_public_ip = local.assign_weblogic_public_ip
368369
is_bastion_instance_required = var.is_bastion_instance_required
369370
existing_bastion_instance_id = var.existing_bastion_instance_id

terraform/modules/network/vcn-config/nsg_security_rule.tf

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# Licensed under the Universal Permissive License v1.0 as shown at https://oss.oracle.com/licenses/upl.
33

44
resource "oci_core_network_security_group_security_rule" "bastion_ingress_security_rule" {
5+
count = var.is_bastion_instance_required && !var.assign_backend_public_ip ? 1 : 0
56

67
network_security_group_id = element(var.nsg_ids["bastion_nsg_id"], 0)
78
direction = "INGRESS"
@@ -20,6 +21,26 @@ resource "oci_core_network_security_group_security_rule" "bastion_ingress_securi
2021
}
2122
}
2223

24+
resource "oci_core_network_security_group_security_rule" "wls_public_ingress_security_rule" {
25+
count = var.assign_backend_public_ip ? 1 : 0
26+
27+
network_security_group_id = element(var.nsg_ids["managed_nsg_id"], 0)
28+
direction = "INGRESS"
29+
protocol = "6"
30+
31+
32+
source = "0.0.0.0/0"
33+
source_type = "CIDR_BLOCK"
34+
stateless = false
35+
36+
tcp_options {
37+
destination_port_range {
38+
max = 22
39+
min = 22
40+
}
41+
}
42+
}
43+
2344
resource "oci_core_network_security_group_security_rule" "wls_ingress_security_rule" {
2445
count = length(local.wls_admin_port_source_cidrs) > 0 ? length(local.wls_admin_port_source_cidrs) : 0
2546
network_security_group_id = element(var.nsg_ids["admin_nsg_id"], 0)
@@ -105,7 +126,7 @@ resource "oci_core_network_security_group_security_rule" "lb_ingress_security_ru
105126
}
106127

107128
resource "oci_core_network_security_group_security_rule" "wls_bastion_ingress_security_rule" {
108-
count = var.existing_bastion_instance_id == "" && var.is_bastion_instance_required ? 1 : 0
129+
count = var.existing_bastion_instance_id == "" && var.is_bastion_instance_required && !var.assign_backend_public_ip ? 1 : 0
109130
network_security_group_id = element(var.nsg_ids["managed_nsg_id"], 0)
110131
direction = "INGRESS"
111132
protocol = "all"
@@ -116,7 +137,7 @@ resource "oci_core_network_security_group_security_rule" "wls_bastion_ingress_se
116137
}
117138

118139
resource "oci_core_network_security_group_security_rule" "wls_existing_bastion_ingress_security_rule" {
119-
count = var.existing_bastion_instance_id != "" && var.is_bastion_instance_required ? 1 : 0
140+
count = var.existing_bastion_instance_id != "" && var.is_bastion_instance_required && !var.assign_backend_public_ip ? 1 : 0
120141
network_security_group_id = element(var.nsg_ids["managed_nsg_id"], 0)
121142
direction = "INGRESS"
122143
protocol = "all"

terraform/modules/network/vcn-config/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ variable "wls_admin_port_source_cidr" {
4747
description = "The CIDR value of the wls admin source port"
4848
}
4949

50+
variable "assign_backend_public_ip" {
51+
type = string
52+
description = "TBD"
53+
#default = false
54+
}
55+
5056
// Optional params
5157

5258
/*

0 commit comments

Comments
 (0)