diff --git a/locals.tf b/locals.tf index cd4b700..567e6cf 100644 --- a/locals.tf +++ b/locals.tf @@ -20,6 +20,9 @@ locals { lblogdef = { for k, v in var.service_logdef : k => v if v.service == "loadbalancer" } lbloggroup = [for k, v in var.service_logdef : v.loggroup if v.service == "loadbalancer"] + medialogdef = { for k, v in var.service_logdef : k => v if v.service == "mediaflow" } + medialoggroup = [for k, v in var.service_logdef : v.loggroup if v.service == "mediaflow"] + oslogdef = { for k, v in var.service_logdef : k => v if v.service == "objectstorage" } osloggroup = [for k, v in var.service_logdef : v.loggroup if v.service == "objectstorage"] diff --git a/main.tf b/main.tf index c134527..0f35a24 100644 --- a/main.tf +++ b/main.tf @@ -82,6 +82,18 @@ resource "oci_logging_log_group" "lbloggroup" { } +#Mediaflow loggroup resource +resource "oci_logging_log_group" "medialoggroup" { + + for_each = toset(local.medialoggroup) + + compartment_id = var.compartment_id + description = "Mediaflow Loggroup" + display_name = var.label_prefix == "none" ? each.value : format("%s-%s", var.label_prefix, each.value) + freeform_tags = var.loggroup_tags + +} + #ObjectStorage loggroup resource resource "oci_logging_log_group" "osloggroup" { @@ -253,6 +265,18 @@ module "lblog" { } +module "mediaflowlog" { + source = "./modules/mediaflow" + compartment_id = var.compartment_id + label_prefix = var.label_prefix + logdefinition = local.medialogdef + log_retention_duration = var.log_retention_duration + loggroup = oci_logging_log_group.medialoggroup + + count = length(local.medialogdef) >= 1 ? 1 : 0 + +} + module "objectstorelog" { source = "./modules/objectstorage" compartment_id = var.compartment_id diff --git a/modules/mediaflow/mediaflowlog.tf b/modules/mediaflow/mediaflowlog.tf new file mode 100644 index 0000000..079a49a --- /dev/null +++ b/modules/mediaflow/mediaflowlog.tf @@ -0,0 +1,32 @@ +data "oci_media_services_media_workflows" "media_workflows" { + + for_each = var.logdefinition + compartment_id = var.compartment_id + + display_name = each.value.resource + state = "ACTIVE" +} + + + +resource "oci_logging_log" "mediaflow_execution_log" { + + + for_each = var.logdefinition + + display_name = var.label_prefix == "none" ? format("%s%s", "execution", each.key) : format("%s-%s%s", var.label_prefix, "execution", each.key) + log_group_id = var.loggroup[each.value.loggroup].id + log_type = "SERVICE" + configuration { + source { + category = "execution" + resource = data.oci_media_services_media_workflows.media_workflows[each.key].media_workflow_collection[0]["items"].0.id + service = "mediaflow" + source_type = "OCISERVICE" + } + } + + is_enabled = lookup(each.value, "enable", true) + retention_duration = var.log_retention_duration + +} diff --git a/modules/mediaflow/outputs.tf b/modules/mediaflow/outputs.tf new file mode 100644 index 0000000..d09fee6 --- /dev/null +++ b/modules/mediaflow/outputs.tf @@ -0,0 +1,7 @@ +output "mediaflow_executionlogid" { + value = { for v in oci_logging_log.mediaflow_execution_log : v.display_name => v.id } +} + +output "media_loggroupid" { + value = { for k, v in var.loggroup : v.display_name => v.id } +} diff --git a/modules/mediaflow/variables.tf b/modules/mediaflow/variables.tf new file mode 100644 index 0000000..864efd5 --- /dev/null +++ b/modules/mediaflow/variables.tf @@ -0,0 +1,23 @@ +variable "label_prefix" { + default = "none" + description = "A string that will be prepended to log resources." + type = string +} +variable "logdefinition" { + type = map(any) + description = "Log definition" +} +variable "log_retention_duration" { + type = string + description = "Duration to retain logs" +} + +variable "compartment_id" { + type = string + description = "Compartment ID where the resources will be created" +} + +variable "loggroup" { + type = map(any) + description = "Log Group" +} diff --git a/modules/mediaflow/versions.tf b/modules/mediaflow/versions.tf new file mode 100644 index 0000000..02af447 --- /dev/null +++ b/modules/mediaflow/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_providers { + oci = { + source = "oracle/oci" + version = ">= 4.67.3" + } + } + required_version = ">= 1.0.0" +} diff --git a/outputs.tf b/outputs.tf index 2a0853b..1009304 100644 --- a/outputs.tf +++ b/outputs.tf @@ -101,6 +101,18 @@ output "linux_logid" { output "linux_loggroupid" { value = try(module.customlog[0].linuxloggroupid, "") description = "Custom Linux loggroup id" + +} + +#MediaFlow log and loggroup id +output "media_executionlogid" { + value = try(module.mediaflowlog[0].mediaflow_executionlogid, "") + description = "MediaFlow execution logs id" +} + +output "media_loggroupid" { + value = try(module.mediaflowlog[0].media_loggroupid, "") + description = "MediaFlow loggroup id" } #ObjectStorage log and loggroup id @@ -135,6 +147,7 @@ output "vcn_loggroupid" { output "vpn_logid" { value = try(module.vpnlog[0].vpn_logid, "") description = "VPN IPSEC read logs id" + } output "vpn_loggroupid" { diff --git a/terraform.tfvars.example b/terraform.tfvars.example index acaa244..9f4c166 100644 --- a/terraform.tfvars.example +++ b/terraform.tfvars.example @@ -30,6 +30,7 @@ service_logdef = { #emaillog = {loggroup="emailloggroup",service="email",resource=""} #intlog = {loggroup="intloggroup",service="integration",resource=""} #waflog = {loggroup="wafloggroup",service="waf",resource=""} + #medialog = {loggroup="medialoggroup",service="mediaflow",resource=""} }