Skip to content

Adds EnvoyProxy Support to Kubernetes Provider#861

Merged
danehans merged 1 commit intoenvoyproxy:mainfrom
danehans:issue_713_kube
Jan 17, 2023
Merged

Adds EnvoyProxy Support to Kubernetes Provider#861
danehans merged 1 commit intoenvoyproxy:mainfrom
danehans:issue_713_kube

Conversation

@danehans
Copy link
Copy Markdown
Contributor

@danehans danehans commented Jan 5, 2023

Adds EnvoyProxy support to the Kubernetes provider.

  • Updates status pkg to support GatewayClass InvalidParamtersRef status condition.
  • Updates the Kube controller to watch for EnvoyProxy API objects and trigger GatewayClass reconciliation. This supports processing the paramtersRef and updating GatewayClass status conditions.
  • Adds unit and integration tests.

Signed-off-by: danehans [email protected]

@danehans danehans requested a review from a team as a code owner January 5, 2023 01:04
@danehans danehans added area/config Issues related to config management, e.g. Config Manager, Config Sources, etc. provider/kubernetes Issues related to the Kubernetes provider labels Jan 5, 2023
@danehans danehans added this to the 0.3.0-rc.1 milestone Jan 5, 2023
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Jan 5, 2023

Codecov Report

❌ Patch coverage is 73.38129% with 37 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.69%. Comparing base (d90a8e0) to head (f4e288c).
⚠️ Report is 3971 commits behind head on main.

Files with missing lines Patch % Lines
internal/provider/kubernetes/controller.go 66.25% 18 Missing and 9 partials ⚠️
internal/gatewayapi/zz_generated.deepcopy.go 0.00% 5 Missing ⚠️
api/config/v1alpha1/validation/envoyproxy.go 90.00% 2 Missing ⚠️
internal/status/gatewayclass.go 0.00% 2 Missing ⚠️
internal/gatewayapi/resource.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #861      +/-   ##
==========================================
+ Coverage   63.49%   63.69%   +0.20%     
==========================================
  Files          53       54       +1     
  Lines        7476     7603     +127     
==========================================
+ Hits         4747     4843      +96     
- Misses       2430     2455      +25     
- Partials      299      305       +6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@danehans danehans mentioned this pull request Jan 5, 2023
@danehans
Copy link
Copy Markdown
Contributor Author

danehans commented Jan 5, 2023

@zirain thanks for the review. Commit 2e42dcd resolves your comments, PTAL.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

curious why this function Is needed instead of just capturing the gateway class and the envoy proxy associated with it here

acceptedGC := cc.acceptedClass()

Copy link
Copy Markdown
Contributor Author

@danehans danehans Jan 13, 2023

Choose a reason for hiding this comment

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

cc and acceptedGC are created during a reconcile event, e.g. Reconcile(). This method creates the reconcile request for the GC that ref's the watched EnvoyProxy. EnvoyProxy does not bind/ref other resources, e.g. parentRef, so the method must list all GCs to see which one references the watched EnvoyProxy. This is similar to listing all HTTPRoutes for a Gateway CRUD to understand which HTTPRoutes are used to calculate listener conditions.

Copy link
Copy Markdown
Member

@Xunzhuo Xunzhuo left a comment

Choose a reason for hiding this comment

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

Mostly LGTM, but can this be merged after TCPRoute Implementation get merged? Or there will be more conflicts I need to resolve.

@danehans
Copy link
Copy Markdown
Contributor Author

@arkodg @Xunzhuo thanks for the review. I've been busy with other responsibilities over the past several days. I'll respond and resolve review comments shortly.

@danehans
Copy link
Copy Markdown
Contributor Author

@arkodg I commented/resolved your review feedback, PTAL.

arkodg
arkodg previously approved these changes Jan 14, 2023
zirain
zirain previously approved these changes Jan 15, 2023
@danehans danehans dismissed stale reviews from zirain and arkodg via f4e288c January 16, 2023 17:26
@danehans danehans merged commit 81ca4b9 into envoyproxy:main Jan 17, 2023
@danehans danehans deleted the issue_713_kube branch January 17, 2023 02:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config Issues related to config management, e.g. Config Manager, Config Sources, etc. provider/kubernetes Issues related to the Kubernetes provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants