auto.tfvars syntax for Storage Module
These are the syntax and sample format for providing inputs to the modules via *.auto.tfvars files. "key" must be unique to every resource that is created. Comments preceed with ##.
Block Volumes
- Syntax
 
    blockvolumes = {
            ## key - Is a unique value to reference the resources respectively
            key = {
                    # Required
                    availability_domain       = string
                    compartment_id            = string
                    display_name              = string
                    # Optional
                    size_in_gbs               = string
                    is_auto_tune_enabled      = string
                    vpus_per_gb               = string
                    kms_key_id                = string
                    attach_to_instance        = string
                    attachment_type           = string
                    backup_policy             = string
                    policy_compartment_id     = string
                    device                    = string
                    encryption_in_transit_type= string
                    attachment_display_name   = string
                    is_read_only              = bool
                    is_pv_encryption_in_transit_enabled = bool
                    is_shareable              = bool
                    is_agent_auto_iscsi_login_enabled = bool
                    use_chap                  = bool
                    source_details            = list(map(any))
                    block_volume_replicas     = list(map(any))
                    block_volume_replicas_deletion = bool
                    autotune_policies         = list(map(any))
                    defined_tags              = map
                    freeform_tags             = map
        }
    }
- Example
// Copyright (c) 2021, 2022, Oracle and/or its affiliates. ############################ # Block Volumes # Block Volumes - tfvars # Allowed Values: # compartment_id and policy_compartment_id can be the ocid or the name of the compartment hierarchy delimited by double hiphens "--" # Example : compartment_id = "ocid1.compartment.oc1..aaaaaaaahwwiefb56epvdlzfic6ah6jy3xf3c" or compartment_id = "Network-root-cpt--Network" where "Network-root-cpt" is the parent of "Network" compartment # Sample import command for block volume: # terraform import "module.block-volumes[\"<<blockvolumes terraform variable name>>\"].oci_core_volume.block_volume" <<block volume ocid>> # terraform import "module.block-volumes[\"<<blockvolumes terraform variable name>>\"].oci_core_volume_attachment.block_vol_instance_attachment[0]" <<block volume attachment ocid>> # terraform import "module.block-volumes[\"<<blockvolumes terraform variable name>>\"].oci_core_volume_backup_policy_assignment.volume_backup_policy_assignment[0]" <<block volume policy assignment ocid>> ############################ blockvolumes = { block01 = { # Required availability_domain = 0 compartment_id = "AppDev" display_name = "block01" # Optional size_in_gbs = 100 defined_tags = { "Oracle-Tags.CreatedOn"= "2021-10-20T15:03:19.457Z" , "Oracle-Tags.CreatedBy"= "oracleidentitycloudservice/abc@xyz.com" } }, block02 = { # Required availability_domain = 0 compartment_id = "AppDev" display_name = "block02" # Optional size_in_gbs = 500 attach_to_instance = "server01" attachment_type = "iscsi" backup_policy = "gold" is_pv_encryption_in_transit_enabled = "false" source_details = "blockvolume_source" block_volume_replicas = [{ availability_domain = "IiKv:US-ASHBURN-AD-3" display_name = "replica-1" }] autotune_policies = [ { autotune_type = "DETACHED_VOLUME" max_vpus_per_gb = null }, { autotune_type = "PERFORMANCE_BASED" max_vpus_per_gb = "50" } ] defined_tags = { "Operations.os"= "Linux" , "Organization.department"= "Administrators" , "Oracle-Tags.CreatedBy"= "oracleidentitycloudservice/abc@xyz.com" , "Oracle-Tags.CreatedOn"= "2021-09-16T19:59:21.745Z" , } } } 
Buckets
- Syntax
 
  buckets = {
    Bucket Name = {
                  compartment_id        = string
                  name                  = string
                  access_type           = string
                  auto_tiering          = string
                  object_events_enabled = bool
                  storage_tier          = string
                  retention_rules =[
                  {
                      display_name    = string
                      duration = [{
                          time_amount = int,
                          time_unit   = string
                      }]
                      time_rule_locked = string
                  }
                  ]
                  replication_policy = {
                      name                    = string
                      destination_bucket_name = string
                      destination_region_name = string
                  }
                  lifecycle_policy = {
                      rules = [
                              {
                                name        = string
                                action      = string
                                is_enabled  = bool
                                Time_Amount = int
                                Time_Unit   = string
                                target      = string
                                exclusion_patterns = [string]
                                inclusion_patterns = [string]
                                inclusion_prefixes = [string]
                              },
                      ]
                    }
                  versioning          = string
                  defined_tags = {}
                  freeform_tags = {}
            }
- Example
// Copyright (c) 2021, 2022, Oracle and/or its affiliates. ############################ # Object Storage Service # Object Storage - tfvars # Allowed Values: # compartment_id can be the ocid or the name of the compartment hierarchy delimited by double hiphens "--" # Example : compartment_id = "ocid1.compartment.oc1..aaaaaaaahwwiefb56epvdlzfic6ah6jy3xf3c" or compartment_id = "Network-root-cpt--Network" where "Network-root-cpt" is the parent of "Network" compartment # Sample import commands: # importCommands[region.lower()].write(f'\nterraform import "module.oss-buckets[\\"{variable name of the bucket}\\"].oci_objectstorage_bucket.bucket" 'f'n/{namespace name}/b/{bucket name}') # importCommands[region.lower()].write(f'\nterraform import "module.oss-buckets[\\"{variable name of the bucket}\\"].oci_objectstorage_replication_policy.replication_policy[0]" 'f'n/{namespace name}/b/{bucket name}/replicationPolicies/{replication policy id}') # importCommands[region.lower()].write(f'\nterraform import "module.oss-buckets[\\"{variable name of the bucket}\\"].oci_objectstorage_object_lifecycle_policy.lifecycle_policy" 'f'n/{namespace name}/b/{bucket name}/l') ############################ buckets = { Test_Bucket = { compartment_id = "Test" name = "Test_Bucket" access_type = "NoPublicAccess" auto_tiering = "Disabled" object_events_enabled = "true" storage_tier = "Standard" retention_rules =[ { display_name = "RT_Rule" duration = [{ time_amount = 1, time_unit = "DAYS" }] time_rule_locked = "2023-05-30T15:04:05Z" }, { display_name = "RT_Rule1" duration = [{ time_amount = 2, time_unit = "DAYS" }] time_rule_locked = "2023-05-30T15:04:05Z" }, ] replication_policy = { name = "Test" destination_bucket_name = "bucket1" destination_region_name = "uk-london-1" } lifecycle_policy = { rules = [ { name = "Policy1" action = "ARCHIVE" is_enabled = "true" Time_Amount = 1 Time_Unit = "YEARS" target = "objects" exclusion_patterns = [".pdf"] inclusion_patterns = [] inclusion_prefixes = [] }, ] } versioning = "Disabled" defined_tags = {} freeform_tags = {} }, ##Add New OSS Buckets for phoenix here## } 
FSS
- Syntax
 
   mount_targets = {
     mt_key = {
          availability_domain    = string
          compartment_id         = string
          network_compartment_id = string
          vcn_name               = string
          subnet_id              = string
          # Optional
          display_name           = string
          ip_address             = string
          hostname_label         = string
          nsg_ids                = list
          defined_tags           = map
          freeform_tags          = map
     }
   }
   fss = {
      fss_key = {
          availability_domain         = string
          compartment_id              = string
          # optional
          display_name                = string
          source_snapshot             = string
          snapshot_policy             = string
          snapshot_policy_compartment = string
          kms_key_id                  = string
          defined_tags                = map
          freeform_tags               = map
      }
  }
  nfs_export_options =  {
      export_key = {
          export_set_id  = string
          file_system_id = string
          path           = string
          export_options = list
          defined_tags   = map
          freeform_tags  = map
          is_idmap_groups_for_sys_auth = bool
      }
  }
   fss_replication = {
       replication_key = {
            compartment_id       = string
            source_id            = string
            target_id            = string
            # optional
            display_name         = string
            replication_interval = number
            defined_tags         = map
            freeform_tags        = map
       }
  }
  // Copyright (c) 2021, 2022, Oracle and/or its affiliates.
############################
# Storage
# Mount Target - tfvars
# Allowed Values:
# compartment_id can be the ocid or the name of the compartment hierarchy delimited by double hiphens "--"
# Example : compartment_id = "ocid1.compartment.oc1..aaaaaaaahwwiefb56epvdlzfic6ah6jy3xf3c" or compartment_id = "AppDev--Prod" where "AppDev" is the parent of "Prod" compartment
# Sample import command for Mount Target:
# terraform import "module.mts[\"<<mount_targets terraform variable name>>\"].oci_file_storage_mount_target.mount_target" <<mount target ocid>>
############################
mount_targets = {
    mnt-iad = {
        availability_domain = "0"
        compartment_id = "appdev"
        network_compartment_id = "network"
        vcn_name = "vcn-iad"
        subnet_id = "app-sub-1"
        #Optional
        display_name = "mnt-iad"
        ip_address = "10.255.254.107"
        },
}
// Copyright (c) 2021, 2022, Oracle and/or its affiliates.
############################
# Storage
# FSS - tfvars
# Allowed Values:
# compartment_id can be the ocid or the name of the compartment hierarchy delimited by double hiphens "--"
# Example : compartment_id = "ocid1.compartment.oc1..aaaaaaaahwwiefb56epvdlzfic6ah6jy3xf3c" or compartment_id = "AppDev--Prod" where "AppDev" is the parent of "Prod" compartment
# Sample import command for FSS:
# terraform import "module.fss[\"<<fss terraform variable name>>\"].oci_file_storage_file_system.file_system" <<file system ocid>>
############################
fss = {
    fss-iad = {
        availability_domain = "0"
        compartment_id = "storage"
        #Optional
        display_name = "fss-iad"
        snapshot_policy = "SnapshotPolicy-1"
        policy_compartment_id = "storage"
    },    
}
// Copyright (c) 2021, 2022, Oracle and/or its affiliates.
############################
# Storage
# Export Options - tfvars
# Allowed Values:
# compartment_id and policy_compartment_id can be the ocid or the name of the compartment hierarchy delimited by double hiphens "--"
# Example : compartment_id = "ocid1.compartment.oc1..aaaaaaaahwwiefb56epvdlzfic6ah6jy3xf3c" or compartment_id = "Network-root-cpt--Network" where "Network-root-cpt" is the parent of "Network" compartment
# Sample import command for Export Options:
# terraform import "module.fss-export-options[\"<<nfs_export_options terraform variable name>>\"].oci_file_storage_export.export" <<export option ocid>>
############################
nfs_export_options = {
    fss-iad-export = {
        export_set_id = "mnt-iad"
        file_system_id = "fss-iad"
        is_idmap_groups_for_sys_auth = true
        path = "/fss-iad"
        export_options=[{
            #Required
            source = "0.0.0.0/0"
            #Optional
            access = "READ_WRITE"
            allowed_auth = ["SYS"]
            anonymous_gid = "65534"
            anonymous_uid = "65534"
            identity_squash = "NONE"
            is_anonymous_access_allowed = "false"
            require_privileged_source_port = "false"
        },]
        },
}
// Copyright (c) 2021, 2022, Oracle and/or its affiliates.
############################
# Storage
# FSS REPLICATION - tfvars
# Allowed Values:
# compartment_id can be the ocid or the name of the compartment hierarchy delimited by double hiphens "--"
# Example : compartment_id = "ocid1.compartment.oc1..aaaaaaaahwwiefb56epvdlzfic6ah6jy3xf3c" or compartment_id = "AppDev--Prod" where "AppDev" is the parent of "Prod" compartment
# Sample import command for FSS:
# terraform import "module.fss-replication[\"<<fss replication terraform variable name>>\"].oci_file_storage_replication.file_system_replication" <<file system ocid>>
############################
fss_replication = {
    Replication-1 = {
        compartment_id = "storage"
        source_id    = "fss-iad"
        target_id    = "ocid1.filesystem.oc1.phx.aaaaaaaaaagd6g6nobuhqllqojxwiotqnb4c2ylefuzaaaaa"
        #Optional
        display_name = "Replication-to-phx"
        replication_interval = 60
        },
    Replication-2 = {
        compartment_id = "sto"
        source_id    = "fss1"
        target_id    = "fss3"
        #Optional
        display_name = "Replication-20240531-1315-22"
        replication_interval = 480
        },
}