# terraform-oci-free Terraform Project for Oracle Cloud Infrastructure (OCI) Always Free Tier https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm # Terraform Docs ## Requirements | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | ~> 1.8.0 | | [oci](#requirement\_oci) | ~> 5.43.0 | | [tls](#requirement\_tls) | ~> 4.0.5 | ## Providers | Name | Version | |------|---------| | [oci](#provider\_oci) | 5.43.0 | | [tls](#provider\_tls) | 4.0.5 | ## Modules No modules. ## Resources | Name | Type | |------|------| | [oci_core_default_route_table.default](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_default_route_table) | resource | | [oci_core_default_security_list.default](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_default_security_list) | resource | | [oci_core_instance.compute](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_instance) | resource | | [oci_core_internet_gateway.igw](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_internet_gateway) | resource | | [oci_core_network_security_group.default](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_network_security_group) | resource | | [oci_core_network_security_group_security_rule.default](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_network_security_group_security_rule) | resource | | [oci_core_public_ip.static](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_public_ip) | resource | | [oci_core_subnet.public](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_subnet) | resource | | [oci_core_vcn.vcn](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_vcn) | resource | | [oci_email_dkim.domain](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/email_dkim) | resource | | [oci_email_email_domain.domain](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/email_email_domain) | resource | | [oci_email_sender.sender](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/email_sender) | resource | | [oci_email_suppression.suppression](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/email_suppression) | resource | | [oci_identity_api_key.admin](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_api_key) | resource | | [oci_identity_auth_token.admin](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_auth_token) | resource | | [oci_identity_compartment.compartment](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_compartment) | resource | | [oci_identity_customer_secret_key.admin](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_customer_secret_key) | resource | | [oci_identity_group.administrators](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_group) | resource | | [oci_identity_policy.administrators](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_policy) | resource | | [oci_identity_policy.kms_service_policy](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_policy) | resource | | [oci_identity_smtp_credential.admin](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_smtp_credential) | resource | | [oci_identity_ui_password.admin_initial](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_ui_password) | resource | | [oci_identity_user.admin](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_user) | resource | | [oci_identity_user_group_membership.admin](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/identity_user_group_membership) | resource | | [oci_kms_key.key](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/kms_key) | resource | | [oci_kms_vault.vault](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/kms_vault) | resource | | [oci_ons_notification_topic.topic](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/ons_notification_topic) | resource | | [oci_ons_subscription.subscription](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/ons_subscription) | resource | | [tls_private_key.admin_api_key](https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/private_key) | resource | | [tls_private_key.compute_ssh_key](https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/private_key) | resource | | [oci_core_images.selected](https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/core_images) | data source | | [oci_core_shapes.available](https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/core_shapes) | data source | | [oci_email_configuration.endpoints](https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/email_configuration) | data source | | [oci_identity_availability_domains.available](https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/identity_availability_domains) | data source | | [oci_identity_tenancy.tenancy](https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/identity_tenancy) | data source | | [oci_kms_key.key](https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/kms_key) | data source | ## Inputs | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [oci\_region](#input\_oci\_region) | The region for the OCI provider | `string` | n/a | yes | | [tenancy\_id](#input\_tenancy\_id) | The OCID of the tenancy | `string` | n/a | yes | | [admin\_create\_credentials](#input\_admin\_create\_credentials) | Types of credentials to create for the admin user |
object({
api_key = bool
auth_token = bool
customer_key = bool
password = bool
smtp = bool
})
|
{
"api_key": true,
"auth_token": false,
"customer_key": false,
"password": false,
"smtp": true
}
| no | | [create\_instances](#input\_create\_instances) | Create compute instances types |
object({
micro = bool
flex = bool
})
|
{
"flex": true,
"micro": true
}
| no | | [create\_static\_ip](#input\_create\_static\_ip) | Create a reserved static IP | `bool` | `true` | no | | [create\_topics](#input\_create\_topics) | Create notification topics | `bool` | `true` | no | | [create\_vault](#input\_create\_vault) | Create vault | `bool` | `true` | no | | [created\_compute\_ssh\_key\_algorithm](#input\_created\_compute\_ssh\_key\_algorithm) | The algorithm for the created SSH key if no key is provided | `string` | `"ED25519"` | no | | [email\_configuration](#input\_email\_configuration) | values for email configuration |
object({
email_domains = list(string)
approved_senders = list(string)
suppression_list = list(string)
})
|
{
"approved_senders": [],
"email_domains": [],
"suppression_list": []
}
| no | | [enable\_email\_delivery](#input\_enable\_email\_delivery) | Create email delivery supporting configurations | `bool` | `true` | no | | [enable\_ipv6](#input\_enable\_ipv6) | Enable IPv6 for the VCN | `bool` | `true` | no | | [iac\_project\_name](#input\_iac\_project\_name) | The name of the iac project | `string` | `"oci-free"` | no | | [iac\_project\_source](#input\_iac\_project\_source) | The source repo of the iac project | `string` | `"https://git.bdeshi.space/bdeshi/terraform-oci-free.git"` | no | | [oci\_profile](#input\_oci\_profile) | The config file profile for the OCI provider | `string` | `null` | no | | [prefix](#input\_prefix) | Name prefix for all resources | `string` | `"free-"` | no | | [supplied\_compute\_ssh\_public\_key](#input\_supplied\_compute\_ssh\_public\_key) | A pre-created public SSH key for the compute instances | `string` | `null` | no | | [topics](#input\_topics) | Values for notification topics configuration |
map(object({
description = string
subscriptions = list(object({
protocol = string
endpoint = string
}))
}))
| `{}` | no | | [use\_kms](#input\_use\_kms) | Use created vault for key creation and management |
object({
volume = bool
object = bool
database = bool
})
|
{
"database": true,
"object": true,
"volume": true
}
| no | | [vcn\_cidr](#input\_vcn\_cidr) | The CIDR block for the VCN | `string` | `"10.0.0.0/16"` | no | ## Outputs | Name | Description | |------|-------------| | [admin\_auth\_token](#output\_admin\_auth\_token) | The auth token of the admin user | | [admin\_initial\_password](#output\_admin\_initial\_password) | The initial password of the admin user | | [admin\_smtp\_password](#output\_admin\_smtp\_password) | The SMTP password of the admin user | | [admin\_smtp\_username](#output\_admin\_smtp\_username) | The SMTP username of the admin user | | [admin\_user\_id](#output\_admin\_user\_id) | The ID of the admin user | | [api\_key\_fingerprint](#output\_api\_key\_fingerprint) | The fingerprint of the admin user API key | | [api\_key\_private](#output\_api\_key\_private) | The private part of the admin user API key | | [compartment\_id](#output\_compartment\_id) | The ID of the created compartment | | [compartment\_name](#output\_compartment\_name) | The name of the created compartment | | [customer\_key\_id](#output\_customer\_key\_id) | The ID of the customer key | | [customer\_key\_key](#output\_customer\_key\_key) | The ID of the customer key | | [email\_dkim\_records](#output\_email\_dkim\_records) | The DKIM records for the email domain | | [email\_endpoints](#output\_email\_endpoints) | The email configuration endpoints | | [instance\_availability\_domains](#output\_instance\_availability\_domains) | The availability domains of the instances | | [instance\_ips](#output\_instance\_ips) | The public IP addresses of the instances | | [instance\_selected\_images](#output\_instance\_selected\_images) | The selected images for each instance shape | | [kms\_key\_ids](#output\_kms\_key\_ids) | The IDs of the KMS keys | | [kms\_vault\_endpoints](#output\_kms\_vault\_endpoints) | The KMS vault endpoints | | [kms\_vault\_id](#output\_kms\_vault\_id) | The ID of the KMS vault | | [reserved\_ip](#output\_reserved\_ip) | The reserved public IP address | | [ssh\_key\_private](#output\_ssh\_key\_private) | The created SSH private key for the compute instances | | [ssh\_key\_public](#output\_ssh\_key\_public) | The public SSH key for the compute instances | | [subnet\_cidr\_block](#output\_subnet\_cidr\_block) | The CIDR block for the subnet | | [subnet\_ipv6\_cidr\_block](#output\_subnet\_ipv6\_cidr\_block) | The IPv6 CIDR block for the subnet | | [tenancy\_id](#output\_tenancy\_id) | The ID of the tenancy | | [tenancy\_name](#output\_tenancy\_name) | The name of the tenancy | | [vcn\_cidr\_blocks](#output\_vcn\_cidr\_blocks) | The CIDR block for the VCN | | [vcn\_ipv6\_cidr\_blocks](#output\_vcn\_ipv6\_cidr\_blocks) | The IPv6 CIDR block for the VCN | | [vcn\_ipv6\_cidr\_private\_blocks](#output\_vcn\_ipv6\_cidr\_private\_blocks) | The IPv6 CIDR block for the VCN |