Skip to content

feat: egress gw #1331

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

Open
wants to merge 23 commits into
base: main
Choose a base branch
from
Open

feat: egress gw #1331

wants to merge 23 commits into from

Conversation

meganwolf0
Copy link

@meganwolf0 meganwolf0 commented Mar 3, 2025

Description

Adds egress gateway and relevant Istio resources to UDS Core.

This PR contains:

  • Addition of egressgateway component in the Istio zarf package (default is not included)
  • Package CR update - extension of network.allow parameters to support a defined remoteHost and remoteProtocol for workloads to send traffic
  • Controller updates to create needed egress resources to route traffic to the egress gateway workload
  • Tests and docs

Notes to reviewers

  • The addition of shared resources that multiple Package CRs are updating seemed to be a fairly uncommon pattern in the uds-operator (the exception probably being the authservice secret) - the reconciliation of these values lives in an in-memory map, so if there are multiple processes that will be reconciling, this will become invalidated (to my understanding this is not a current operation)
  • This is the design for sidecar only, assuming that at some point an ambient design will accompany or entirely replace this
  • The purpose of the shared-egress-resources task in ./src/test/tasks.yaml` was to try and provide some validation that the reconciliation shared egress resources was successful. It was unclear to me if this testing would be more appropriate elsewhere.
  • The grafana playwright test needed to be updated because for some reason with the addition of two namespaces, the grafana namespace fell out of the "visible" portion of the namespace dropdown that was being selected from

Related Issue

Fixes #776

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Other (security config, docs update, etc)

Steps to Validate

  • Create a new Package CR with the appropriate network.allow specification to allow egress to only a particular host. See ./src/test/app-egress.yaml for examples.

Checklist before merging

@meganwolf0 meganwolf0 self-assigned this Apr 4, 2025
@meganwolf0 meganwolf0 marked this pull request as ready for review April 4, 2025 18:46
@meganwolf0 meganwolf0 requested a review from a team as a code owner April 4, 2025 18:46
@meganwolf0
Copy link
Author

I guess I'm going to have to fix the unsigned commits 🙃

Copy link
Contributor

@mjnagel mjnagel left a comment

Choose a reason for hiding this comment

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

Did some local validation and it appears to work as expected for the most part. I want to spend a bit more time looking at the share resources and testing some things there as well but wanted to get this first batch of feedback submitted.

@meganwolf0 meganwolf0 force-pushed the meganwolf0/feat-egress-gw branch from 8c25bbd to 3f7ea9d Compare April 24, 2025 14:59
Copy link
Contributor

@chance-coleman chance-coleman left a comment

Choose a reason for hiding this comment

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

I'm happy with this as is, would like to get approvals from rest of team before merge though.

@meganwolf0 meganwolf0 force-pushed the meganwolf0/feat-egress-gw branch from 5007c72 to 4795d88 Compare May 15, 2025 19:21
Copy link
Contributor

@mjnagel mjnagel left a comment

Choose a reason for hiding this comment

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

Overall this is looking pretty good. My main concern at this point is with concurrency and race conditions, otherwise all the logic and resources seem sound.

@meganwolf0 meganwolf0 force-pushed the meganwolf0/feat-egress-gw branch from e9a3a58 to 58f5e0d Compare May 19, 2025 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Egress gateway / external service entry configuration
4 participants