Skip to content
This repository has been archived by the owner on Feb 14, 2024. It is now read-only.

feat(module/vpn): VPN module for GCP VM-Series deployments #219

Merged
merged 14 commits into from
Sep 11, 2023

Conversation

pavelrn
Copy link
Contributor

@pavelrn pavelrn commented Aug 30, 2023

Description

Introducing VPN module for GCP VM-Series deployments. The module allows to deploy:

  • VPN HA gateway with Cloud Router,
  • multiple VPN instances (connections) where each instance is represented by remote gateway and multiple VPN tunnels.

PR closes Issue 215.

Motivation and Context

VPN module is required for building GCP to on-prem connectivity, for GCP to GCP connectivity.

How Has This Been Tested?

Terraform plan/apply using example VPN configuration.

Screenshots (if appropriate)

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist

  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes if appropriate.
  • All new and existing tests passed.

@pavelrn pavelrn requested a review from a team as a code owner August 30, 2023 09:12
@pavelrn pavelrn linked an issue Aug 30, 2023 that may be closed by this pull request
@horiagunica
Copy link
Contributor

I think the folder structure should be aligned with our current structure :

  • Move example to examples folder
  • I can see there is an inherited module - maybe it would be a good idea to flatten that module altogether and have them all in a single main.tf file.

modules/vpn/example/main.tf Outdated Show resolved Hide resolved
modules/vpn/modules/vpn_instance/main.tf Outdated Show resolved Hide resolved
modules/vpn/modules/vpn_instance/variables.tf Outdated Show resolved Hide resolved
modules/vpn/example/example.tfvars Outdated Show resolved Hide resolved
@pavelrn
Copy link
Contributor Author

pavelrn commented Sep 4, 2023

@horiagunica

  • Move example to examples folder

The reason why I didn't place the example into main examples folder is that the module itself is NOT a VM-Series example. I still believe that VPN module example doesn't belong to main examples folder.

  • I can see there is an inherited module - maybe it would be a good idea to flatten that module altogether and have them all in a single main.tf file.

The reason why I placed vpn_instance in vpn module is that because
-vpn_instance is called from vpn and
-vpn_instance is not supposed to be used (will not be used) without vpn.
I still believe we should place vpn_instance inside vpn not to expose the modules that are not supposed to be used as external.

@pavelrn
Copy link
Contributor Author

pavelrn commented Sep 4, 2023

To align module structure with existing modules I decided to flatten VPN module (remove submodule).
Example code moved in the module's README

@pavelrn pavelrn dismissed horiagunica’s stale review September 11, 2023 22:56

Issues has been fixed

@pavelrn pavelrn merged commit 0b2fd7e into main Sep 11, 2023
15 checks passed
@pavelrn pavelrn deleted the feat/vpn_module branch September 11, 2023 22:56
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

VPN module for GCP
3 participants