Skip to content

Commit 9d24afb

Browse files
authored
adding integration service log (#7)
1 parent a007c40 commit 9d24afb

File tree

7 files changed

+96
-0
lines changed

7 files changed

+96
-0
lines changed

locals.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ locals {
1414
funclogdef = { for k, v in var.service_logdef : k => v if v.service == "functions" }
1515
funcloggroup = [for k, v in var.service_logdef : v.loggroup if v.service == "functions"]
1616

17+
intlogdef = { for k, v in var.service_logdef : k => v if v.service == "integration" }
18+
intloggroup = [for k, v in var.service_logdef : v.loggroup if v.service == "integration"]
19+
1720
lblogdef = { for k, v in var.service_logdef : k => v if v.service == "loadbalancer" }
1821
lbloggroup = [for k, v in var.service_logdef : v.loggroup if v.service == "loadbalancer"]
1922

main.tf

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ resource "oci_logging_log_group" "funcloggroup" {
5858

5959
}
6060

61+
#Integration loggroup resource
62+
resource "oci_logging_log_group" "intloggroup" {
63+
64+
for_each = toset(local.intloggroup)
65+
66+
compartment_id = var.compartment_id
67+
description = "Integration Loggroup"
68+
display_name = var.label_prefix == "none" ? each.value : format("%s-%s", var.label_prefix, each.value)
69+
freeform_tags = var.loggroup_tags
70+
71+
}
72+
6173
#Loadbalancer loggroup resource
6274
resource "oci_logging_log_group" "lbloggroup" {
6375

@@ -206,6 +218,17 @@ module "funclog" {
206218

207219
}
208220

221+
module "intlog" {
222+
source = "./modules/integration"
223+
compartment_id = var.compartment_id
224+
label_prefix = var.label_prefix
225+
logdefinition = local.intlogdef
226+
log_retention_duration = var.log_retention_duration
227+
loggroup = oci_logging_log_group.intloggroup
228+
229+
count = length(local.intlogdef) >= 1 ? 1 : 0
230+
231+
}
209232
module "lblog" {
210233
source = "./modules/lb"
211234
compartment_id = var.compartment_id

modules/integration/intlog.tf

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
data "oci_integration_integration_instances" "integration_instances" {
2+
for_each = var.logdefinition
3+
compartment_id = var.compartment_id
4+
5+
#Optional
6+
display_name = each.value.resource
7+
state = "ACTIVE"
8+
}
9+
10+
resource "oci_logging_log" "integration_log" {
11+
for_each = var.logdefinition
12+
13+
display_name = var.label_prefix == "none" ? each.key : format("%s-%s", var.label_prefix, each.key)
14+
log_group_id = var.loggroup[each.value.loggroup].id
15+
log_type = "SERVICE"
16+
configuration {
17+
source {
18+
category = "activitystream"
19+
resource = data.oci_integration_integration_instances.integration_instances[each.key].integration_instances.0.id
20+
service = "integration"
21+
source_type = "OCISERVICE"
22+
}
23+
}
24+
25+
is_enabled = lookup(each.value, "enable", true)
26+
retention_duration = var.log_retention_duration
27+
28+
}

modules/integration/outputs.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
output "int_logid" {
2+
value = { for v in oci_logging_log.integration_log : v.display_name => v.id }
3+
}
4+
5+
output "int_loggroupid" {
6+
value = { for k, v in var.loggroup : v.display_name => v.id }
7+
}

modules/integration/variables.tf

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
variable "label_prefix" {
2+
default = "none"
3+
description = "A string that will be prepended to log resources."
4+
type = string
5+
}
6+
variable "logdefinition" {
7+
type = map(any)
8+
description = "Log definition"
9+
}
10+
variable "log_retention_duration" {
11+
type = string
12+
description = "Duration to retain logs"
13+
}
14+
15+
variable "compartment_id" {
16+
type = string
17+
description = "Compartment ID where the resources will be created"
18+
}
19+
20+
variable "loggroup" {
21+
type = map(any)
22+
description = "Log Group"
23+
}

outputs.tf

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,17 @@ output "func_loggroupid" {
6565
description = "Function loggroup id"
6666
}
6767

68+
#Integration log and loggroup id
69+
output "int_logid" {
70+
value = try(module.intlog[0].int_logid, "")
71+
description = "Integration logs id"
72+
}
73+
74+
output "int_loggroupid" {
75+
value = try(module.intlog[0].int_loggroupid, "")
76+
description = "Integration loggroup id"
77+
}
78+
6879
#Loadbalancer log and loggroup id
6980
output "lb_accesslogid" {
7081
value = try(module.lblog[0].lb_accesslogid, "")

terraform.tfvars.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ service_logdef = {
2828
#vpnlog ={loggroup="vpnloggroup",service="vpn",resource="<ipsecname>"}
2929
#devopslog = {loggroup="devopsloggroup",service="devops",resource="<projectname>"}
3030
#emaillog = {loggroup="emailloggroup",service="email",resource="<emaildomain>"}
31+
#intlog = {loggroup="intloggroup",service="integration",resource="<integrationinstance>"}
3132

3233
}
3334

0 commit comments

Comments
 (0)