Skip to content

Allow for headless envoy services#6250

Merged
arkodg merged 9 commits intoenvoyproxy:mainfrom
ryanhristovski:issue-6142-allow-headless-svc
Jun 3, 2025
Merged

Allow for headless envoy services#6250
arkodg merged 9 commits intoenvoyproxy:mainfrom
ryanhristovski:issue-6142-allow-headless-svc

Conversation

@ryanhristovski
Copy link
Copy Markdown
Contributor

When clusterip on service is set to None it causes a not critical error (everything still functions as expected):

envoy-gateway-65589cc498-8q4gl envoy-gateway 2025-06-02T20:10:54.589Z   ERROR   provider    kubernetes/status_updater.go:119    unable to update status {"runner": "provider", "name": "internal-gateway", "namespace": "infra-routing", "error": "Gateway.gateway.networking.k8s.io "internal-gateway" is invalid: [status: Invalid value: "": "addresses[0]" must validate one and only one schema (oneOf). Found none valid, status: Invalid value: "": "addresses[0].value" must validate at least one schema (anyOf), status.addresses[0].value: Invalid value: "None": addresses[0].value in body must be of type ipv4: "None", <nil>: Invalid value: "null": some validation rules were not checked because the object was invalid; correct the existing errors to complete validation]"}

Caused by this:

apiVersion: v1
kind: Service
metadata:
  name: envoy-headless
  namespace: <names
spec:
  type: ClusterIP
  clusterIP: None # This makes it a headless service
  ports:
    - name: http
      port: 80
      targetPort: 10080
      protocol: TCP
...

This solution simply adds valid cluster IP's, and ignores None or "".

Signed-off-by: Ryan Hristovski [email protected]

Signed-off-by: Ryan Hristovski <[email protected]>
Signed-off-by: Ryan Hristovski <[email protected]>
Signed-off-by: Ryan Hristovski <[email protected]>
@ryanhristovski ryanhristovski requested a review from a team as a code owner June 2, 2025 20:30
@codecov
Copy link
Copy Markdown

codecov bot commented Jun 2, 2025

Codecov Report

Attention: Patch coverage is 57.14286% with 3 lines in your changes missing coverage. Please review.

Project coverage is 70.51%. Comparing base (a858b7b) to head (20275f0).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
internal/gatewayapi/status/gateway.go 57.14% 2 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6250      +/-   ##
==========================================
+ Coverage   70.45%   70.51%   +0.05%     
==========================================
  Files         220      220              
  Lines       36607    36611       +4     
==========================================
+ Hits        25792    25815      +23     
+ Misses       9288     9270      -18     
+ Partials     1527     1526       -1     

☔ 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.

@arkodg
Copy link
Copy Markdown
Contributor

arkodg commented Jun 2, 2025

thanks @ryanhristovski
can you add a test in https://github.com/envoyproxy/gateway/blob/main/internal/gatewayapi/status/gateway_test.go
as well as a comment, highlighting that the step skips adding None which represents headless services

Signed-off-by: Ryan Hristovski <[email protected]>
arkodg
arkodg previously approved these changes Jun 2, 2025
@arkodg
Copy link
Copy Markdown
Contributor

arkodg commented Jun 2, 2025

test is failing @ryanhristovski

Signed-off-by: Ryan Hristovski <[email protected]>
Signed-off-by: Ryan Hristovski <[email protected]>
Signed-off-by: Ryan Hristovski <[email protected]>
Signed-off-by: Ryan Hristovski <[email protected]>
Signed-off-by: Ryan Hristovski <[email protected]>
@arkodg arkodg requested review from a team June 2, 2025 23:09
@ryanhristovski
Copy link
Copy Markdown
Contributor Author

/retest

@zirain
Copy link
Copy Markdown
Member

zirain commented Jun 3, 2025

/retest

@arkodg arkodg merged commit 2e168a8 into envoyproxy:main Jun 3, 2025
60 of 63 checks passed
arkodg pushed a commit to arkodg/gateway that referenced this pull request Jun 3, 2025
* Allow for headless envoy services

Signed-off-by: Ryan Hristovski <[email protected]>

* Allow headless service, cleanup

