Background
The mds deployment in the lakeFS Helm chart currently runs the standalone Python treeverse/mds container. The metadata search service has been folded into the lakeFS Enterprise binary (lakefs mds run, see lakefs-enterprise commits cf350b6 and 7a36dab), so the chart should drive the same container image as the lakeFS server and invoke it as a subcommand.
Goals
- Default the MDS deployment to the
treeverse/lakefs-enterprise image, tracking image.enterprise.tag so the MDS pod stays in lockstep with the lakeFS server version.
- Override the image's default
["run"] CMD so the container actually starts the metadata search service (lakefs mds run --config /app/config.yaml).
- Keep a low-friction rollback path to the legacy
treeverse/mds container via values overrides only — no chart edits required — since the chart already supports dynamic config (registry, tag, args, env, config blob).
- Refresh the example
mds.config in values.yaml to the new metadata_search schema (pkg/config/config.go MetadataSearch).
Non-goals
- Migration tooling for existing data written by the legacy MDS container.
- Changes to the lakefs-enterprise image itself;
lakefs mds run already exists upstream.
Proposed changes
- Add
mds.repository / mds.tag template helpers with treeverse/lakefs-enterprise and image.enterprise.tag defaults.
- Add
mds.command and mds.args values (default args run lakefs mds run --config /app/config.yaml) so users can override either the ENTRYPOINT or the arguments.
- Drop the
PYTHONPATH workaround that was specific to the Python image (rollback users can re-add via extraEnvVars).
- Update the
mds.config example to the lakeFS Enterprise metadata_search schema, document the rollback override block in values.yaml.
- Bump chart version and add a CHANGELOG entry.
Rollback path (no chart edits)
mds:
image:
repository: treeverse/mds
tag: "0.2.1"
args: ["--config", "/app/config.yaml"]
extraEnvVars:
- name: PYTHONPATH
value: /home/arktika/.local/lib/python3.13/site-packages
config:
lakefs: { endpoint: ..., access_key_id: ..., secret_access_key: ... }
metadata_settings: { since: ..., max_commits: 100 }
repositories: { ... }
PR
#395
Background
The
mdsdeployment in the lakeFS Helm chart currently runs the standalone Pythontreeverse/mdscontainer. The metadata search service has been folded into the lakeFS Enterprise binary (lakefs mds run, see lakefs-enterprise commitscf350b6and7a36dab), so the chart should drive the same container image as the lakeFS server and invoke it as a subcommand.Goals
treeverse/lakefs-enterpriseimage, trackingimage.enterprise.tagso the MDS pod stays in lockstep with the lakeFS server version.["run"]CMD so the container actually starts the metadata search service (lakefs mds run --config /app/config.yaml).treeverse/mdscontainer via values overrides only — no chart edits required — since the chart already supports dynamic config (registry, tag, args, env, config blob).mds.configinvalues.yamlto the newmetadata_searchschema (pkg/config/config.goMetadataSearch).Non-goals
lakefs mds runalready exists upstream.Proposed changes
mds.repository/mds.tagtemplate helpers withtreeverse/lakefs-enterpriseandimage.enterprise.tagdefaults.mds.commandandmds.argsvalues (default args runlakefs mds run --config /app/config.yaml) so users can override either the ENTRYPOINT or the arguments.PYTHONPATHworkaround that was specific to the Python image (rollback users can re-add viaextraEnvVars).mds.configexample to the lakeFS Enterprisemetadata_searchschema, document the rollback override block invalues.yaml.Rollback path (no chart edits)
PR
#395