Skip to content

[Feature] KFP pipeline artifacts remain on in-cluster SeaweedFS while syncing to external AWS S3 or Azure Blob in the background - #311

Open
shay79il wants to merge 13 commits into
mlrun:developmentfrom
shay79il:CEML-713
Open

[Feature] KFP pipeline artifacts remain on in-cluster SeaweedFS while syncing to external AWS S3 or Azure Blob in the background#311
shay79il wants to merge 13 commits into
mlrun:developmentfrom
shay79il:CEML-713

Conversation

@shay79il

@shay79il shay79il commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

📝 Description

Adds SeaweedFS remote gateway support so KFP pipeline artifacts remain on in-cluster SeaweedFS (pipelines.storage.mode: local) while syncing to external AWS S3 or Azure Blob in the background.

This replaces the previous model where KFP talked directly to external object storage via pipelines.storage.mode: s3 / azure-blob. MLRun and Jupyter storage (storage.mode) is unchanged and independent.


🛠️ Changes Made

  • New SeaweedFS remote components (seaweedfs.remote.enabled):
    • seaweedfs-remote-secret.yaml — cloud credentials (S3 keys from storage.s3.*, Azure from storage.azure.*)
    • seaweedfs-remote-config-job.yaml — Helm hook Job that runs remote.configure + remote.mount on the filer
    • seaweedfs-remote-gateway-deployment.yamlfiler.remote.gateway syncs local bucket → remote backend
  • New example overlays: examples/seaweedfs-remote-s3-overlay.yaml, examples/seaweedfs-remote-azure-overlay.yaml
  • Storage validation (storage-validation.yaml):
    • Requires pipelines.storage.mode: local (rejects direct external KFP modes)
    • Validates seaweedfs.remote.* (provider, bucket, remote name charset, S3 endpoint, credentials)
  • Helpers refactor (_helpers.tpl):
    • mlrun-ce.pipelines.storage.mode hardcoded to local
    • Pipeline S3 settings delegate to in-cluster SeaweedFS
    • New remote-gateway helpers
  • KFP templates simplified for local-only object store:
    • Removed external providers block from kfp-launcher.yaml
    • Removed conditional OBJECTSTORECONFIG_REGION from ml-pipeline.yaml
    • Renamed secret template: mlpipeline-seaweedfs-artifact.yamlmlpipeline-artifact-secret.yaml
  • MySQL (mysql.yaml): auth plugin flag selected by image tag — --default-authentication-plugin for 8.0.x, --mysql-native-password=ON for 8.4+
  • Jupyter (deployment.yaml + values.yaml): added startupProbe (/api); readiness probe path changed from /lab to /api for slow cold starts
  • Values: new seaweedfs.remote block (default enabled: false); added to values.yaml and all three install-mode values files
  • Chart version: 0.12.0-rc.11

✅ Checklist

  • I have tested the changes in this PR
  • I confirmed whether my changes require a change in documentation and if so, I created another PR in MLRun for the relevant documentation.
  • I confirmed whether my changes require a changes in QA tests, for example: credentials changes, resources naming change and if so, I updated the relevant Jira ticket for QA.
  • I increased the Chart version in charts/mlrun-ce/Chart.yaml.
  • I confirmed that the installation works both on a local Docker Desktop environment and on a real cluster when using the required prerequisites.
    • If installation issues were found, I updated the relevant Jira ticket with the issue and steps to reproduce, or updated the prerequisites documentation if the issue is related to missing or outdated prerequisites.
  • If needed, update https://github.com/mlrun/ce/blob/development/charts/mlrun-ce/README.md with the relevant installation instructions and version Matrix.
  • If needed, update the following values files for multi namespace support:

🧪 Testing

Please see

  • charts/mlrun-ce/examples/seaweedfs-remote-azure-overlay.yaml
  • charts/mlrun-ce/examples/seaweedfs-remote-s3-overlay.yaml

@shay79il shay79il changed the title [Feature] Bump chart version to 0.12.0-rc.11 and enhance storage validation for SeaweedFS remote configuration [Feature] KFP pipeline artifacts remain on in-cluster SeaweedFS while syncing to external AWS S3 or Azure Blob in the background Aug 18, 2026
Comment thread charts/mlrun-ce/examples/seaweedfs-local-overlay.yaml Outdated
Comment thread charts/mlrun-ce/examples/seaweedfs-remote-azure-overlay.yaml Outdated
Comment thread charts/mlrun-ce/templates/seaweedfs/seaweedfs-remote-secret.yaml Outdated
Comment thread charts/mlrun-ce/README.md
Comment thread charts/mlrun-ce/README.md Outdated
Comment thread charts/mlrun-ce/values.yaml Outdated
Comment thread charts/mlrun-ce/values.yaml Outdated
Comment thread charts/mlrun-ce/templates/seaweedfs/seaweedfs-remote-config-job.yaml Outdated
…d, detailing local and remote storage options with configuration examples
… configuration; enhance validation checks for Azure provider
…etails; refactor static credentials usage in templates
…guration details; add nonempty option in values.yaml for handling existing pipeline data during upgrades
…structions; update values.yaml for Azure storage configuration; enhance validation checks for Azure provider in templates
…rom values files and templates; update README.md to clarify SeaweedFS usage for pipeline artifacts.
…nfiguration; enhance validation checks for SeaweedFS remote provider in templates.
… by breaking down the command into multiple lines for better readability and maintainability.
Comment thread charts/mlrun-ce/examples/seaweedfs-remote-azure-overlay.yaml Outdated
Comment thread charts/mlrun-ce/examples/seaweedfs-remote-s3-overlay.yaml Outdated
Comment thread charts/mlrun-ce/templates/seaweedfs/seaweedfs-remote-config-job.yaml Outdated
Comment thread charts/mlrun-ce/templates/seaweedfs/seaweedfs-remote-gateway-deployment.yaml Outdated
Comment thread charts/mlrun-ce/templates/_helpers.tpl Outdated
Comment thread charts/mlrun-ce/README.md Outdated
Comment thread charts/mlrun-ce/values.yaml Outdated
Comment thread charts/mlrun-ce/values.yaml
… configuration; enhance Azure Blob example and clarify usage in templates.
…riptions; include guidelines for examples, optional Helm values, and template hygiene.
```bash
helm upgrade --install mlrun-ce charts/mlrun-ce -n mlrun \
-f <your-environment-values>.yaml \
-f charts/mlrun-ce/examples/seaweedfs-remote-s3-overlay.yaml \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

if you point the user to the relevant values file, why the user also need the additional --set commands?


Analyze the current branch changes and generate a fully filled PR description ready to paste into GitHub.

Before writing the PR description, run the **Reviewer guardrails** checklist below against the diff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

it is a good idea but let's split it to another skill (pr-review) if you prefer you can open another PR only for this additional change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants