Skip to content

Commit 9cee382

Browse files
committed
Automation Toolkit Release v10.1
1 parent a4f9b5e commit 9cee382

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+6950
-45
lines changed

cd3_automation_toolkit/ManagementServices/Logging/enable_terraform_logging.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,15 @@ def parse_args():
2626
parser = argparse.ArgumentParser(description="Create Groups terraform file")
2727
parser.add_argument('outdir', help='Output directory for creation of TF files')
2828
parser.add_argument('prefix', help='TF files prefix')
29-
parser.add_argument("service_dir",help="subdirectory under region directory in case of separate out directory structure")
29+
parser.add_argument("service_dir",
30+
help="subdirectory under region directory in case of separate out directory structure for kms/oss")
31+
parser.add_argument("service_dir_iam",
32+
help="subdirectory under region directory in case of separate out directory structure for identity")
3033
parser.add_argument("comp_name", help="compartment name")
3134
parser.add_argument("region_name", help="region name")
3235
parser.add_argument("--configFileName", help="Config file name", required=False)
3336

34-
def enable_cis_oss_logging(outdir, prefix, region_name, comp_name, config=DEFAULT_LOCATION):
37+
def enable_cis_oss_logging(outdir, service_dir, service_dir_iam,prefix, region_name, comp_name, config=DEFAULT_LOCATION):
3538

