Skip to content

feat: Add per-service scaling & gRPC support#5934

Open
jatin5251 wants to merge 26 commits intofeast-dev:masterfrom
jatin5251:feat-feast-operator-mcp-grpc-per-service
Open

feat: Add per-service scaling & gRPC support#5934
jatin5251 wants to merge 26 commits intofeast-dev:masterfrom
jatin5251:feat-feast-operator-mcp-grpc-per-service

Conversation

@jatin5251
Copy link
Contributor

@jatin5251 jatin5251 commented Feb 2, 2026

What this PR does / why we need it:

  • Adds per-service deployments for Feast operator services so each service can scale independently (replicas per service).
  • Introduces an Online gRPC service alongside HTTP, with its own service + deployment and configurable gRPC settings (port, max_workers, registry_ttl, volume mounts).
  • Adds feature_server config passthrough in the FeatureStore CRD to enable MCP support in the feature server config.
  • Updates readiness checks and related CronJob selection to work with per-service deployments.
  • Regenerates CRDs / deepcopy and updates controller/service tests.
  • Adds a sample FeatureStore YAML showing gRPC + MCP configuration.

Which issue(s) this PR fixes:

  • Fixes # (or paste the issue URL)
    (If required i can create Github issue)

Misc

  • Docs not updated in this PR (if you want, I can add a short doc update).

Open with Devin

@jatin5251 jatin5251 requested a review from a team as a code owner February 2, 2026 08:03
@jatin5251 jatin5251 changed the title feat: add per-service scaling and grpc support feat: Add per-service scaling & gRPC support Feb 2, 2026
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

View issue and 5 additional flags in Devin Review.

Open in Devin Review

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 11 additional flags in Devin Review.

Open in Devin Review

@jatin5251 jatin5251 force-pushed the feat-feast-operator-mcp-grpc-per-service branch 3 times, most recently from e340591 to f7f7845 Compare February 2, 2026 15:38
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 22 additional flags in Devin Review.

Open in Devin Review

@jatin5251 jatin5251 force-pushed the feat-feast-operator-mcp-grpc-per-service branch from f7f7845 to 206c701 Compare February 2, 2026 15:42
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 25 additional flags in Devin Review.

Open in Devin Review

@jatin5251 jatin5251 force-pushed the feat-feast-operator-mcp-grpc-per-service branch from 206c701 to 38da893 Compare February 2, 2026 16:11
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 2 new potential issues.

View issues and 25 additional flags in Devin Review.

Open in Devin Review

@jatin5251 jatin5251 force-pushed the feat-feast-operator-mcp-grpc-per-service branch from 38da893 to c87e4be Compare February 2, 2026 17:03
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 25 additional flags in Devin Review.

Open in Devin Review

@jatin5251 jatin5251 force-pushed the feat-feast-operator-mcp-grpc-per-service branch from c87e4be to 9ff2621 Compare February 2, 2026 17:20
@jatin5251 jatin5251 closed this Feb 2, 2026
@jatin5251 jatin5251 reopened this Feb 2, 2026
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 32 additional flags in Devin Review.

Open in Devin Review

Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
@jatin5251 jatin5251 force-pushed the feat-feast-operator-mcp-grpc-per-service branch from 5ff72f8 to 99b5ca7 Compare February 2, 2026 23:52
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 2 new potential issues.

View issues and 47 additional flags in Devin Review.

Open in Devin Review

Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 48 additional flags in Devin Review.

Open in Devin Review

Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 53 additional flags in Devin Review.

Open in Devin Review

@ntkathole
Copy link
Member

@Srihari1192 Can we please create an image and test these operator changes ?

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 56 additional flags in Devin Review.

Open in Devin Review

Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
…:jatin5251/feast into feat-feast-operator-mcp-grpc-per-service
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 56 additional flags in Devin Review.

Open in Devin Review

Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 56 additional flags in Devin Review.

Open in Devin Review

Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 58 additional flags in Devin Review.

Open in Devin Review

Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
Signed-off-by: Jatin Kumar <jatink.5251@gmail.com>
cmd = append(cmd, "--registry_ttl_sec", strconv.Itoa(int(*grpcCfg.RegistryTTLSeconds)))
}
}
if tls := feast.getTlsConfigs(OnlineGrpcFeastType); tls.IsTLS() {
Copy link
Member

Choose a reason for hiding this comment

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

feast listen doesn't support --key/--cert options

},
}
}
if feast.onlineGrpcOpenshiftTls() {
Copy link
Member

Choose a reason for hiding this comment

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

gRPC server has NO TLS support at all and here we are trying to auto-enable broken TLS

}

func (feast *FeastServices) setContainers(podSpec *corev1.PodSpec) error {
func (feast *FeastServices) setContainers(podSpec *corev1.PodSpec, feastType FeastServiceType) error {
Copy link
Member

Choose a reason for hiding this comment

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

I see this is breaking change and there is no clear migration path from old deployment to new multiple deployments, single container each.

It keeps the old feast-my-store deployment. After upgrade:

  • Old feast-my-store (4 containers) keeps running
  • New feast-my-store-* (4-5 deployments) are created
  • Both run simultaneously = conflicts, duplicate services, data corruption risks

@ntkathole
Copy link
Member

@jatin5251 If possible can we divide the PR into 2 phases, mainly because this contains core architecture changes.

  1. Change from single multi-container deployment to multiple single-container deployments. (I think this needs community discussion/RFC with pros and cons)
  2. Add gRPC online store service and MCP configuration.

Thoughts?

func (feast *FeastServices) mountPvcConfig(podSpec *corev1.PodSpec, pvcConfig *feastdevv1.PvcConfig, feastType FeastServiceType) {
if podSpec != nil && pvcConfig != nil {
volName := feast.initPVC(feastType).Name
volName := feast.initPVC(feast.pvcFeastType(feastType)).Name
Copy link
Member

Choose a reason for hiding this comment

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

With separate PVCs, I think it will break file-based persistence. Each pod only has access to its own storage. While materialization with file-based (parquet files), Online pod can't access offline PVC.

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.

2 participants