Skip to content

fix: Rewritten feature-server Helm subchart from Java to Python - #6607

Open
AdityaPatil22 wants to merge 3 commits into
feast-dev:masterfrom
AdityaPatil22:fix/helm-chart-deployment-fix
Open

fix: Rewritten feature-server Helm subchart from Java to Python#6607
AdityaPatil22 wants to merge 3 commits into
feast-dev:masterfrom
AdityaPatil22:fix/helm-chart-deployment-fix

Conversation

@AdityaPatil22

@AdityaPatil22 AdityaPatil22 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

The Helm chart's feature-server subchart references quay.io/feastdev/feature-server-java, which does not exist in the container registry. The
correct image is quay.io/feastdev/feature-server (without the -java suffix). This causes ImagePullBackOff errors when deploying Feast via Helm.

This PR fixes the image repository name in infra/charts/feast/charts/feature-server/values.yaml.

Which issue(s) this PR fixes:

Fixes #6409

Checks

  • I've made sure the tests are passing.
  • My commits are signed off (git commit -s)
  • My PR title follows [conventional commits] format

Testing Strategy

  • Unit tests
  • Integration tests
  • Manual tests
  • Testing is not required for this change

Verified by deploying the chart to a local Kubernetes cluster and confirming pods reach Running state instead of ImagePullBackOff.

@aniketpalu aniketpalu left a comment

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.

LGTM

image:
# image.repository -- Docker image for Feature Server repository
repository: quay.io/feastdev/feature-server-java
repository: quay.io/feastdev/feature-server

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@AdityaPatil22 I think the correct fix is either:

  • Remove/deprecate the feast umbrella chart's feature-server subchart entirely (it's stale since Java was dropped from CI in May 2025)
  • Rewrite the subchart's deployment.yaml to use feast serve like the standalone feast-feature-server chart does

You can see the Helm chart's deployment template at infra/charts/feast/charts/feature-server/templates/deployment.yaml, it has java -jar command, which won't work with python image.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Hi @ntkathole,

Thanks for the detailed analysis!

I've updated the subchart's deployment.yaml to use feast serve instead of the legacy java -jar command, aligning it with the standalone feast-feature-server chart.

I also removed the stale Java-specific templates (configmap, secret, and ingress) simplified the values.yaml and README to reflect the current Python-based configuration.

Could you please take a look when you have a chance and let me know if everything looks good, or if there are any additional changes you'd recommend?

@AdityaPatil22
AdityaPatil22 force-pushed the fix/helm-chart-deployment-fix branch from 4a810a6 to e155575 Compare July 18, 2026 11:35
@AdityaPatil22
AdityaPatil22 requested a review from ntkathole July 18, 2026 11:51
@AdityaPatil22
AdityaPatil22 force-pushed the fix/helm-chart-deployment-fix branch from e155575 to 1b19a37 Compare July 20, 2026 18:07
@AdityaPatil22
AdityaPatil22 requested a review from aniketpalu July 21, 2026 08:44
@AdityaPatil22 AdityaPatil22 changed the title fix: Correct feature-server image name in Helm chart fix: Rewritten feature-server Helm subchart from Java to Python Jul 22, 2026

@franciscojavierarceo franciscojavierarceo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The image fix is now bundled with a full Java→Python chart rewrite, so there are two deployment blockers to resolve:

  • feature_store_yaml_base64 is passed through Helm values and directly into the Deployment environment. A normal feature_store.yaml commonly contains registry or online-store credentials; putting it in --set values stores it in Helm release metadata and exposes it through the Pod spec. The previous chart kept application-secret.yaml in a Kubernetes Secret. We should accept a Secret reference or mount the config from a Secret rather than requiring credentials in a value/env string.
  • Removing the ingress templates, Secret support, and service.grpc values is a breaking change for existing umbrella-chart users, but the PR does not provide a migration path or preserve equivalent ingress/auth configuration. We should either keep those interfaces working for the Python server or document/version the breaking chart migration explicitly.

@AdityaPatil22
AdityaPatil22 force-pushed the fix/helm-chart-deployment-fix branch from 1b19a37 to a7703e7 Compare August 3, 2026 17:17
@AdityaPatil22

Copy link
Copy Markdown
Contributor Author

Thanks @franciscojavierarceo, I have addressed both points in the latest push:

  1. Credential exposure: The chart now accepts an existingSecret reference so credentials never pass through Helm values. When not set, it falls back to creating its own K8s Secret (via stringData:/secretKeyRef). README and NOTES.txt recommend the Secret-based approach.
  2. Migration path: Added a migration section to the feature-server README with tables for removed, changed, and new values. The HTTP ingress template is preserved (rewritten to networking.k8s.io/v1 with ingressClassName), and gRPC removal is documented with guidance on annotation-based alternatives.

@codecov-commenter

codecov-commenter commented Aug 3, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 46.77%. Comparing base (a1e6fc2) to head (a7703e7).
⚠️ Report is 1 commits behind head on master.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #6607   +/-   ##
=======================================
  Coverage   46.77%   46.77%           
=======================================
  Files         414      414           
  Lines       50191    50191           
  Branches     7181     7181           
=======================================
  Hits        23475    23475           
  Misses      25077    25077           
  Partials     1639     1639           
Flag Coverage Δ
go-feature-server 30.58% <ø> (ø)
python-unit 48.10% <ø> (ø)

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4efb86c...a7703e7. Read the comment docs.

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

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.

Docker images not published for versions 0.62.0 and 0.63.0 - Helm chart deployment fails with ImagePullBackOff

5 participants