From 1e4c5fd07d9852af1fb7dfbe6ed24551bb4ac46c Mon Sep 17 00:00:00 2001 From: iolesyk Date: Wed, 3 Jan 2024 12:30:54 -0500 Subject: [PATCH 1/2] LICENSE + minor changes --- LICENSE | 177 +++++++++++++++++++++++++++++++++++++ examples/autoscale/main.tf | 3 +- examples/cluster/main.tf | 2 + examples/single/README.md | 13 ++- examples/single/main.tf | 2 + locals.tf | 40 +++++++++ main.tf | 41 --------- version.tf | 2 + 8 files changed, 230 insertions(+), 50 deletions(-) create mode 100644 LICENSE create mode 100644 locals.tf diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f13a843 --- /dev/null +++ b/LICENSE @@ -0,0 +1,177 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/examples/autoscale/main.tf b/examples/autoscale/main.tf index e272e9c..3400196 100644 --- a/examples/autoscale/main.tf +++ b/examples/autoscale/main.tf @@ -1,8 +1,9 @@ ###################################################### # Example for autoscaling Red5 Pro server deployment # ###################################################### - terraform { + required_version = ">= 1.0" + required_providers { digitalocean = { source = "digitalocean/digitalocean" diff --git a/examples/cluster/main.tf b/examples/cluster/main.tf index 9e2ce8e..ea6aec1 100644 --- a/examples/cluster/main.tf +++ b/examples/cluster/main.tf @@ -2,6 +2,8 @@ # Example for cluster Red5 Pro server deployment # ################################################## terraform { + required_version = ">= 1.0" + required_providers { digitalocean = { source = "digitalocean/digitalocean" diff --git a/examples/single/README.md b/examples/single/README.md index b2fc432..a4ed5a2 100644 --- a/examples/single/README.md +++ b/examples/single/README.md @@ -51,26 +51,22 @@ $ terraform apply * To activate HTTPS/SSL you need to add DNS A record for Elastic IP of Red5 Pro server * Note that this example may create resources which can cost money. Run `terraform destroy` when you don't need these resources. - - ## Requirements | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [digitalocean](#requirement\_digitalocean) | >=2.28.0 | +| [digitalocean](#requirement\_digitalocean) | >=2.34.0 | ## Providers -| Name | Version | -|------|---------| -| [digitalocean](#provider\_digitalocean) | >=2.28.0 | +No providers. ## Modules | Name | Source | Version | |------|--------|---------| -| [red5pro](#module\_red5pro) | ../../ | N/A | +| [red5pro](#module\_red5pro) | ../../ | n/a | ## Resources @@ -84,9 +80,10 @@ No inputs. | Name | Description | |------|-------------| +| [module\_output](#output\_module\_output) | n/a | | [red5pro\_server\_http\_url](#output\_red5pro\_server\_http\_url) | Red5 Pro Server HTTP URL | | [red5pro\_server\_https\_url](#output\_red5pro\_server\_https\_url) | Red5 Pro Server HTTPS URL | | [red5pro\_server\_ip](#output\_red5pro\_server\_ip) | Red5 Pro Server IP | | [ssh\_key\_name](#output\_ssh\_key\_name) | SSH key name | | [ssh\_private\_key\_path](#output\_ssh\_private\_key\_path) | SSH private key path | -| [vpc\_name](#output\_vpc\_name) | VPC Name | +| [vpc\_name](#output\_vpc\_name) | VPC Name | \ No newline at end of file diff --git a/examples/single/main.tf b/examples/single/main.tf index e0e0c6b..0380298 100644 --- a/examples/single/main.tf +++ b/examples/single/main.tf @@ -2,6 +2,8 @@ # Example for single Red5 Pro server deployment # ################################################# terraform { + required_version = ">= 1.0" + required_providers { digitalocean = { source = "digitalocean/digitalocean" diff --git a/locals.tf b/locals.tf new file mode 100644 index 0000000..7fc44d5 --- /dev/null +++ b/locals.tf @@ -0,0 +1,40 @@ +locals { + single = var.type == "single" ? true : false + cluster = var.type == "cluster" ? true : false + autoscaling = var.type == "autoscaling" ? true : false + cluster_or_autoscaling = local.cluster || local.autoscaling ? true : false + ssh_key = var.ssh_key_create ? digitalocean_ssh_key.red5pro_ssh_key[0].fingerprint : data.digitalocean_ssh_key.ssh_key_pair[0].id + ssh_key_name = var.ssh_key_create ? digitalocean_ssh_key.red5pro_ssh_key[0].name : data.digitalocean_ssh_key.ssh_key_pair[0].name + ssh_private_key = var.ssh_key_create ? tls_private_key.red5pro_ssh_key[0].private_key_pem : file(var.ssh_private_key_path) + ssh_private_key_path = var.ssh_key_create ? local_file.red5pro_ssh_key_pem[0].filename : var.ssh_private_key_path + vpc_id = var.vpc_create ? digitalocean_vpc.red5pro_vpc[0].id : data.digitalocean_vpc.selected[0].id + vpc_name = var.vpc_create ? digitalocean_vpc.red5pro_vpc[0].name : data.digitalocean_vpc.selected[0].name + mysql_local_enable = local.autoscaling ? false : var.mysql_database_create ? false : true + mysql_db_system_create = local.autoscaling ? true : local.cluster && var.mysql_database_create ? true : local.cluster && var.terraform_service_instance_create ? true : false + mysql_host = local.autoscaling ? digitalocean_database_cluster.red5pro_mysql[0].host : local.cluster && var.mysql_database_create ? digitalocean_database_cluster.red5pro_mysql[0].host : local.cluster && var.terraform_service_instance_create ? digitalocean_database_cluster.red5pro_mysql[0].host : "localhost" + mysql_user = local.autoscaling ? digitalocean_database_cluster.red5pro_mysql[0].user : local.cluster && var.mysql_database_create ? digitalocean_database_cluster.red5pro_mysql[0].user : local.cluster && var.terraform_service_instance_create ? digitalocean_database_cluster.red5pro_mysql[0].user : var.mysql_username + mysql_password = local.autoscaling ? digitalocean_database_cluster.red5pro_mysql[0].password : local.cluster && var.mysql_database_create ? digitalocean_database_cluster.red5pro_mysql[0].password : local.cluster && var.terraform_service_instance_create ? digitalocean_database_cluster.red5pro_mysql[0].password : var.mysql_password + mysql_port = local.autoscaling ? digitalocean_database_cluster.red5pro_mysql[0].port : local.cluster && var.mysql_database_create ? digitalocean_database_cluster.red5pro_mysql[0].port : local.cluster && var.terraform_service_instance_create ? digitalocean_database_cluster.red5pro_mysql[0].port : var.mysql_port + terraform_service_ip = local.autoscaling ? digitalocean_droplet.red5pro_terraform_service[0].ipv4_address : local.cluster && var.terraform_service_instance_create ? digitalocean_droplet.red5pro_terraform_service[0].ipv4_address : "localhost" + terraform_service_local_enable = local.autoscaling ? false : local.cluster && var.terraform_service_instance_create ? false : true + dedicated_terraform_service_create = local.autoscaling ? true : local.cluster && var.terraform_service_instance_create ? true : false + stream_manager_ip = local.autoscaling ? digitalocean_loadbalancer.red5pro_lb[0].ip : local.cluster ? digitalocean_droplet.red5pro_sm[0].ipv4_address : null + single_server_ip = local.single ? digitalocean_droplet.red5pro_single[0].ipv4_address : null + lb_certificate_name = local.autoscaling && var.lb_ssl_create ? digitalocean_certificate.new_lb_cert[0].name : null + lb_ip = local.autoscaling ? digitalocean_loadbalancer.red5pro_lb[0].ip : null + stream_managers_amount = local.autoscaling ? var.stream_managers_amount : local.cluster ? 1 : 0 + stream_managers_id = [ for red5pro_sm in digitalocean_droplet.red5pro_sm : red5pro_sm.id ] + stream_managers_urn = [ for red5pro_sm in digitalocean_droplet.red5pro_sm : red5pro_sm.urn ] + project_resources = concat( + compact([ local.single ? digitalocean_droplet.red5pro_single[0].urn : "" ]), + compact([ local.cluster ? digitalocean_droplet.red5pro_sm[0].urn : "" ]), + compact([ local.mysql_db_system_create ? digitalocean_database_cluster.red5pro_mysql[0].urn : "" ]), + compact([ local.dedicated_terraform_service_create ? digitalocean_droplet.red5pro_terraform_service[0].urn : "" ]), + compact([ var.origin_image_create ? digitalocean_droplet.red5pro_origin_node[0].urn : "" ]), + compact([ var.edge_image_create ? digitalocean_droplet.red5pro_edge_node[0].urn : "" ]), + compact([ var.transcoder_image_create ? digitalocean_droplet.red5pro_transcoder_node[0].urn : "" ]), + compact([ var.relay_image_create ? digitalocean_droplet.red5pro_relay_node[0].urn : "" ]), + compact([ local.autoscaling ? digitalocean_loadbalancer.red5pro_lb[0].urn : "" ]), + compact(local.stream_managers_urn) + ) +} diff --git a/main.tf b/main.tf index 770a7fa..3309340 100644 --- a/main.tf +++ b/main.tf @@ -1,44 +1,3 @@ -locals { - single = var.type == "single" ? true : false - cluster = var.type == "cluster" ? true : false - autoscaling = var.type == "autoscaling" ? true : false - cluster_or_autoscaling = local.cluster || local.autoscaling ? true : false - ssh_key = var.ssh_key_create ? digitalocean_ssh_key.red5pro_ssh_key[0].fingerprint : data.digitalocean_ssh_key.ssh_key_pair[0].id - ssh_key_name = var.ssh_key_create ? digitalocean_ssh_key.red5pro_ssh_key[0].name : data.digitalocean_ssh_key.ssh_key_pair[0].name - ssh_private_key = var.ssh_key_create ? tls_private_key.red5pro_ssh_key[0].private_key_pem : file(var.ssh_private_key_path) - ssh_private_key_path = var.ssh_key_create ? local_file.red5pro_ssh_key_pem[0].filename : var.ssh_private_key_path - vpc_id = var.vpc_create ? digitalocean_vpc.red5pro_vpc[0].id : data.digitalocean_vpc.selected[0].id - vpc_name = var.vpc_create ? digitalocean_vpc.red5pro_vpc[0].name : data.digitalocean_vpc.selected[0].name - mysql_local_enable = local.autoscaling ? false : var.mysql_database_create ? false : true - mysql_db_system_create = local.autoscaling ? true : local.cluster && var.mysql_database_create ? true : local.cluster && var.terraform_service_instance_create ? true : false - mysql_host = local.autoscaling ? digitalocean_database_cluster.red5pro_mysql[0].host : local.cluster && var.mysql_database_create ? digitalocean_database_cluster.red5pro_mysql[0].host : local.cluster && var.terraform_service_instance_create ? digitalocean_database_cluster.red5pro_mysql[0].host : "localhost" - mysql_user = local.autoscaling ? digitalocean_database_cluster.red5pro_mysql[0].user : local.cluster && var.mysql_database_create ? digitalocean_database_cluster.red5pro_mysql[0].user : local.cluster && var.terraform_service_instance_create ? digitalocean_database_cluster.red5pro_mysql[0].user : var.mysql_username - mysql_password = local.autoscaling ? digitalocean_database_cluster.red5pro_mysql[0].password : local.cluster && var.mysql_database_create ? digitalocean_database_cluster.red5pro_mysql[0].password : local.cluster && var.terraform_service_instance_create ? digitalocean_database_cluster.red5pro_mysql[0].password : var.mysql_password - mysql_port = local.autoscaling ? digitalocean_database_cluster.red5pro_mysql[0].port : local.cluster && var.mysql_database_create ? digitalocean_database_cluster.red5pro_mysql[0].port : local.cluster && var.terraform_service_instance_create ? digitalocean_database_cluster.red5pro_mysql[0].port : var.mysql_port - terraform_service_ip = local.autoscaling ? digitalocean_droplet.red5pro_terraform_service[0].ipv4_address : local.cluster && var.terraform_service_instance_create ? digitalocean_droplet.red5pro_terraform_service[0].ipv4_address : "localhost" - terraform_service_local_enable = local.autoscaling ? false : local.cluster && var.terraform_service_instance_create ? false : true - dedicated_terraform_service_create = local.autoscaling ? true : local.cluster && var.terraform_service_instance_create ? true : false - stream_manager_ip = local.autoscaling ? digitalocean_loadbalancer.red5pro_lb[0].ip : local.cluster ? digitalocean_droplet.red5pro_sm[0].ipv4_address : null - single_server_ip = local.single ? digitalocean_droplet.red5pro_single[0].ipv4_address : null - lb_certificate_name = local.autoscaling && var.lb_ssl_create ? digitalocean_certificate.new_lb_cert[0].name : null - lb_ip = local.autoscaling ? digitalocean_loadbalancer.red5pro_lb[0].ip : null - stream_managers_amount = local.autoscaling ? var.stream_managers_amount : local.cluster ? 1 : 0 - stream_managers_id = [ for red5pro_sm in digitalocean_droplet.red5pro_sm : red5pro_sm.id ] - stream_managers_urn = [ for red5pro_sm in digitalocean_droplet.red5pro_sm : red5pro_sm.urn ] - project_resources = concat( - compact([ local.single ? digitalocean_droplet.red5pro_single[0].urn : "" ]), - compact([ local.cluster ? digitalocean_droplet.red5pro_sm[0].urn : "" ]), - compact([ local.mysql_db_system_create ? digitalocean_database_cluster.red5pro_mysql[0].urn : "" ]), - compact([ local.dedicated_terraform_service_create ? digitalocean_droplet.red5pro_terraform_service[0].urn : "" ]), - compact([ var.origin_image_create ? digitalocean_droplet.red5pro_origin_node[0].urn : "" ]), - compact([ var.edge_image_create ? digitalocean_droplet.red5pro_edge_node[0].urn : "" ]), - compact([ var.transcoder_image_create ? digitalocean_droplet.red5pro_transcoder_node[0].urn : "" ]), - compact([ var.relay_image_create ? digitalocean_droplet.red5pro_relay_node[0].urn : "" ]), - compact([ local.autoscaling ? digitalocean_loadbalancer.red5pro_lb[0].urn : "" ]), - compact(local.stream_managers_urn) - ) -} - ################################################################################ # PROJECT SETUP IN DIGITAL OCEAN ################################################################################ diff --git a/version.tf b/version.tf index 7aa3368..b1ad6e1 100644 --- a/version.tf +++ b/version.tf @@ -1,4 +1,6 @@ terraform { + required_version = ">= 1.0" + required_providers { digitalocean = { source = "digitalocean/digitalocean" From b007d388dbb3cd288041566a18724238322ead9a Mon Sep 17 00:00:00 2001 From: iolesyk Date: Wed, 3 Jan 2024 12:41:55 -0500 Subject: [PATCH 2/2] README.md --- examples/autoscale/README.md | 20 ++++---------------- examples/cluster/README.md | 21 ++++----------------- examples/single/README.md | 12 ------------ 3 files changed, 8 insertions(+), 45 deletions(-) diff --git a/examples/autoscale/README.md b/examples/autoscale/README.md index 0f397f8..46e7d9b 100644 --- a/examples/autoscale/README.md +++ b/examples/autoscale/README.md @@ -69,27 +69,13 @@ $ terraform apply | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [digitalocean](#requirement\_digitalocean) | >=2.28.0 | - -## Providers - -| Name | Version | -|------|---------| -| [digitalocean](#provider\_digitalocean) | >=2.28.0 | +| [digitalocean](#requirement\_digitalocean) | >=2.34.0 | ## Modules | Name | Source | Version | |------|--------|---------| -| [red5pro](#module\_red5pro) | ../../ | N/A | - -## Resources - -No resources. - -## Inputs - -No inputs. +| [red5pro](#module\_red5pro) | ../../ | n/a | ## Outputs @@ -101,6 +87,7 @@ No inputs. | [database\_user](#output\_database\_user) | Database User | | [lb\_https\_url](#output\_lb\_https\_url) | Load balancer https url | | [load\_balancer\_ip\_address](#output\_load\_balancer\_ip\_address) | Load balancer IP address | +| [module\_output](#output\_module\_output) | n/a | | [node\_edge\_image](#output\_node\_edge\_image) | Image name of the Red5 Pro Node Edge image | | [node\_origin\_image](#output\_node\_origin\_image) | Image name of the Red5 Pro Node Origin image | | [node\_relay\_image](#output\_node\_relay\_image) | Image name of the Red5 Pro Node Relay image | @@ -110,4 +97,5 @@ No inputs. | [ssh\_key\_name](#output\_ssh\_key\_name) | SSH key name | | [ssh\_private\_key\_path](#output\_ssh\_private\_key\_path) | SSH private key path | | [stream\_manager\_ip](#output\_stream\_manager\_ip) | Red5 Pro Server IP | +| [terraform\_service\_ip](#output\_terraform\_service\_ip) | Terraform Service Host | | [vpc\_name](#output\_vpc\_name) | VPC Name | diff --git a/examples/cluster/README.md b/examples/cluster/README.md index dbe459e..adf8a82 100644 --- a/examples/cluster/README.md +++ b/examples/cluster/README.md @@ -63,33 +63,18 @@ $ terraform apply * To activate HTTPS/SSL you need to add DNS A record for Elastic IP of Red5 Pro server * Note that this example may create resources which can cost money. Run `terraform destroy` when you don't need these resources. - ## Requirements | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [digitalocean](#requirement\_digitalocean) | >=2.28.0 | - -## Providers - -| Name | Version | -|------|---------| -| [digitalocean](#provider\_digitalocean) | >=2.28.0 | +| [digitalocean](#requirement\_digitalocean) | >=2.34.0 | ## Modules | Name | Source | Version | |------|--------|---------| -| [red5pro](#module\_red5pro) | ../../ | N/A | - -## Resources - -No resources. - -## Inputs - -No inputs. +| [red5pro](#module\_red5pro) | ../../ | n/a | ## Outputs @@ -99,6 +84,7 @@ No inputs. | [database\_password](#output\_database\_password) | Database Password | | [database\_port](#output\_database\_port) | Database Port | | [database\_user](#output\_database\_user) | Database User | +| [module\_output](#output\_module\_output) | n/a | | [node\_edge\_image](#output\_node\_edge\_image) | Image name of the Red5 Pro Node Edge image | | [node\_origin\_image](#output\_node\_origin\_image) | Image name of the Red5 Pro Node Origin image | | [node\_relay\_image](#output\_node\_relay\_image) | Image name of the Red5 Pro Node Relay image | @@ -108,4 +94,5 @@ No inputs. | [ssh\_key\_name](#output\_ssh\_key\_name) | SSH key name | | [ssh\_private\_key\_path](#output\_ssh\_private\_key\_path) | SSH private key path | | [stream\_manager\_ip](#output\_stream\_manager\_ip) | Red5 Pro Server IP | +| [terraform\_service\_ip](#output\_terraform\_service\_ip) | Terraform Service Host | | [vpc\_name](#output\_vpc\_name) | VPC Name | diff --git a/examples/single/README.md b/examples/single/README.md index a4ed5a2..8fc2982 100644 --- a/examples/single/README.md +++ b/examples/single/README.md @@ -58,24 +58,12 @@ $ terraform apply | [terraform](#requirement\_terraform) | >= 1.0 | | [digitalocean](#requirement\_digitalocean) | >=2.34.0 | -## Providers - -No providers. - ## Modules | Name | Source | Version | |------|--------|---------| | [red5pro](#module\_red5pro) | ../../ | n/a | -## Resources - -No resources. - -## Inputs - -No inputs. - ## Outputs | Name | Description |