Skip to content

Commit 9dcbf96

Browse files
authored
added support for analyticscloud log (oracle-terraform-modules#25)
1 parent 0559544 commit 9dcbf96

File tree

13 files changed

+138
-18
lines changed

13 files changed

+138
-18
lines changed

locals.tf

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

44
locals {
5+
6+
analyticscloudlogdef = { for k, v in var.service_logdef : k => v if v.service == "oacnativeproduction" }
7+
analyticscloudloggroup = [for k, v in var.service_logdef : v.loggroup if v.service == "oacnativeproduction"]
8+
59
apigwlogdef = { for k, v in var.service_logdef : k => v if v.service == "apigateway" }
610
apigwloggroup = [for k, v in var.service_logdef : v.loggroup if v.service == "apigateway"]
711

main.tf

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
#Copyright (c) 2021, 2023 Oracle Corporation and/or its affiliates.
22
#Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl
33

4+
#Analytics Cloud loggroup resource
5+
resource "oci_logging_log_group" "analyticscloudloggroup" {
6+
7+
for_each = toset(local.analyticscloudloggroup)
8+
9+
compartment_id = var.compartment_id
10+
description = "Oracle Analytics Cloud Loggroup"
11+
display_name = var.label_prefix == "none" ? each.value : format("%s-%s", var.label_prefix, each.value)
12+
freeform_tags = var.loggroup_tags
13+
14+
}
15+
416
#APIGateway loggroup resource
517
resource "oci_logging_log_group" "apigwloggroup" {
618

@@ -304,6 +316,18 @@ module "mediaflowlog" {
304316

305317
}
306318

319+
module "analyticscloudlog" {
320+
source = "./modules/analyticscloud"
321+
compartment_id = var.compartment_id
322+
label_prefix = var.label_prefix
323+
logdefinition = local.analyticscloudlogdef
324+
log_retention_duration = var.log_retention_duration
325+
loggroup = oci_logging_log_group.analyticscloudloggroup
326+
327+
count = length(local.analyticscloudlogdef) >= 1 ? 1 : 0
328+
329+
}
330+
307331
module "objectstorelog" {
308332
source = "./modules/objectstorage"
309333
compartment_id = var.compartment_id
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#Copyright (c) 2023 Oracle Corporation and/or its affiliates.
2+
#Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl
3+
4+
data "oci_analytics_analytics_instances" "analyticscloud" {
5+
for_each = var.logdefinition
6+
7+
compartment_id = var.compartment_id
8+
9+
name = each.value.resource
10+
state = "ACTIVE"
11+
}
12+
13+
14+
resource "oci_logging_log" "analyticscloud_audit_log" {
15+
16+
17+
for_each = var.logdefinition
18+
19+
display_name = var.label_prefix == "none" ? format("%s%s", "audit", each.key) : format("%s-%s%s", var.label_prefix, "access", each.key)
20+
log_group_id = var.loggroup[each.value.loggroup].id
21+
log_type = "SERVICE"
22+
configuration {
23+
source {
24+
category = "audit"
25+
resource = data.oci_analytics_analytics_instances.analyticscloud[each.key].analytics_instances.0.id
26+
service = "oacnativeproduction"
27+
source_type = "OCISERVICE"
28+
}
29+
}
30+
31+
is_enabled = lookup(each.value, "enable", true)
32+
retention_duration = var.log_retention_duration
33+
34+
}
35+
36+
resource "oci_logging_log" "analyticscloud_diag_log" {
37+
for_each = var.logdefinition
38+
39+
display_name = var.label_prefix == "none" ? format("%s%s", "diagnostic", each.key) : format("%s-%s%s", var.label_prefix, "exec", each.key)
40+
log_group_id = var.loggroup[each.value.loggroup].id
41+
log_type = "SERVICE"
42+
configuration {
43+
source {
44+
category = "diagnostic"
45+
resource = data.oci_analytics_analytics_instances.analyticscloud[each.key].analytics_instances.0.id
46+
service = "oacnativeproduction"
47+
source_type = "OCISERVICE"
48+
}
49+
}
50+
51+
is_enabled = lookup(each.value, "enable", true)
52+
retention_duration = var.log_retention_duration
53+
54+
}

modules/analyticscloud/outputs.tf

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#Copyright (c) 2023 Oracle Corporation and/or its affiliates.
2+
#Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl
3+
4+
output "analyticscloud_auditlogid" {
5+
value = { for v in oci_logging_log.analyticscloud_audit_log : v.display_name => v.id }
6+
}
7+
8+
output "analyticscloud_diaglogid" {
9+
value = { for v in oci_logging_log.analyticscloud_diag_log : v.display_name => v.id }
10+
}
11+
12+
output "analyticscloud_loggroupid" {
13+
value = { for k, v in var.loggroup : v.display_name => v.id }
14+
}

modules/analyticscloud/variables.tf

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#Copyright (c) 2023 Oracle Corporation and/or its affiliates.
2+
#Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl
3+
4+
variable "label_prefix" {
5+
default = "none"
6+
description = "A string that will be prepended to log resources."
7+
type = string
8+
}
9+
variable "logdefinition" {
10+
type = map(any)
11+
description = "Log definition"
12+
}
13+
14+
variable "log_retention_duration" {
15+
type = string
16+
description = "Duration to retain logs"
17+
}
18+
19+
variable "compartment_id" {
20+
type = string
21+
description = "Compartment ID where the resources will be created"
22+
}
23+
24+
variable "loggroup" {
25+
type = map(any)
26+
description = "Log Group"
27+
}

modules/analyticscloud/versions.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#Copyright (c) 2023 Oracle Corporation and/or its affiliates.
2+
#Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl
3+
4+
terraform {
5+
required_providers {
6+
oci = {
7+
source = "oracle/oci"
8+
version = ">= 4.67.3"
9+
}
10+
}
11+
required_version = ">= 1.0.0"
12+
}

modules/apigateway/apigwlog.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ data "oci_apigateway_deployments" "apigw_deployments" {
66
for_each = var.logdefinition
77
compartment_id = var.compartment_id
88

9-
#Optional
109
display_name = each.value.resource
1110
state = "ACTIVE"
1211
}

modules/custom/customlog.tf

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ resource "oci_logging_unified_agent_configuration" "linux_unified_agent_configur
2323

2424
configuration_type = "LOGGING"
2525

26-
#Optional
2726
destination {
2827

2928
log_object_id = oci_logging_log.linux_log[each.key].id
@@ -148,7 +147,6 @@ resource "oci_logging_unified_agent_configuration" "windows_unified_agent_config
148147

149148
configuration_type = "LOGGING"
150149

151-
#Optional
152150
destination {
153151

154152
log_object_id = oci_logging_log.win_log[each.key].id
@@ -158,21 +156,15 @@ resource "oci_logging_unified_agent_configuration" "windows_unified_agent_config
158156

159157
source_type = "WINDOWS_EVENT_LOG"
160158

161-
#Optional
159+
162160
channels = lookup(each.value, "channel", ["Application"])
163161
name = each.key
164162
}
165163

166164
}
167-
#Optional
168-
# defined_tags = {
169-
# "${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}" = var.log_group_defined_tags_value
170-
# }
171165

172-
# freeform_tags = var.unified_agent_configuration_freeform_tags
173166
group_association {
174167

175-
#Optional
176168
group_list = [data.oci_identity_dynamic_groups.win_dynamic_groups[each.key].dynamic_groups.0.id]
177169
}
178170

@@ -210,7 +202,6 @@ data "oci_identity_dynamic_groups" "linux_dynamic_groups" {
210202
for_each = local.logdef
211203
compartment_id = var.tenancy_id
212204

213-
#Optional
214205
name = each.value.dg
215206
state = "ACTIVE"
216207
}
@@ -220,7 +211,6 @@ data "oci_identity_dynamic_groups" "win_dynamic_groups" {
220211
for_each = local.winlogdef
221212
compartment_id = var.tenancy_id
222213

223-
#Optional
224214
name = each.value.dg
225215
state = "ACTIVE"
226216
}

modules/emaildelivery/emaillog.tf

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ data "oci_email_email_domains" "email_domains" {
55
for_each = var.logdefinition
66
compartment_id = var.compartment_id
77

8-
#Optional
9-
#id = var.email_domain_id
108
name = each.value.resource
119
state = "ACTIVE"
1210
}

modules/event/eventlog.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ data "oci_events_rules" "event_rules" {
55
for_each = var.logdefinition
66
compartment_id = var.compartment_id
77

8-
#Optional
98
display_name = each.value.resource
109
state = "ACTIVE"
1110
}

modules/function/functionlog.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ data "oci_functions_applications" "func_apps" {
66
for_each = var.logdefinition
77
compartment_id = var.compartment_id
88

9-
#Optional
109
display_name = each.value.resource
1110

1211
}

modules/integration/intlog.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ data "oci_integration_integration_instances" "integration_instances" {
55
for_each = var.logdefinition
66
compartment_id = var.compartment_id
77

8-
#Optional
98
display_name = each.value.resource
109
state = "ACTIVE"
1110
}

terraform.tfvars.example

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ service_logdef = {
3434
#intlog = {loggroup="intloggroup",service="integration",resource="<integrationinstance>"}
3535
#waflog = {loggroup="wafloggroup",service="waf",resource="<firewallname>"}
3636
#medialog = {loggroup="medialoggroup",service="mediaflow",resource="<mediaworkflow>"}
37-
#apmlog = {loggroup="apmloggroup",service="apm",resource="apmdomain"}
37+
#apmlog = {loggroup="apmloggroup",service="apm",resource="<apmdomain>"}
38+
#OAClog = {loggroup="OACloggroup",service="oacnativeproduction",resource="<OACinstance>"}
3839

3940
}
4041

0 commit comments

Comments
 (0)