3639
# Declare variables
3740
configFileName = config
@@ -83,7 +86,7 @@ def enable_cis_oss_logging(outdir, prefix, region_name, comp_name, config=DEFAUL
8386
loggrouptfStr = template.render(tempStr, count = 0, logs = 'true', loggroup = 'false').replace(srcStr, template.render(tempStr, logs = 'true')+"\n"+srcStr)
8487

8588
# Write TF string to the file in respective region directory
86-
reg_out_dir = outdir + "/" + region_name
89+
reg_out_dir = outdir + "/" + region_name +"/" + service_dir
8790
if not os.path.exists(reg_out_dir):
8891
os.makedirs(reg_out_dir)
8992

@@ -337,4 +340,4 @@ def enable_load_balancer_logging(filename, outdir, service_dir, prefix, config=D
337340
if __name__ == '__main__':
338341
# Execution of the code begins here
339342
args = parse_args()
340-
enable_cis_oss_logging(args.outdir, args.prefix, args.config, args.service_dir, args.region_name, args.comp_name)
343+
enable_cis_oss_logging(args.outdir, args.service_dir, args.service_dir_iam,args.prefix, args.config, args.service_dir, args.region_name, args.comp_name)

cd3_automation_toolkit/Network/LoadBalancers/create_terraform_lbr_hostname_certs.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -245,12 +245,6 @@ def certificate_templates(dfcert):
245245
columnvalue = commonTools.check_tf_variable(columnvalue)
246246
tempdict = {'compartment_tf_name': columnvalue}
247247

248-
if columnname == "Reserved IP (Y|N|OCID)":
249-
columnname = "reserved_ips_id"
250-
if columnvalue != "":
251-
if "," in columnvalue:
252-
columnvalue = columnvalue.split(",")
253-
254248
if columnname == "LBR Name":
255249
if columnvalue != '':
256250
lbr_tf_name = commonTools.check_tf_variable(columnvalue)

cd3_automation_toolkit/Security/KeyVault/create_terraform_keyvault.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,17 @@ def parse_args():
2525
# Read the arguments
2626
parser = argparse.ArgumentParser(description="Create Key/Vault terraform file")
2727
parser.add_argument('outdir', help='Output directory for creation of TF files')
28+
parser.add_argument("service_dir",
29+
help="subdirectory under region directory in case of separate out directory structure")
30+
parser.add_argument("service_dir_iam",
31+
help="subdirectory under region directory in case of separate out directory structure for identity")
2832
parser.add_argument('prefix', help='TF files prefix')
2933
parser.add_argument("region_name", help="region name")
3034
parser.add_argument("comp_name", help="compartment name")
3135
parser.add_argument("--configFileName", help="Config file name", required=False)
3236
return parser.parse_args()
3337

34-
def create_cis_keyvault(outdir, prefix, region_name, comp_name, config=DEFAULT_LOCATION):
38+
def create_cis_keyvault(outdir, service_dir, service_dir_iam, prefix, region_name, comp_name, config=DEFAULT_LOCATION):
3539

3640
# Declare variables
3741
configFileName = config
@@ -69,6 +73,7 @@ def create_cis_keyvault(outdir, prefix, region_name, comp_name, config=DEFAULT_L
6973
tempStr['vault_name'] = vault_name
7074
tempStr['vault_tf_name'] = vault_name
7175
tempStr['management_endpoint'] = vault_name
76+
tempStr['algorithm'] = "AES"
7277

7378
vaultStr = vaultStr + vault_template.render(tempStr)
7479
keyStr= keyStr + key_template.render(tempStr)
@@ -88,11 +93,11 @@ def create_cis_keyvault(outdir, prefix, region_name, comp_name, config=DEFAULT_L
8893

8994
if finalstring != "":
9095
resource = "keyvault"
91-
srcdir = outdir + "/" + region_name + "/"
96+
srcdir = outdir + "/" + region_name + "/" + service_dir +"/"
9297
commonTools.backup_file(srcdir, resource, auto_tfvars_filename)
9398

9499
# Write to TF file
95-
outfile = outdir + "/" + region_name + "/" + auto_tfvars_filename
100+
outfile = outdir + "/" + region_name + "/" + service_dir + "/" + auto_tfvars_filename
96101
oname = open(outfile, "w+")
97102
print(outfile + " containing TF for Key/Vault has been created for region "+region_name)
98103
oname.write(finalstring)
@@ -101,4 +106,4 @@ def create_cis_keyvault(outdir, prefix, region_name, comp_name, config=DEFAULT_L
101106
if __name__ == '__main__':
102107
# Execution of the code begins here
103108
args = parse_args()
104-
create_cis_keyvault(args.outdir, args.prefix, args.config, args.region_name, args.comp_name)
109+
create_cis_keyvault(args.outdir, args.service_dir, args.service_dir_iam, args.prefix, args.config, args.region_name, args.comp_name)

cd3_automation_toolkit/Storage/ObjectStorage/create_terraform_oss.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ def parse_args():
2525
# Read the arguments
2626
parser = argparse.ArgumentParser(description="Create Groups terraform file")
2727
parser.add_argument('outdir', help='Output directory for creation of TF files')
28+
parser.add_argument("service_dir",help="subdirectory under region directory in case of separate out directory structure for kms/oss")
29+
parser.add_argument("service_dir_iam",help="subdirectory under region directory in case of separate out directory structure for identity")
2830
parser.add_argument('prefix', help='TF files prefix')
2931
parser.add_argument("region_name", help="region name")
3032
parser.add_argument("comp_name", help="compartment name")
3133
parser.add_argument("--configFileName", deafult=DEFAULT_LOCATION, help="Config file name", required=False)
3234

33-
def create_cis_oss(outdir, prefix, region_name, comp_name, config):
35+
def create_cis_oss(outdir, service_dir, service_dir_iam, prefix, region_name, comp_name, config):
3436
# Declare variables
3537
configFileName = config
3638
comp_name = comp_name.strip()
@@ -78,7 +80,7 @@ def create_cis_oss(outdir, prefix, region_name, comp_name, config):
7880
tempPolStr['description']='Policy allowing OCI OSS service to access Key in the Vault service.'
7981
tempPolStr['policy_statements'] = ''
8082
for reg in ct.all_regions:
81-
actual_policy_statement = "Allow service objectstorage-"+ct.region_dict[reg]+" to use keys in compartment "+comp_name
83+
actual_policy_statement = "allow service objectstorage-"+ct.region_dict[reg]+" to use keys in compartment "+comp_name
8284
tempPolStr['policy_statements'] = "\""+actual_policy_statement + "\","+tempPolStr['policy_statements']
8385
tfPolStr=tfPolStr + policyTemplate.render(tempPolStr)
8486
tfPolStr = tfPolStr + """ ]
@@ -87,15 +89,15 @@ def create_cis_oss(outdir, prefix, region_name, comp_name, config):
8789
tfPolStr = tfPolStr.replace('-#Addstmt]', '')
8890

8991
# Write TF string to the file in respective region directory
90-
reg_out_dir = outdir + "/" + region_name
92+
reg_out_dir = outdir + "/" + region_name + "/" + service_dir
9193
if not os.path.exists(reg_out_dir):
9294
os.makedirs(reg_out_dir)
9395

94-
home_reg_out_dir = outdir + "/" + home_region
96+
home_reg_out_dir = outdir + "/" + home_region + "/" + service_dir_iam
9597
outfile = reg_out_dir + "/" + oss_auto_tfvars_filename
9698
outPolfile= home_reg_out_dir +"/"+ oss_policy_auto_tfvars_filename
9799

98-
srcdir = reg_out_dir + "/"
100+
srcdir = reg_out_dir
99101
resource = 'oss'
100102
commonTools.backup_file(srcdir, resource, oss_auto_tfvars_filename)
101103
commonTools.backup_file(srcdir, resource, oss_policy_auto_tfvars_filename)
@@ -129,4 +131,4 @@ def create_cis_oss(outdir, prefix, region_name, comp_name, config):
129131

130132
if __name__ == '__main__':
131133
args = parse_args()
132-
create_cis_oss(args.outdir, args.prefix, args.region_name, args.comp_name, args.config)
134+
create_cis_oss(args.outdir, args.service_dir, args.service_dir_iam,args.prefix, args.region_name, args.comp_name, args.config)

cd3_automation_toolkit/setUpOCI.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -812,13 +812,20 @@ def create_cis_features():
812812
execute_options(options, outdir, prefix, config)
813813

814814
def create_cis_keyvault_oss_log(*args,**kwargs):
815+
if len(outdir_struct) != 0:
816+
service_dir = outdir_struct['kms']
817+
service_dir_iam = outdir_struct['identity']
818+
else:
819+
service_dir = ""
820+
service_dir_iam= ""
821+
815822
region_name = input("Enter region name eg ashburn where you want to create OSS Bucket and Key/Vault: ")
816823
comp_name = input("Enter name of compartment as it appears in OCI Console: ")
817824

818825
options = [Option(None, Security.create_cis_keyvault, 'Creating KeyVault'),
819826
Option(None, Storage.create_cis_oss, 'Creating Object Storage Bucket'),
820827
Option(None, ManagementServices.enable_cis_oss_logging, 'Enabling Logging for write events to bucket')]
821-
execute_options(options, outdir, prefix,region_name, comp_name, config=config)
828+
execute_options(options, outdir, service_dir, service_dir_iam,prefix,region_name, comp_name, config=config)
822829

823830
def create_cis_budget(*args,**kwargs):
824831
if len(outdir_struct) != 0:

cd3_automation_toolkit/user-scripts/terraform/identity.tf

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,4 +208,26 @@ module "iam-policies" {
208208
output "policies_id_map" {
209209
value = [ for k,v in merge(module.iam-policies.*...) : v.policies_id_map]
210210
}
211-
*/
211+
*/
212+
213+
module "oss-policies" {
214+
source = "./modules/identity/iam-policy"
215+
for_each = var.oss_policies != null ? var.oss_policies : {}
216+
217+
tenancy_ocid = var.tenancy_ocid
218+
policy_name = each.value.name
219+
policy_compartment_id = each.value.compartment_id != "root" ? (length(regexall("ocid1.compartment.oc1*", each.value.compartment_id)) > 0 ? each.value.compartment_id : var.compartment_ocids[each.value.compartment_id]) : var.tenancy_ocid
220+
policy_description = each.value.policy_description
221+
policy_statements = each.value.policy_statements
222+
223+
#Optional
224+
defined_tags = each.value.defined_tags != {} ? each.value.defined_tags : {}
225+
freeform_tags = each.value.freeform_tags != {} ? each.value.freeform_tags : {}
226+
policy_version_date = each.value.policy_version_date != null ? each.value.policy_version_date : null
227+
}
228+
229+
/*
230+
output "oss_policies_id_map" {
231+
value = [ for k,v in merge(module.oss-policies.*...) : v.policies_id_map]
232+
}
233+
*/

cd3_automation_toolkit/user-scripts/terraform/instance.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ data "oci_core_vcns" "oci_vcns" {
2323
module "instances" {
2424
source = "./modules/compute/instance"
2525
for_each = var.instances != null ? var.instances : {}
26+
# depends_on = [module.dedicated-hosts] # Uncomment to create DVH and Instances together
2627
availability_domain = each.value.availability_domain != "" && each.value.availability_domain != null ? data.oci_identity_availability_domains.availability_domains.availability_domains[each.value.availability_domain].name : ""
2728
compartment_id = each.value.compartment_id != null ? (length(regexall("ocid1.compartment.oc1*", each.value.compartment_id)) > 0 ? each.value.compartment_id : var.compartment_ocids[each.value.compartment_id]) : null
2829
network_compartment_id = each.value.network_compartment_id != null ? (length(regexall("ocid1.compartment.oc1*", each.value.network_compartment_id)) > 0 ? each.value.network_compartment_id : var.compartment_ocids[each.value.network_compartment_id]) : null

cd3_automation_toolkit/user-scripts/terraform/loadbalancer.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ module "load-balancers" {
5858
network_security_group_ids = each.value.nsg_ids
5959
key_name = each.key
6060
load_balancers = var.load_balancers
61-
reserved_ips_id = lower(each.value.reserved_ips_id) != "n" && each.value.reserved_ips_id != null ? (length(regexall("ocid1.publicip.oc1*", each.value.reserved_ips_id)) > 0 ? [each.value.reserved_ips_id] : [merge(module.lbr-reserved-ips.*...)[join("-", [each.key, "reserved", "ip"])].reserved_ip_tf_id]) : []
61+
reserved_ips_id = each.value.reserved_ips_id != null ? (lower(each.value.reserved_ips_id) != "n" ? (length(regexall("ocid1.publicip.oc1*", each.value.reserved_ips_id)) > 0 ? [each.value.reserved_ips_id] : [merge(module.lbr-reserved-ips.*...)[join("-", [each.key, "reserved", "ip"])].reserved_ip_tf_id]) : []) : []
6262
}
6363

6464
/*

cd3_automation_toolkit/user-scripts/terraform/object-storage.tf

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,6 @@ data "oci_objectstorage_namespace" "bucket_namespace" {
1010
compartment_id = var.tenancy_ocid
1111
}
1212

13-
module "oss-policies" {
14-
source = "./modules/identity/iam-policy"
15-
for_each = var.oss_policies != null ? var.oss_policies : {}
16-
17-
tenancy_ocid = var.tenancy_ocid
18-
policy_name = each.value.name
19-
policy_compartment_id = each.value.compartment_id != "root" ? (length(regexall("ocid1.compartment.oc1*", each.value.compartment_id)) > 0 ? each.value.compartment_id : var.compartment_ocids[each.value.compartment_id]) : var.tenancy_ocid
20-
policy_description = each.value.policy_description
21-
policy_statements = each.value.policy_statements
22-
23-
#Optional
24-
defined_tags = each.value.defined_tags != {} ? each.value.defined_tags : {}
25-
freeform_tags = each.value.freeform_tags != {} ? each.value.freeform_tags : {}
26-
policy_version_date = each.value.policy_version_date != null ? each.value.policy_version_date : null
27-
}
28-
29-
/*
30-
output "oss_policies_id_map" {
31-
value = [ for k,v in merge(module.oss-policies.*...) : v.policies_id_map]
32-
}
33-
*/
34-
3513
#############################
3614
# Module Block - Object Storage
3715
# Create Object Storage

0 commit comments

Comments
 (0)