Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add integ test that validates full proxy traversal #33140

Merged
merged 13 commits into from
Jan 30, 2025

Conversation

rix0rrr
Copy link
Contributor

@rix0rrr rix0rrr commented Jan 24, 2025

(Re-roll of #33092)

Add a CLI integ test to validate that cdk deploy works in a fully network-isolated environment, with only a proxy to go through.

This validates that no parts of the CLI setup ignore the proxy configuration, which would otherwise be hard to test.

We achieve the network isolation by running the code inside a Docker container where we use iptables to drop all network traffic that doesn't go through the Docker host, where we run a proxy.

I temporarily bumped the tsconfig target to try out the using syntax (didn't work out with Jest), but that caused some compiler errors around class member initialization that I fixed as well.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

@rix0rrr rix0rrr requested a review from a team as a code owner January 24, 2025 13:58
@rix0rrr rix0rrr added the pr/do-not-merge This PR should not be merged at this time. label Jan 24, 2025
@github-actions github-actions bot added the p2 label Jan 24, 2025
@aws-cdk-automation aws-cdk-automation requested a review from a team January 24, 2025 13:58
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Jan 24, 2025
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(This review is outdated)

Copy link

codecov bot commented Jan 24, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.79%. Comparing base (aec64f0) to head (e196059).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #33140   +/-   ##
=======================================
  Coverage   80.79%   80.79%           
=======================================
  Files         232      232           
  Lines       14106    14106           
  Branches     2452     2452           
=======================================
  Hits        11397    11397           
  Misses       2429     2429           
  Partials      280      280           
Flag Coverage Δ
suite.unit 80.79% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
packages/aws-cdk 79.53% <ø> (ø)
packages/aws-cdk-lib/core 82.17% <ø> (ø)

@aws-cdk-automation aws-cdk-automation dismissed their stale review January 24, 2025 14:13

✅ Updated pull request passes all PRLinter validations. Dismissing previous PRLinter review.

@aws-cdk-automation aws-cdk-automation added the pr/needs-maintainer-review This PR needs a review from a Core Team Member label Jan 24, 2025
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(This review is outdated)

@rix0rrr rix0rrr added the pr-linter/exempt-codecov The PR linter will not require codecov checks to pass label Jan 26, 2025
@aws-cdk-automation aws-cdk-automation dismissed their stale review January 26, 2025 20:21

✅ Updated pull request passes all PRLinter validations. Dismissing previous PRLinter review.

Add a CLI integ test to validate that `cdk deploy` works in a fully
network-isolated environment, with only a proxy to go through.

This validates that no parts of the CLI setup ignore the proxy
configuration, which would otherwise be hard to test.

We achieve the network isolation by running the code inside a Docker
container where we use `iptables` to drop all network traffic that
doesn't go through the Docker host, where we run a proxy.

I temporarily bumped the `tsconfig` `target` to try out the `using`
syntax (didn't work out with Jest), but that caused some compiler errors
around class member initialization that I fixed as well.
@rix0rrr rix0rrr force-pushed the huijbers/isolated-proxy-test-2 branch from 944f31f to 18e1b32 Compare January 27, 2025 10:46
@aws-cdk-automation aws-cdk-automation removed the pr/needs-maintainer-review This PR needs a review from a Core Team Member label Jan 28, 2025
@rix0rrr
Copy link
Contributor Author

rix0rrr commented Jan 28, 2025

Argh, the tests pass when I run them interactively in CodeBuild, but fail when I run them as part of the pipeline.

@aws-cdk-automation aws-cdk-automation added the pr/needs-maintainer-review This PR needs a review from a Core Team Member label Jan 28, 2025
@aws-cdk-automation
Copy link
Collaborator

➡️ PR build request submitted to test-main-pipeline ⬅️

A maintainer must now check the pipeline and add the pr-linter/cli-integ-tested label once the pipeline succeeds.

@rix0rrr
Copy link
Contributor Author

rix0rrr commented Jan 29, 2025

This was only a week of my life!

image

@rix0rrr rix0rrr added pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested and removed pr/do-not-merge This PR should not be merged at this time. labels Jan 29, 2025
Copy link
Contributor

mergify bot commented Jan 30, 2025

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: e196059
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Copy link
Contributor

mergify bot commented Jan 30, 2025

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@mergify mergify bot merged commit c40a9e2 into main Jan 30, 2025
19 of 20 checks passed
@mergify mergify bot deleted the huijbers/isolated-proxy-test-2 branch January 30, 2025 09:09
Copy link

Comments on closed issues and PRs are hard for our team to see.
If you need help, please open a new issue that references this one.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 30, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
contribution/core This is a PR that came from AWS. p2 pr/needs-maintainer-review This PR needs a review from a Core Team Member pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested pr-linter/exempt-codecov The PR linter will not require codecov checks to pass
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants