GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Offline Service is never given appProtocol: grpc (registry fixed by #6367) · Issue #6866 · feast-dev/feast

Offline Service is never given appProtocol: grpc (registry fixed by #6367) #6866

New issue
Copy link
New issue
Copy link
Closed
#6869
Closed
Offline Service is never given appProtocol: grpc (registry fixed by #6367)#6866
#6869
Copy link
Labels
kind/bugpriority/p2

Description

@dbbvitor
dbbvitor
opened on Sep 24, 2026
Issue body actions

Note

Narrowing scope from the original report: registry's appProtocol: grpc was already fixed by #6367 , merged 2026-05-22 and in 0.66.0. This report is about offline only, which getServiceAppProtocol() still doesn't cover.

Expected Behavior

The Service the Operator creates for the offline (Arrow Flight / gRPC) server should set the native Kubernetes appProtocol: grpc on its port, so Istio (or any protocol-aware mesh) negotiates HTTP/2 instead of guessing from the port name — the same fix #6367 already applied to the registry Service.

Current Behavior

getServiceAppProtocol() only special-cases the registry service:

func (feast *FeastServices) getServiceAppProtocol(feastType FeastServiceType, isRestService bool) *string {
	if feastType == RegistryFeastType && !isRestService && feast.isRegistryGrpcEnabled() {
		return ptr.To("grpc")
	}
	return nil   // offline falls through here despite also speaking gRPC
}

The offline Service still gets name: http, no appProtocol — Istio negotiates HTTP/1.1 for gRPC (Arrow Flight) traffic to it.

Steps to reproduce

  • Deploy a FeatureStore with an offline server, in a cluster with Istio sidecar injection enabled for the Feast namespace.
  • Inspect the generated offline Service: its port is named "http" (no appProtocol set).
  • Send gRPC traffic to that Service through the mesh and observe protocol negotiation issues consistent with HTTP/1.1 (e.g. via istioctl proxy-config).

Specifications

  • Version: 0.66.0 / current infra/feast-operator on master
  • Platform: Kubernetes with Istio sidecar mesh
  • Subsystem: infra/feast-operator Service rendering

Possible Solution

if (feastType == RegistryFeastType && !isRestService && feast.isRegistryGrpcEnabled()) ||
    feastType == OfflineFeastType {
	return ptr.To("grpc")
}

Same helper, same pattern #6367 already established — just extend the condition to OfflineFeastType.

Activity

  1. dbbvitor
    added
    kind/bug
    priority/p2
    on Sep 24, 2026
  2. dbbvitor
    changed the title [-]Registry and offline Services are never given appProtocol: grpc[/-] [+]Offline Service is never given appProtocol: grpc (registry fixed by #6367)[/+] on Sep 24, 2026
  3. ntkathole
    closed this as completedin #6869on Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugpriority/p2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.