Skip to content

Conversation

ntkathole
Copy link
Member

What this PR does / why we need it:

When both gRPC and REST registry servers are enabled with TLS, the Feast operator was generating separate TLS certificates for each service, causing hostname validation failures. The gRPC client would receive a "Peer name not in peer certificate" error because it was trying to connect to the gRPC service hostname but the certificate only contained the REST service hostname.

Error:

_InactiveRpcError: <_InactiveRpcError of RPC that terminated with: 
status = StatusCode.UNAVAILABLE 
details = "failed to connect to all addresses; last error: UNKNOWN: ipv4:172.xx.xx.xx:443: 
Peer name feast-example-registry.default.svc.cluster.local is not in peer certificate"

This PR implemented a unified TLS certificate approach using Subject Alternative Names (SANs). When both gRPC and REST are enabled, use the gRPC service name as the primary certificate and add the REST service hostname as a Subject Alternative Name in the certificate.

@ntkathole ntkathole self-assigned this Sep 15, 2025
@ntkathole ntkathole requested a review from a team as a code owner September 15, 2025 14:02
Copy link
Member

@franciscojavierarceo franciscojavierarceo left a comment

Choose a reason for hiding this comment

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

stamp

@franciscojavierarceo franciscojavierarceo merged commit 51c16b1 into feast-dev:master Sep 15, 2025
18 checks passed
franciscojavierarceo pushed a commit that referenced this pull request Sep 30, 2025
# [0.54.0](v0.53.0...v0.54.0) (2025-09-30)

### Bug Fixes

* Column quoting in query of `PostgreSQLOfflineStore.pull_all_from_table_or_query` ([#5621](#5621)) ([e8eae71](e8eae71))
* Correct column list polars materialization engine ([#5595](#5595)) ([39aeb0c](39aeb0c))
* Fix Go feature server entitykey serialization for version 3 ([#5622](#5622)) ([5ab18a6](5ab18a6))
* Fix hostname resolution for spark tests ([#5610](#5610)) ([8f0e22d](8f0e22d))
* Fixed filtering based on data_source for ODFVs ([#5593](#5593)) ([c3e6c56](c3e6c56))
* Fixed project_description to set in registry and UI ([#5602](#5602)) ([02c3006](02c3006))
* Fixed Registry Cache Refresh Issues ([#5604](#5604)) ([3c7a022](3c7a022))
* Fixed tls issue when running both grpc and rest servers ([#5617](#5617)) ([51c16b1](51c16b1))
* Fixed transaction handling with SQLite registry ([#5588](#5588)) ([0052754](0052754))
* Update the deprecated functions in Go feature server. ([#5632](#5632)) ([a24e06e](a24e06e))
* Updated python packages conflicting with kserve dependencies ([#5580](#5580)) ([d56baf4](d56baf4))

### Features

* Add 'featureView' in global search api result for features. ([#5626](#5626)) ([76590bf](76590bf))
* Add aggregation in OnDemandFeatureView ([#5629](#5629)) ([8715ae8](8715ae8))
* Added codeflare-sdk to requirements ([#5640](#5640)) ([51a0ee6](51a0ee6))
* Added RemoteDatasetProxy that executes Ray Data operations remotely ([7128024](7128024))
* Added support for image search ([#5577](#5577)) ([56c5910](56c5910))
* Enable ingestion without event timestamp ([#5625](#5625)) ([eb51f00](eb51f00))
* Feast dataframe phase1 ([#5611](#5611)) ([2ce4198](2ce4198))
* Feast dataframe phase2 ([#5612](#5612)) ([1d08786](1d08786))
* Feast Namespaces registry for client ConfigMaps availability ([#5599](#5599)) ([728589a](728589a))
* Support hdfs:// uris in to_remote_storage for Spark offline store ([#5635](#5635)) ([5e4b9fd](5e4b9fd))
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.

2 participants