{"id":15156480,"url":"https://github.com/hadenlabs/terraform-aws-openvpn","last_synced_at":"2025-10-24T14:30:25.124Z","repository":{"id":40322838,"uuid":"339408842","full_name":"hadenlabs/terraform-aws-openvpn","owner":"hadenlabs","description":"terraform module openvpn for aws","archived":false,"fork":false,"pushed_at":"2022-05-15T05:23:51.000Z","size":581,"stargazers_count":5,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2024-09-27T19:21:49.799Z","etag":null,"topics":["aws","hadenlabs","openvpn","peru","terraform","terraform-modules"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hadenlabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null},"funding":{"github":["hadenlabs"],"patreon":null,"open_collective":null,"ko_fi":"luismayta","tidelift":null,"community_bridge":null,"liberapay":"luismayta","issuehunt":null,"otechie":null,"custom":["https://www.paypal.me/luismayta","https://www.buymeacoffee.com/luismayta","https://amzn.com/w/1VJ9F3BEK0S8B"]}},"created_at":"2021-02-16T13:33:52.000Z","updated_at":"2023-09-20T06:55:15.000Z","dependencies_parsed_at":"2022-08-09T17:20:19.672Z","dependency_job_id":null,"html_url":"https://github.com/hadenlabs/terraform-aws-openvpn","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadenlabs%2Fterraform-aws-openvpn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadenlabs%2Fterraform-aws-openvpn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadenlabs%2Fterraform-aws-openvpn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadenlabs%2Fterraform-aws-openvpn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hadenlabs","download_url":"https://codeload.github.com/hadenlabs/terraform-aws-openvpn/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219868598,"owners_count":16555871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","hadenlabs","openvpn","peru","terraform","terraform-modules"],"created_at":"2024-09-26T19:21:58.812Z","updated_at":"2025-10-24T14:30:23.836Z","avatar_url":"https://github.com/hadenlabs.png","language":"HCL","funding_links":["https://github.com/sponsors/hadenlabs","https://ko-fi.com/luismayta","https://liberapay.com/luismayta","https://www.paypal.me/luismayta","https://www.buymeacoffee.com/luismayta","https://amzn.com/w/1VJ9F3BEK0S8B"],"categories":[],"sub_categories":[],"readme":"\u003c!--\n\n\n  ** DO NOT EDIT THIS FILE\n  **\n  ** 1) Make all changes to `provision/generator/README.yaml`\n  ** 2) Run`task readme` to rebuild this file.\n  **\n  ** (We maintain HUNDREDS of open source projects. This is how we maintain our sanity.)\n  **\n\n\n  --\u003e\n\n[![Latest Release](https://img.shields.io/github/release/hadenlabs/terraform-aws-openvpn)](https://github.com/hadenlabs/terraform-aws-openvpn/releases) [![Lint](https://img.shields.io/github/workflow/status/hadenlabs/terraform-aws-openvpn/lint-code)](https://github.com/hadenlabs/terraform-aws-openvpn/actions?workflow=lint-code) [![CI](https://img.shields.io/github/workflow/status/hadenlabs/terraform-aws-openvpn/ci)](https://github.com/hadenlabs/terraform-aws-openvpn/actions?workflow=ci) [![Test](https://img.shields.io/github/workflow/status/hadenlabs/terraform-aws-openvpn/test)](https://github.com/hadenlabs/terraform-aws-openvpn/actions?workflow=test) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow)](https://conventionalcommits.org) [![KeepAChangelog](https://img.shields.io/badge/changelog-Keep%20a%20Changelog%20v1.0.0-orange)](https://keepachangelog.com) [![Terraform Version](https://img.shields.io/badge/terraform-1.x%20|%200.15%20|%200.14%20|%200.13%20|%200.12.20+-623CE4.svg?logo=terraform)](https://github.com/hashicorp/terraform/releases)\n\n# terraform-aws-openvpn\n\nTerraform module to provision an openvpn instance.\n\n## Requirements\n\nThis is a list of plugins that need to be installed previously to enjoy all the goodies of this configuration:\n\n- [gomplate](https://github.com/hairyhenderson/gomplate)\n- [Docker](https://www.docker.com)\n- [python](https://www.python.org)\n- [taskfile](https://github.com/go-task/task)\n\n## Usage\n\n# How to use this project\n\n```hcl\n  module \"main\" {\n    source  = \"hadenlabs/openvpn/aws\"\n    version = \"0.3.0\"\n\n    providers = {\n      aws = aws\n      template = template\n      local = local\n    }\n\n    public_key = local.auth_public_key\n    private_key = local.auth_private_key\n    admin_user = \"slovacus\"\n    storage_path = \"~/openvpn\"\n\n  }\n```\n\nFull working examples can be found in [examples](./examples) folder.\n\n## Examples\n\n\u003c!-- Space: Projects --\u003e\n\u003c!-- Parent: TerraformAwsOpenVpn --\u003e\n\u003c!-- Title: Examples TerraformAwsOpenVpn --\u003e\n\n\u003c!-- Label: Examples --\u003e\n\u003c!-- Include: ./../disclaimer.md --\u003e\n\u003c!-- Include: ac:toc --\u003e\n\n### common\n\n```hcl\n    module \"main\" {\n      source  = \"hadenlabs/openvpn/aws\"\n      version = \"0.4.0\"\n\n      providers = {\n        aws = aws\n        template = template\n        local = local\n      }\n\n      public_key = local.auth_public_key\n      private_key = local.auth_private_key\n      admin_user = \"slovacus\"\n      storage_path = \"~/openvpn\"\n\n    }\n\n```\n\n \u003c!-- BEGIN_TF_DOCS --\u003e\n\n## Requirements\n\n| Name                                                                     | Version           |\n| ------------------------------------------------------------------------ | ----------------- |\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement_terraform) | \u003e= 0.12.20, \u003c 2.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement_aws)                   | \u003e=3.2.0           |\n| \u003ca name=\"requirement_null\"\u003e\u003c/a\u003e [null](#requirement_null)                | \u003e=0.1.0           |\n\n## Providers\n\n| Name                                                | Version |\n| --------------------------------------------------- | ------- |\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider_aws)    | \u003e=3.2.0 |\n| \u003ca name=\"provider_null\"\u003e\u003c/a\u003e [null](#provider_null) | \u003e=0.1.0 |\n\n## Modules\n\n| Name                                            | Source              | Version |\n| ----------------------------------------------- | ------------------- | ------- |\n| \u003ca name=\"module_tags\"\u003e\u003c/a\u003e [tags](#module_tags) | hadenlabs/tags/null | \u003e0.1    |\n\n## Resources\n\n| Name | Type |\n| --- | --- |\n| [aws_eip.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eip) | resource |\n| [aws_instance.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_internet_gateway.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/internet_gateway) | resource |\n| [aws_key_pair.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/key_pair) | resource |\n| [aws_route.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_security_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_security_group_rule.egress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |\n| [aws_security_group_rule.ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |\n| [aws_subnet.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |\n| [aws_vpc.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc) | resource |\n| [null_resource.openvpn_adduser](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n| [null_resource.openvpn_download_configurations](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n| [null_resource.openvpn_install](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n| [null_resource.provision_core](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n| [null_resource.provision_openvpn](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n| [aws_ami.amazon_linux](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ami) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n| --- | --- | --- | --- | :-: |\n| \u003ca name=\"input_admin_user\"\u003e\u003c/a\u003e [admin_user](#input_admin_user) | admin user | `string` | `\"openvpn\"` | no |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input_environment) | Environment, e.g. 'uw2', 'us-west-2', OR 'prod', 'staging', 'dev', 'UAT' | `string` | `null` | no |\n| \u003ca name=\"input_instance_type\"\u003e\u003c/a\u003e [instance_type](#input_instance_type) | type instance | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_is_test\"\u003e\u003c/a\u003e [is_test](#input_is_test) | implement when is execute a test | `bool` | `false` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input_name) | Solution name, e.g. 'app' or 'jenkins' | `string` | n/a | yes |\n| \u003ca name=\"input_namespace\"\u003e\u003c/a\u003e [namespace](#input_namespace) | Namespace, which could be your organization name or abbreviation, e.g. 'eg' or 'cp' | `string` | `null` | no |\n| \u003ca name=\"input_private_key\"\u003e\u003c/a\u003e [private_key](#input_private_key) | private key | `string` | n/a | yes |\n| \u003ca name=\"input_public_key\"\u003e\u003c/a\u003e [public_key](#input_public_key) | public key | `string` | n/a | yes |\n| \u003ca name=\"input_rules_ingress\"\u003e\u003c/a\u003e [rules_ingress](#input_rules_ingress) | list rule for security group | \u003cpre\u003elist(object({\u003cbr\u003e from_port = number\u003cbr\u003e to_port = number\u003cbr\u003e protocol = string\u003cbr\u003e cidr_blocks = list(string)\u003cbr\u003e }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_ssh_cidr\"\u003e\u003c/a\u003e [ssh_cidr](#input_ssh_cidr) | ssh cidr | `string` | `\"0.0.0.0/0\"` | no |\n| \u003ca name=\"input_ssh_port\"\u003e\u003c/a\u003e [ssh_port](#input_ssh_port) | port ssh | `number` | `22` | no |\n| \u003ca name=\"input_ssh_user\"\u003e\u003c/a\u003e [ssh_user](#input_ssh_user) | user ssh | `string` | `\"ubuntu\"` | no |\n| \u003ca name=\"input_stage\"\u003e\u003c/a\u003e [stage](#input_stage) | Stage, e.g. 'prod', 'staging', 'dev', OR 'source', 'build', 'test', 'deploy', 'release' | `string` | `null` | no |\n| \u003ca name=\"input_storage_path\"\u003e\u003c/a\u003e [storage_path](#input_storage_path) | storage path keys to local | `string` | `\"~/openvpn\"` | no |\n| \u003ca name=\"input_subnet_cidr_block\"\u003e\u003c/a\u003e [subnet_cidr_block](#input_subnet_cidr_block) | subnet cidr block | `string` | `\"10.0.0.0/16\"` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input_tags) | Additional tags (e.g. `map('BusinessUnit','XYZ')` | `map(string)` | `{}` | no |\n| \u003ca name=\"input_vpc_cidr_block\"\u003e\u003c/a\u003e [vpc_cidr_block](#input_vpc_cidr_block) | vpc cidr block | `string` | `\"10.0.0.0/16\"` | no |\n\n## Outputs\n\n| Name                                                                 | Description                               |\n| -------------------------------------------------------------------- | ----------------------------------------- |\n| \u003ca name=\"output_instance\"\u003e\u003c/a\u003e [instance](#output_instance)          | return instance openvpn                   |\n| \u003ca name=\"output_instance_ip\"\u003e\u003c/a\u003e [instance_ip](#output_instance_ip) | return instance openvpn elastic ip public |\n| \u003ca name=\"output_private_key\"\u003e\u003c/a\u003e [private_key](#output_private_key) | return filepath privatekey                |\n\n\u003c!-- END_TF_DOCS --\u003e\n\n## Help\n\n**Got a question?**\n\nFile a GitHub [issue](https://github.com/hadenlabs/terraform-aws-openvpn/issues).\n\n## Contributing\n\nSee [Contributing](./docs/contributing.md).\n\n## Module Versioning\n\nThis Module follows the principles of [Semantic Versioning (SemVer)](https://semver.org/).\n\nUsing the given version number of `MAJOR.MINOR.PATCH`, we apply the following constructs:\n\n1. Use the `MAJOR` version for incompatible changes.\n1. Use the `MINOR` version when adding functionality in a backwards compatible manner.\n1. Use the `PATCH` version when introducing backwards compatible bug fixes.\n\n### Backwards compatibility in `0.0.z` and `0.y.z` version\n\n- In the context of initial development, backwards compatibility in versions `0.0.z` is **not guaranteed** when `z` is increased. (Initial development)\n- In the context of pre-release, backwards compatibility in versions `0.y.z` is **not guaranteed** when `y` is increased. (Pre-release)\n\n## Copyright\n\nCopyright © 2018-2022 [Hadenlabs](https://hadenlabs.com)\n\n## Trademarks\n\nAll other trademarks referenced herein are the property of their respective owners.\n\n## License\n\nThe code and styles are licensed under the LGPL-3.0 license [See project license.](LICENSE).\n\n## Don't forget to 🌟 Star 🌟 the repo if you like terraform-aws-openvpn\n\n[Your feedback is appreciated](https://github.com/hadenlabs/terraform-aws-openvpn/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhadenlabs%2Fterraform-aws-openvpn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhadenlabs%2Fterraform-aws-openvpn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhadenlabs%2Fterraform-aws-openvpn/lists"}