Signed-off-by: Ryan Hristovski <[email protected]>

* clean

Signed-off-by: Ryan Hristovski <[email protected]>

* Add test and comment

Signed-off-by: Ryan Hristovski <[email protected]>

* Fix tests

Signed-off-by: Ryan Hristovski <[email protected]>
(cherry picked from commit 2e168a8)
Signed-off-by: Arko Dasgupta <[email protected]>
arkodg added a commit that referenced this pull request Jun 4, 2025
* feat: set OverlappingTLSConfig condition for merged Gateways (#5862)

* set OverlappingTLSConfig condition for merged Gateways

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* fix lint

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* minor change

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

---------

Signed-off-by: Huabing (Robin) Zhao <[email protected]>
(cherry picked from commit be51e5b)
Signed-off-by: Arko Dasgupta <[email protected]>

* e2e: fix backend tls test (#6029)

* fix backend tls test

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* enable backend tls test

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* remove gateway TLS to simplify the test

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* rename secret to avoid conflicts

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

---------

Signed-off-by: Huabing (Robin) Zhao <[email protected]>
(cherry picked from commit a685667)
Signed-off-by: Arko Dasgupta <[email protected]>

* validate gateway namespace mode and merged gateways (#6041)

* validate gateway namespace mode and merged gateways in translator

Signed-off-by: Karol Szwaj <[email protected]>

* fix lint

Signed-off-by: Karol Szwaj <[email protected]>

* skip merge gateways test

Signed-off-by: Karol Szwaj <[email protected]>

* validate on gatewayclass and set the status

Signed-off-by: Karol Szwaj <[email protected]>

* skip e2e test

Signed-off-by: Karol Szwaj <[email protected]>

* add valid testcases

Signed-off-by: Karol Szwaj <[email protected]>

* Update internal/provider/kubernetes/controller.go

Co-authored-by: Arko Dasgupta <[email protected]>
Signed-off-by: Karol Szwaj <[email protected]>

* fix lint

Signed-off-by: Karol Szwaj <[email protected]>

* skip merge gateways test

Signed-off-by: Karol Szwaj <[email protected]>

* rebase

Signed-off-by: Karol Szwaj <[email protected]>

---------

Signed-off-by: Karol Szwaj <[email protected]>
Co-authored-by: zirain <[email protected]>
Co-authored-by: Arko Dasgupta <[email protected]>
(cherry picked from commit c5f6831)
Signed-off-by: Arko Dasgupta <[email protected]>

* Fix shared=true when no clientSelector, (#6072)

* Fix shared=true when no clientSelector, cleanup filter logic, fix rl descriptor logic

Signed-off-by: Ryan Hristovski <[email protected]>

* testdata update

Signed-off-by: Ryan Hristovski <[email protected]>

* Linting, remove unused funcs

Signed-off-by: Ryan Hristovski <[email protected]>

* fix e2e

Signed-off-by: Ryan Hristovski <[email protected]>
(cherry picked from commit bb3c8da)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix(tranlator): SubjectAltNames were being dropped from BackendTLSPolicy.validation (#6092)

* Add support for SubjectAltNames from BackendTLSPolicy.validation

Signed-off-by: Ankush Agarwal <[email protected]>
(cherry picked from commit 35420d5)
Signed-off-by: Arko Dasgupta <[email protected]>

* feat: add ownerreference to infra resources when gateway namespace mode (#6100)

* feat: add ownerreference to infra resources when gateway namespace mode

Signed-off-by: kkk777-7 <[email protected]>
(cherry picked from commit fc462a8)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix: add FullDuplexStreamed to enum (#6103)

* fix: add FullDuplexStreamed to enum

Signed-off-by: Guy Daich <[email protected]>
(cherry picked from commit 020d60a)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix: Use quoted values zone annotation in topology injector (#6133)

* Quoted string for zone values

Signed-off-by: jukie <[email protected]>

* release note

Signed-off-by: jukie <[email protected]>

* regen

Signed-off-by: jukie <[email protected]>
(cherry picked from commit ea9cb05)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix: return early from buildwasms (#6169)

return early from buildwasms

Signed-off-by: Guy Daich <[email protected]>
(cherry picked from commit 64624fe)
Signed-off-by: Arko Dasgupta <[email protected]>

* chore: bump go and purego (#6174)

* chore: bump go and purego

Signed-off-by: zirain <[email protected]>

* fix  gen

Signed-off-by: zirain <[email protected]>

---------

Signed-off-by: zirain <[email protected]>
(cherry picked from commit 40ae9e3)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix: translate xds udp listener (#6183)

* fix: translate udp listener

Signed-off-by: kkk777-7 <[email protected]>

* add: tcp/udp no routes testdata in xds translator

Signed-off-by: kkk777-7 <[email protected]>

* add: release note

Signed-off-by: kkk777-7 <[email protected]>
(cherry picked from commit 8f538e7)
Signed-off-by: Arko Dasgupta <[email protected]>

* Change static uid to  for global ratelimit dashboard (#6193)

Signed-off-by: Emin Aktas <[email protected]>
(cherry picked from commit f721925)
Signed-off-by: Arko Dasgupta <[email protected]>

* Fix broken btp ratelimit merge (#6214)

* Fix broken btp ratelimit merge

Signed-off-by: Ryan Hristovski <[email protected]>

* lint

Signed-off-by: Ryan Hristovski <[email protected]>

---------

Signed-off-by: Ryan Hristovski <[email protected]>
(cherry picked from commit 0f6f363)
Signed-off-by: Arko Dasgupta <[email protected]>

* Keep ALPN configuration for listeners with overlapping certificates when ALPN is explicitly set via ClientTrafficPolicy (#6217)

Keep ALPN configuration for listeners with overlapping certificates when ALPN is explicitly set in ClientTrafficPolicy

Signed-off-by: Huabing (Robin) Zhao <[email protected]>
(cherry picked from commit de816a6)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix testdata

Signed-off-by: Arko Dasgupta <[email protected]>

* Allow for headless envoy services (#6250)

* Allow for headless envoy services

Signed-off-by: Ryan Hristovski <[email protected]>

* Allow headless service, cleanup

Signed-off-by: Ryan Hristovski <[email protected]>

* clean

Signed-off-by: Ryan Hristovski <[email protected]>

* Add test and comment

Signed-off-by: Ryan Hristovski <[email protected]>

* Fix tests

Signed-off-by: Ryan Hristovski <[email protected]>
(cherry picked from commit 2e168a8)
Signed-off-by: Arko Dasgupta <[email protected]>

* remove infra ENVOY_GATEWAY_NAMESPACE and introduce ENVOY_POD_NAMESPACE envVar for accesslog (#6221)

* remove infra ENVOY_GATEWAY_NAMESPACE and introduce ENVOY_POD_NAMESPACE envVar for accesslog

Signed-off-by: Karol Szwaj <[email protected]>

* fix e2e test

Signed-off-by: Karol Szwaj <[email protected]>

---------

Signed-off-by: Karol Szwaj <[email protected]>
(cherry picked from commit b7ed197)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix lint

Signed-off-by: Arko Dasgupta <[email protected]>

---------

Signed-off-by: Huabing (Robin) Zhao <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Karol Szwaj <[email protected]>
Signed-off-by: Ryan Hristovski <[email protected]>
Signed-off-by: Ankush Agarwal <[email protected]>
Signed-off-by: kkk777-7 <[email protected]>
Signed-off-by: Guy Daich <[email protected]>
Signed-off-by: jukie <[email protected]>
Signed-off-by: zirain <[email protected]>
Signed-off-by: Emin Aktas <[email protected]>
Co-authored-by: Huabing (Robin) Zhao <[email protected]>
Co-authored-by: Karol Szwaj <[email protected]>
Co-authored-by: zirain <[email protected]>
Co-authored-by: Ryan Hristovski <[email protected]>
Co-authored-by: Ankush Agarwal <[email protected]>
Co-authored-by: Kota Kimura <[email protected]>
Co-authored-by: Guy Daich <[email protected]>
Co-authored-by: Isaac <[email protected]>
Co-authored-by: Emin AKTAS <[email protected]>
shawnh2 pushed a commit to shawnh2/gateway that referenced this pull request Sep 15, 2025
* feat: set OverlappingTLSConfig condition for merged Gateways (envoyproxy#5862)

* set OverlappingTLSConfig condition for merged Gateways

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* fix lint

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* minor change

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

---------

Signed-off-by: Huabing (Robin) Zhao <[email protected]>
(cherry picked from commit be51e5b)
Signed-off-by: Arko Dasgupta <[email protected]>

* e2e: fix backend tls test (envoyproxy#6029)

* fix backend tls test

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* enable backend tls test

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* remove gateway TLS to simplify the test

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

* rename secret to avoid conflicts

Signed-off-by: Huabing (Robin) Zhao <[email protected]>

---------

Signed-off-by: Huabing (Robin) Zhao <[email protected]>
(cherry picked from commit a685667)
Signed-off-by: Arko Dasgupta <[email protected]>

* validate gateway namespace mode and merged gateways (envoyproxy#6041)

* validate gateway namespace mode and merged gateways in translator

Signed-off-by: Karol Szwaj <[email protected]>

* fix lint

Signed-off-by: Karol Szwaj <[email protected]>

* skip merge gateways test

Signed-off-by: Karol Szwaj <[email protected]>

* validate on gatewayclass and set the status

Signed-off-by: Karol Szwaj <[email protected]>

* skip e2e test

Signed-off-by: Karol Szwaj <[email protected]>

* add valid testcases

Signed-off-by: Karol Szwaj <[email protected]>

* Update internal/provider/kubernetes/controller.go

Co-authored-by: Arko Dasgupta <[email protected]>
Signed-off-by: Karol Szwaj <[email protected]>

* fix lint

Signed-off-by: Karol Szwaj <[email protected]>

* skip merge gateways test

Signed-off-by: Karol Szwaj <[email protected]>

* rebase

Signed-off-by: Karol Szwaj <[email protected]>

---------

Signed-off-by: Karol Szwaj <[email protected]>
Co-authored-by: zirain <[email protected]>
Co-authored-by: Arko Dasgupta <[email protected]>
(cherry picked from commit c5f6831)
Signed-off-by: Arko Dasgupta <[email protected]>

* Fix shared=true when no clientSelector, (envoyproxy#6072)

* Fix shared=true when no clientSelector, cleanup filter logic, fix rl descriptor logic

Signed-off-by: Ryan Hristovski <[email protected]>

* testdata update

Signed-off-by: Ryan Hristovski <[email protected]>

* Linting, remove unused funcs

Signed-off-by: Ryan Hristovski <[email protected]>

* fix e2e

Signed-off-by: Ryan Hristovski <[email protected]>
(cherry picked from commit bb3c8da)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix(tranlator): SubjectAltNames were being dropped from BackendTLSPolicy.validation (envoyproxy#6092)

* Add support for SubjectAltNames from BackendTLSPolicy.validation

Signed-off-by: Ankush Agarwal <[email protected]>
(cherry picked from commit 35420d5)
Signed-off-by: Arko Dasgupta <[email protected]>

* feat: add ownerreference to infra resources when gateway namespace mode (envoyproxy#6100)

* feat: add ownerreference to infra resources when gateway namespace mode

Signed-off-by: kkk777-7 <[email protected]>
(cherry picked from commit fc462a8)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix: add FullDuplexStreamed to enum (envoyproxy#6103)

* fix: add FullDuplexStreamed to enum

Signed-off-by: Guy Daich <[email protected]>
(cherry picked from commit 020d60a)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix: Use quoted values zone annotation in topology injector (envoyproxy#6133)

* Quoted string for zone values

Signed-off-by: jukie <[email protected]>

* release note

Signed-off-by: jukie <[email protected]>

* regen

Signed-off-by: jukie <[email protected]>
(cherry picked from commit ea9cb05)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix: return early from buildwasms (envoyproxy#6169)

return early from buildwasms

Signed-off-by: Guy Daich <[email protected]>
(cherry picked from commit 64624fe)
Signed-off-by: Arko Dasgupta <[email protected]>

* chore: bump go and purego (envoyproxy#6174)

* chore: bump go and purego

Signed-off-by: zirain <[email protected]>

* fix  gen

Signed-off-by: zirain <[email protected]>

---------

Signed-off-by: zirain <[email protected]>
(cherry picked from commit 40ae9e3)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix: translate xds udp listener (envoyproxy#6183)

* fix: translate udp listener

Signed-off-by: kkk777-7 <[email protected]>

* add: tcp/udp no routes testdata in xds translator

Signed-off-by: kkk777-7 <[email protected]>

* add: release note

Signed-off-by: kkk777-7 <[email protected]>
(cherry picked from commit 8f538e7)
Signed-off-by: Arko Dasgupta <[email protected]>

* Change static uid to  for global ratelimit dashboard (envoyproxy#6193)

Signed-off-by: Emin Aktas <[email protected]>
(cherry picked from commit f721925)
Signed-off-by: Arko Dasgupta <[email protected]>

* Fix broken btp ratelimit merge (envoyproxy#6214)

* Fix broken btp ratelimit merge

Signed-off-by: Ryan Hristovski <[email protected]>

* lint

Signed-off-by: Ryan Hristovski <[email protected]>

---------

Signed-off-by: Ryan Hristovski <[email protected]>
(cherry picked from commit 0f6f363)
Signed-off-by: Arko Dasgupta <[email protected]>

* Keep ALPN configuration for listeners with overlapping certificates when ALPN is explicitly set via ClientTrafficPolicy (envoyproxy#6217)

Keep ALPN configuration for listeners with overlapping certificates when ALPN is explicitly set in ClientTrafficPolicy

Signed-off-by: Huabing (Robin) Zhao <[email protected]>
(cherry picked from commit de816a6)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix testdata

Signed-off-by: Arko Dasgupta <[email protected]>

* Allow for headless envoy services (envoyproxy#6250)

* Allow for headless envoy services

Signed-off-by: Ryan Hristovski <[email protected]>

* Allow headless service, cleanup

Signed-off-by: Ryan Hristovski <[email protected]>

* clean

Signed-off-by: Ryan Hristovski <[email protected]>

* Add test and comment

Signed-off-by: Ryan Hristovski <[email protected]>

* Fix tests

Signed-off-by: Ryan Hristovski <[email protected]>
(cherry picked from commit 2e168a8)
Signed-off-by: Arko Dasgupta <[email protected]>

* remove infra ENVOY_GATEWAY_NAMESPACE and introduce ENVOY_POD_NAMESPACE envVar for accesslog (envoyproxy#6221)

* remove infra ENVOY_GATEWAY_NAMESPACE and introduce ENVOY_POD_NAMESPACE envVar for accesslog

Signed-off-by: Karol Szwaj <[email protected]>

* fix e2e test

Signed-off-by: Karol Szwaj <[email protected]>

---------

Signed-off-by: Karol Szwaj <[email protected]>
(cherry picked from commit b7ed197)
Signed-off-by: Arko Dasgupta <[email protected]>

* fix lint

Signed-off-by: Arko Dasgupta <[email protected]>

---------

Signed-off-by: Huabing (Robin) Zhao <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Karol Szwaj <[email protected]>
Signed-off-by: Ryan Hristovski <[email protected]>
Signed-off-by: Ankush Agarwal <[email protected]>
Signed-off-by: kkk777-7 <[email protected]>
Signed-off-by: Guy Daich <[email protected]>
Signed-off-by: jukie <[email protected]>
Signed-off-by: zirain <[email protected]>
Signed-off-by: Emin Aktas <[email protected]>
Co-authored-by: Huabing (Robin) Zhao <[email protected]>
Co-authored-by: Karol Szwaj <[email protected]>
Co-authored-by: zirain <[email protected]>
Co-authored-by: Ryan Hristovski <[email protected]>
Co-authored-by: Ankush Agarwal <[email protected]>
Co-authored-by: Kota Kimura <[email protected]>
Co-authored-by: Guy Daich <[email protected]>
Co-authored-by: Isaac <[email protected]>
Co-authored-by: Emin AKTAS <[email protected]>
Signed-off-by: shawnh2 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants