paraglider-project / paraglider

Streamlining cloud networking
https://paragliderproject.io
Apache License 2.0
61 stars 4 forks source link

[Azure] Add NAT gateways for outbound public IP addresses #441

Closed seankimkdy closed 4 months ago

seankimkdy commented 4 months ago

Takes on Azure portion of #434. This allows resources to have outbound permit list rules with public IP addresses. When a permit list rule with a public IP address target is passed in to AddPermitListRules, a NAT gateway is spun up in the vnet where the resource resides. Similar to VPN gateways, the NAT gateway is created on demand and not before it is necessary.

[!NOTE]
Initiating inbound connections is still not supported and can only be done if a user attaches a public IP address to the VM. Support for this may come later but hasn't been discussed.

I also refactored Azure's connectivity check methods such that it's more user friendly to those from other clouds.

GCP PR is coming soon after #417 is merged due to a lot of code overlap.

github-actions[bot] commented 4 months ago

Unit Test Results

315 tests  +10   315 :white_check_mark: +10   2s :stopwatch: -1s  49 suites ± 0     0 :zzz: ± 0    1 files   ± 0     0 :x: ± 0 

Results for commit 8408bbf5. ± Comparison against base commit 1eb63d8e.

This pull request removes 4 and adds 14 tests. Note that renamed tests count towards both. ``` github.com/paraglider-project/paraglider/pkg/gcp ‑ TestGKECreateWithNetwork github.com/paraglider-project/paraglider/pkg/gcp ‑ TestGKEFromResourceDecription github.com/paraglider-project/paraglider/pkg/gcp ‑ TestGKEGetNetworkInfo github.com/paraglider-project/paraglider/pkg/gcp ‑ TestGKEGetResourceInfo ``` ``` github.com/paraglider-project/paraglider/pkg/azure ‑ TestAddPermitListRules/Public_IP_Address github.com/paraglider-project/paraglider/pkg/azure ‑ TestCreateNatGateway github.com/paraglider-project/paraglider/pkg/azure ‑ TestCreateNatGateway/Success github.com/paraglider-project/paraglider/pkg/azure ‑ TestGetNatGateway github.com/paraglider-project/paraglider/pkg/azure ‑ TestGetNatGateway/Failure github.com/paraglider-project/paraglider/pkg/azure ‑ TestGetNatGateway/Success github.com/paraglider-project/paraglider/pkg/gcp ‑ TestClusterCreateWithNetwork github.com/paraglider-project/paraglider/pkg/gcp ‑ TestClusterFromResourceDecription github.com/paraglider-project/paraglider/pkg/gcp ‑ TestClusterGetNetworkInfo github.com/paraglider-project/paraglider/pkg/gcp ‑ TestClusterGetResourceInfo … ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 4 months ago

51.2

For the detailed report, please go to Checks tab, click Build and Test, and then download unit_test_coverage artifact at the bottom of build page.

The coverage result does not include the functional test results.

github-actions[bot] commented 4 months ago

51.2

For the detailed report, please go to Checks tab, click Build and Test, and then download unit_test_coverage artifact at the bottom of build page.

The coverage result does not include the functional test results.

github-actions[bot] commented 4 months ago

51.2

For the detailed report, please go to Checks tab, click Build and Test, and then download unit_test_coverage artifact at the bottom of build page.

The coverage result does not include the functional test results.

github-actions[bot] commented 4 months ago

51.1

For the detailed report, please go to Checks tab, click Build and Test, and then download unit_test_coverage artifact at the bottom of build page.

The coverage result does not include the functional test results.

github-actions[bot] commented 4 months ago

51.7

For the detailed report, please go to Checks tab, click Build and Test, and then download unit_test_coverage artifact at the bottom of build page.

The coverage result does not include the functional test results.

github-actions[bot] commented 4 months ago

51.7

For the detailed report, please go to Checks tab, click Build and Test, and then download unit_test_coverage artifact at the bottom of build page.

The coverage result does not include the functional test results.

github-actions[bot] commented 4 months ago

51.7

For the detailed report, please go to Checks tab, click Build and Test, and then download unit_test_coverage artifact at the bottom of build page.

The coverage result does not include the functional test results.