Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Requirements

https://github.com/ocilabs/

Providers

Name Version
oci n/a
null n/a
time n/a

Module

// --- operation controls --- //
provider "oci" {
  alias  = "home"
  region = module.configuration.tenancy.region.key
}
module "resident" {
  source = "github.com/ocilabs/resident"
  depends_on = [module.configuration]
  providers  = {oci = oci.home}
  tenancy    = module.configuration.tenancy
  resident   = module.configuration.resident
  input = {
    # Reference to the deployment root. The service is setup in an encapsulating child compartment 
    parent_id     = var.config.tenancy_ocid
    # Enable compartment delete on destroy. If true, compartment will be deleted when `terraform destroy` is executed; If false, compartment will not be deleted on `terraform destroy` execution
    enable_delete = var.stage != "PROD" ? true : false
  }
}
output "resident" {
  value = {for resource, parameter in module.resident : resource => parameter}
}
// --- operation controls --- //

Resources

Name Type
null_resource.previous resource
oci_identity_compartment.domains resource
oci_identity_compartment.resident resource
oci_identity_group.resident resource
oci_identity_policy.domains resource
oci_identity_tag.resident resource
oci_identity_tag_default.resident resource
oci_identity_tag_namespace.resident resource
oci_ons_notification_topic.resident resource
oci_ons_subscription.resident resource
time_sleep.wait resource
oci_identity_tenancy.resident data source

Inputs

Name Description Type Default Required
input Settings for the service resident
object({
parent_id = string,
enable_delete = bool
})
n/a yes
tenancy Tenancy Configuration
object({
class = number,
buckets = string,
id = string,
region = map(string)
})
n/a yes
resident Service Configuration
object({
owner = string,
name = string,
label = string,
stage = number,
region = map(string)
compartments = map(number),
repository = string,
groups = map(string),
policies = map(any),
notifications = map(any),
tag_namespaces = map(number),
tags = any
})
n/a yes

Outputs

Name Description
id The Oracle Cloud Identifier (OCID) for the service compartment. It allows to retrieve the compartment details using data blocks.
parent_id The OCID of the parent compartment for the service.
compartment_ids A list of OCID for the child compartments, representing the different administration domain.
namespace_ids A list of tag_namespaces created for the service compartment in the tenancy. This allows to define separate tags for every service. Namespace names have to be unique.
tag_ids A list of tags, created in the tag namespaces.
group_ids A list of groups, created for the service in the tenancy or root compartment. This allows to define separate policies for every service. Group names have to be unique.
notifications A list of notifcation topics, defined for a resident.
policy_ids A list of policy controls, defined for the different admistrator roles. Policy names correspond with the groups defined on tenancy level.
freeform_tags A list of predefined freeform tags, referenced in the provisioning process.
defined_tags A list of actionable tags, utilized for operation, budget- and compliance control.